From d5cacbb1d9c3edc02bf0ba01702e7c06da5bc318 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Sat, 23 May 2015 22:24:10 +1000 Subject: [PATCH] PEP 489: Multi-phase extension module initialization Known limitations of the current implementation: - documentation changes are incomplete - there's a reference leak I haven't tracked down yet The leak is most visible by running: ./python -m test -R3:3 test_importlib However, you can also see it by running: ./python -X showrefcount Importing the array or _testmultiphase modules, and then deleting them from both sys.modules and the local namespace shows significant increases in the total number of active references each cycle. By contrast, with _testcapi (which continues to use single-phase initialisation) the global refcounts stabilise after a couple of cycles. --- Doc/c-api/module.rst | 92 +- Doc/library/importlib.rst | 28 +- Doc/whatsnew/3.5.rst | 19 +- Include/modsupport.h | 62 +- Include/moduleobject.h | 16 +- Lib/imp.py | 33 +- Lib/importlib/_bootstrap.py | 23 +- Lib/importlib/_bootstrap_external.py | 33 +- .../test_importlib/extension/test_loader.py | 167 + Misc/ACKS | 1 + Misc/NEWS | 2 + Modules/_testcapimodule.c | 3 + Modules/_testmultiphase.c | 567 +++ Modules/arraymodule.c | 50 +- Modules/config.c.in | 2 +- Modules/xxlimited.c | 55 +- Modules/xxmodule.c | 54 +- Modules/xxsubtype.c | 75 +- Objects/moduleobject.c | 339 +- PC/config.c | 2 +- Python/clinic/import.c.h | 103 +- Python/dynload_aix.c | 5 +- Python/dynload_dl.c | 7 +- Python/dynload_hpux.c | 12 +- Python/dynload_next.c | 7 +- Python/dynload_shlib.c | 8 +- Python/dynload_win.c | 7 +- Python/import.c | 189 +- Python/importdl.c | 229 +- Python/importdl.h | 3 +- Python/importlib.h | 1524 +++---- Python/importlib_external.h | 3848 +++++++++-------- Python/pystate.c | 19 +- setup.py | 2 + 34 files changed, 4462 insertions(+), 3124 deletions(-) create mode 100644 Modules/_testmultiphase.c diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index 985a347d63d..df9301f987b 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -7,8 +7,6 @@ Module Objects .. index:: object: module -There are only a few functions special to module objects. - .. c:var:: PyTypeObject PyModule_Type @@ -109,6 +107,14 @@ There are only a few functions special to module objects. unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead. +Per-interpreter module state +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Single-phase initialization creates singleton modules that can store additional +information as part of the interpreter, allow that state to be retrieved later +with only a reference to the module definition, rather than to the module +itself. + .. c:function:: void* PyModule_GetState(PyObject *module) Return the "state" of the module, that is, a pointer to the block of memory @@ -146,27 +152,6 @@ There are only a few functions special to module objects. Initializing C modules ^^^^^^^^^^^^^^^^^^^^^^ -These functions are usually used in the module initialization function. - -.. c:function:: PyObject* PyModule_Create(PyModuleDef *module) - - Create a new module object, given the definition in *module*. This behaves - like :c:func:`PyModule_Create2` with *module_api_version* set to - :const:`PYTHON_API_VERSION`. - - -.. c:function:: PyObject* PyModule_Create2(PyModuleDef *module, int module_api_version) - - Create a new module object, given the definition in *module*, assuming the - API version *module_api_version*. If that version does not match the version - of the running interpreter, a :exc:`RuntimeWarning` is emitted. - - .. note:: - - Most uses of this function should be using :c:func:`PyModule_Create` - instead; only use this if you are sure you need it. - - .. c:type:: PyModuleDef This struct holds all information that is needed to create a module object. @@ -210,9 +195,10 @@ These functions are usually used in the module initialization function. A pointer to a table of module-level functions, described by :c:type:`PyMethodDef` values. Can be *NULL* if no functions are present. - .. c:member:: inquiry m_reload + .. c:member:: PyModuleDef_Slot* m_slots - Currently unused, should be *NULL*. + An array of slot definitions for multi-phase initialization, terminated by + a *NULL* entry. .. c:member:: traverseproc m_traverse @@ -229,6 +215,61 @@ These functions are usually used in the module initialization function. A function to call during deallocation of the module object, or *NULL* if not needed. +The module initialization function may create and return the module object +directly. This is referred to as "single-phase initialization", and uses one +of the following two module creation functions: + +.. c:function:: PyObject* PyModule_Create(PyModuleDef *module) + + Create a new module object, given the definition in *module*. This behaves + like :c:func:`PyModule_Create2` with *module_api_version* set to + :const:`PYTHON_API_VERSION`. + + +.. c:function:: PyObject* PyModule_Create2(PyModuleDef *module, int module_api_version) + + Create a new module object, given the definition in *module*, assuming the + API version *module_api_version*. If that version does not match the version + of the running interpreter, a :exc:`RuntimeWarning` is emitted. + + .. note:: + + Most uses of this function should be using :c:func:`PyModule_Create` + instead; only use this if you are sure you need it. + + +Alternatively, the module initialization function may instead return a +:c:type:`PyModuleDef` instance with a non-empty ``m_slots`` array. This is +referred to as "multi-phase initialization", and ``PyModuleDef`` instance +should be initialized with the following function: + +.. c:function:: PyObject* PyModuleDef_Init(PyModuleDef *module) + + Ensures a module definition is a properly initialized Python object that + correctly reports its type and reference count. + +.. XXX (ncoghlan): It's not clear if it makes sense to document PyModule_ExecDef + PyModule_FromDefAndSpec or PyModule_FromDefAndSpec2 here, as end user code + generally shouldn't be calling those. + +The module initialization function (if using single phase initialization) or +a function called from a module execution slot (if using multiphase +initialization), can use the following functions to help initialize the module +state: + +.. c:function:: int PyModule_SetDocString(PyObject *module, const char *docstring) + + Set the docstring for *module* to *docstring*. Return ``-1`` on error, ``0`` + on success. + +.. c:function:: int PyModule_AddFunctions(PyObject *module, PyMethodDef *functions) + + Add the functions from the ``NULL`` terminated *functions* array to *module*. + Refer to the :c:type:`PyMethodDef` documentation for details on individual + entries (due to the lack of a shared module namespace, module level + "functions" implemented in C typically receive the module as their first + parameter, making them similar to instance methods on Python classes). + .. c:function:: int PyModule_AddObject(PyObject *module, const char *name, PyObject *value) @@ -236,7 +277,6 @@ These functions are usually used in the module initialization function. be used from the module's initialization function. This steals a reference to *value*. Return ``-1`` on error, ``0`` on success. - .. c:function:: int PyModule_AddIntConstant(PyObject *module, const char *name, long value) Add an integer constant to *module* as *name*. This convenience function can be diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst index 07d8ae15cd9..771c4c530c4 100644 --- a/Doc/library/importlib.rst +++ b/Doc/library/importlib.rst @@ -55,6 +55,12 @@ generically as an :term:`importer`) to participate in the import process. :pep:`451` A ModuleSpec Type for the Import System + :pep:`488` + Elimination of PYO files + + :pep:`489` + Multi-phase extension module initialization + :pep:`3120` Using UTF-8 as the Default Source Encoding @@ -756,9 +762,9 @@ find and load modules. Only class methods are defined by this class to alleviate the need for instantiation. - .. note:: - Due to limitations in the extension module C-API, for now - BuiltinImporter does not implement :meth:`Loader.exec_module`. + .. versionchanged:: 3.5 + As part of :pep:`489`, the builtin importer now implements + :meth:`Loader.create_module` and :meth:`Loader.exec_module` .. class:: FrozenImporter @@ -973,14 +979,18 @@ find and load modules. Path to the extension module. - .. method:: load_module(name=None) + .. method:: create_module(spec) - Loads the extension module if and only if *fullname* is the same as - :attr:`name` or is ``None``. + Creates the module object from the given specification in accordance + with :pep:`489`. - .. note:: - Due to limitations in the extension module C-API, for now - ExtensionFileLoader does not implement :meth:`Loader.exec_module`. + .. versionadded:: 3.5 + + .. method:: exec_module(module) + + Initializes the given module object in accordance with :pep:`489`. + + .. versionadded:: 3.5 .. method:: is_package(fullname) diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index c0f9346d4d7..75bc7fb3c21 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -93,6 +93,7 @@ Implementation improvements: (:issue:`19977`). * :pep:`488`, the elimination of ``.pyo`` files. +* :pep:`489`, multi-phase initialization of extension modules. Significantly Improved Library Modules: @@ -265,6 +266,21 @@ updated API to help with this change. :pep:`488` -- Elimination of PYO files +PEP 489: Multi-phase extension module initialization +---------------------------------------------------- + +:pep:`489` updates extension module initialization to take advantage of the +two step module loading mechanism introduced by :pep:`451` in Python 3.4. + +This change brings the import semantics of extension modules that opt-in to +using the new mechanism much closer to those of Python source and bytecode +modules, including the ability to any valid identifier as a module name, +rather than being restricted to ASCII. + +.. seealso:: + + :pep:`488` -- Multi-phase extension module initialization + Other Language Changes ====================== @@ -667,7 +683,7 @@ time tkinter ------- -* The :module:`tkinter._fix` module used for setting up the Tcl/Tk environment +* The :mod:`tkinter._fix` module used for setting up the Tcl/Tk environment on Windows has been replaced by a private function in the :module:`_tkinter` module which makes no permanent changes to environment variables. (Contributed by Zachary Ware in :issue:`20035`.) @@ -1012,7 +1028,6 @@ Changes in the Python API program depends on patching the module level variable to capture the debug output, you will need to update it to capture sys.stderr instead. - Changes in the C API -------------------- diff --git a/Include/modsupport.h b/Include/modsupport.h index 5de0458245d..21bffb579b1 100644 --- a/Include/modsupport.h +++ b/Include/modsupport.h @@ -12,13 +12,13 @@ extern "C" { /* If PY_SSIZE_T_CLEAN is defined, each functions treats #-specifier to mean Py_ssize_t */ #ifdef PY_SSIZE_T_CLEAN -#define PyArg_Parse _PyArg_Parse_SizeT -#define PyArg_ParseTuple _PyArg_ParseTuple_SizeT -#define PyArg_ParseTupleAndKeywords _PyArg_ParseTupleAndKeywords_SizeT -#define PyArg_VaParse _PyArg_VaParse_SizeT -#define PyArg_VaParseTupleAndKeywords _PyArg_VaParseTupleAndKeywords_SizeT -#define Py_BuildValue _Py_BuildValue_SizeT -#define Py_VaBuildValue _Py_VaBuildValue_SizeT +#define PyArg_Parse _PyArg_Parse_SizeT +#define PyArg_ParseTuple _PyArg_ParseTuple_SizeT +#define PyArg_ParseTupleAndKeywords _PyArg_ParseTupleAndKeywords_SizeT +#define PyArg_VaParse _PyArg_VaParse_SizeT +#define PyArg_VaParseTupleAndKeywords _PyArg_VaParseTupleAndKeywords_SizeT +#define Py_BuildValue _Py_BuildValue_SizeT +#define Py_VaBuildValue _Py_VaBuildValue_SizeT #else PyAPI_FUNC(PyObject *) _Py_VaBuildValue_SizeT(const char *, va_list); #endif @@ -49,6 +49,9 @@ PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long); PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *); #define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c) #define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c) +PyAPI_FUNC(int) PyModule_SetDocString(PyObject *, const char *); +PyAPI_FUNC(int) PyModule_AddFunctions(PyObject *, PyMethodDef *); +PyAPI_FUNC(int) PyModule_ExecDef(PyObject *module, PyModuleDef *def); #define Py_CLEANUP_SUPPORTED 0x20000 @@ -67,35 +70,35 @@ PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char Please add a line or two to the top of this log for each API version change: - 22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths + 22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths - 19-Aug-2002 GvR 1012 Changes to string object struct for - interning changes, saving 3 bytes. + 19-Aug-2002 GvR 1012 Changes to string object struct for + interning changes, saving 3 bytes. - 17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side + 17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side 25-Jan-2001 FLD 1010 Parameters added to PyCode_New() and PyFrame_New(); Python 2.1a2 14-Mar-2000 GvR 1009 Unicode API added - 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!) + 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!) - 3-Dec-1998 GvR 1008 Python 1.5.2b1 + 3-Dec-1998 GvR 1008 Python 1.5.2b1 - 18-Jan-1997 GvR 1007 string interning and other speedups + 18-Jan-1997 GvR 1007 string interning and other speedups - 11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-( + 11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-( - 30-Jul-1996 GvR Slice and ellipses syntax added + 30-Jul-1996 GvR Slice and ellipses syntax added - 23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-) + 23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-) - 7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( ) + 7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( ) - 10-Jan-1995 GvR Renamed globals to new naming scheme + 10-Jan-1995 GvR Renamed globals to new naming scheme - 9-Jan-1995 GvR Initial version (incompatible with older API) + 9-Jan-1995 GvR Initial version (incompatible with older API) */ /* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of @@ -105,10 +108,11 @@ PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char #define PYTHON_ABI_STRING "3" #ifdef Py_TRACE_REFS - /* When we are tracing reference counts, rename PyModule_Create2 so + /* When we are tracing reference counts, rename module creation functions so modules compiled with incompatible settings will generate a link-time error. */ #define PyModule_Create2 PyModule_Create2TraceRefs + #define PyModule_FromDefAndSpec2 PyModule_FromDefAndSpec2TraceRefs #endif PyAPI_FUNC(PyObject *) PyModule_Create2(struct PyModuleDef*, @@ -116,10 +120,22 @@ PyAPI_FUNC(PyObject *) PyModule_Create2(struct PyModuleDef*, #ifdef Py_LIMITED_API #define PyModule_Create(module) \ - PyModule_Create2(module, PYTHON_ABI_VERSION) + PyModule_Create2(module, PYTHON_ABI_VERSION) #else #define PyModule_Create(module) \ - PyModule_Create2(module, PYTHON_API_VERSION) + PyModule_Create2(module, PYTHON_API_VERSION) +#endif + +PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def, + PyObject *spec, + int module_api_version); + +#ifdef Py_LIMITED_API +#define PyModule_FromDefAndSpec(module, spec) \ + PyModule_FromDefAndSpec2(module, spec, PYTHON_ABI_VERSION) +#else +#define PyModule_FromDefAndSpec(module, spec) \ + PyModule_FromDefAndSpec2(module, spec, PYTHON_API_VERSION) #endif #ifndef Py_LIMITED_API diff --git a/Include/moduleobject.h b/Include/moduleobject.h index f119364b889..e68d144c78f 100644 --- a/Include/moduleobject.h +++ b/Include/moduleobject.h @@ -30,6 +30,9 @@ PyAPI_FUNC(void) _PyModule_ClearDict(PyObject *); PyAPI_FUNC(struct PyModuleDef*) PyModule_GetDef(PyObject*); PyAPI_FUNC(void*) PyModule_GetState(PyObject*); +PyAPI_FUNC(PyObject *) PyModuleDef_Init(struct PyModuleDef*); +PyTypeObject PyModuleDef_Type; + typedef struct PyModuleDef_Base { PyObject_HEAD PyObject* (*m_init)(void); @@ -44,18 +47,29 @@ typedef struct PyModuleDef_Base { NULL, /* m_copy */ \ } +typedef struct PyModuleDef_Slot{ + int slot; + void *value; +} PyModuleDef_Slot; + typedef struct PyModuleDef{ PyModuleDef_Base m_base; const char* m_name; const char* m_doc; Py_ssize_t m_size; PyMethodDef *m_methods; - inquiry m_reload; + PyModuleDef_Slot* m_slots; traverseproc m_traverse; inquiry m_clear; freefunc m_free; }PyModuleDef; +#define Py_mod_create 1 +#define Py_mod_exec 2 + +#ifndef Py_LIMITED_API +#define _Py_mod_LAST_SLOT 2 +#endif #ifdef __cplusplus } diff --git a/Lib/imp.py b/Lib/imp.py index 3177b288f37..2cd64407e86 100644 --- a/Lib/imp.py +++ b/Lib/imp.py @@ -8,15 +8,15 @@ functionality over this module. # (Probably) need to stay in _imp from _imp import (lock_held, acquire_lock, release_lock, get_frozen_object, is_frozen_package, - init_builtin, init_frozen, is_builtin, is_frozen, + init_frozen, is_builtin, is_frozen, _fix_co_filename) try: - from _imp import load_dynamic + from _imp import create_dynamic except ImportError: # Platform doesn't support dynamic loading. - load_dynamic = None + create_dynamic = None -from importlib._bootstrap import _ERR_MSG, _exec, _load +from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name from importlib._bootstrap_external import SourcelessFileLoader from importlib import machinery @@ -312,3 +312,28 @@ def reload(module): """ return importlib.reload(module) + + +def init_builtin(name): + """**DEPRECATED** + + Load and return a built-in module by name, or None is such module doesn't + exist + """ + try: + return _builtin_from_name(name) + except ImportError: + return None + + +if create_dynamic: + def load_dynamic(name, path, file=None): + """**DEPRECATED** + + Load an extension module. + """ + import importlib.machinery + loader = importlib.machinery.ExtensionFileLoader(name, path) + return loader.load_module() +else: + load_dynamic = None diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 860703c7d25..931754e1544 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -735,16 +735,17 @@ class BuiltinImporter: return spec.loader if spec is not None else None @classmethod - @_requires_builtin - def load_module(cls, fullname): - """Load a built-in module.""" - # Once an exec_module() implementation is added we can also - # add a deprecation warning here. - with _ManageReload(fullname): - module = _call_with_frames_removed(_imp.init_builtin, fullname) - module.__loader__ = cls - module.__package__ = '' - return module + def create_module(self, spec): + """Create a built-in module""" + if spec.name not in sys.builtin_module_names: + raise ImportError('{!r} is not a built-in module'.format(spec.name), + name=spec.name) + return _call_with_frames_removed(_imp.create_builtin, spec) + + @classmethod + def exec_module(self, module): + """Exec a built-in module""" + _call_with_frames_removed(_imp.exec_dynamic, module) @classmethod @_requires_builtin @@ -764,6 +765,8 @@ class BuiltinImporter: """Return False as built-in modules are never packages.""" return False + load_module = classmethod(_load_module_shim) + class FrozenImporter: diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index f17696138ba..510fa92c0f9 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -378,7 +378,8 @@ def _check_name(method): if name is None: name = self.name elif self.name != name: - raise ImportError('loader cannot handle %s' % name, name=name) + raise ImportError('loader for %s cannot handle %s' % + (self.name, name), name=name) return method(self, name, *args, **kwargs) try: _wrap = _bootstrap._wrap @@ -875,7 +876,7 @@ class SourcelessFileLoader(FileLoader, _LoaderBasics): EXTENSION_SUFFIXES = [] -class ExtensionFileLoader: +class ExtensionFileLoader(FileLoader, _LoaderBasics): """Loader for extension modules. @@ -894,24 +895,20 @@ class ExtensionFileLoader: def __hash__(self): return hash(self.name) ^ hash(self.path) - @_check_name - def load_module(self, fullname): - """Load an extension module.""" - # Once an exec_module() implementation is added we can also - # add a deprecation warning here. - with _bootstrap._ManageReload(fullname): - module = _bootstrap._call_with_frames_removed(_imp.load_dynamic, - fullname, self.path) - _verbose_message('extension module loaded from {!r}', self.path) - is_package = self.is_package(fullname) - if is_package and not hasattr(module, '__path__'): - module.__path__ = [_path_split(self.path)[0]] - module.__loader__ = self - module.__package__ = module.__name__ - if not is_package: - module.__package__ = module.__package__.rpartition('.')[0] + def create_module(self, spec): + """Create an unitialized extension module""" + module = _bootstrap._call_with_frames_removed( + _imp.create_dynamic, spec) + _verbose_message('extension module {!r} loaded from {!r}', + spec.name, self.path) return module + def exec_module(self, module): + """Initialize an extension module""" + _bootstrap._call_with_frames_removed(_imp.exec_dynamic, module) + _verbose_message('extension module {!r} executed from {!r}', + self.name, self.path) + def is_package(self, fullname): """Return True if the extension module is a package.""" file_name = _path_split(self.path)[1] diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py index aefd050ff0c..66ac2b12b51 100644 --- a/Lib/test/test_importlib/extension/test_loader.py +++ b/Lib/test/test_importlib/extension/test_loader.py @@ -7,6 +7,8 @@ import os.path import sys import types import unittest +import importlib.util +import importlib class LoaderTests(abc.LoaderTests): @@ -80,6 +82,171 @@ class LoaderTests(abc.LoaderTests): Source_LoaderTests ) = util.test_both(LoaderTests, machinery=machinery) +class MultiPhaseExtensionModuleTests(abc.LoaderTests): + """Test loading extension modules with multi-phase initialization (PEP 489) + """ + + def setUp(self): + self.name = '_testmultiphase' + finder = self.machinery.FileFinder(None) + self.spec = importlib.util.find_spec(self.name) + assert self.spec + self.loader = self.machinery.ExtensionFileLoader( + self.name, self.spec.origin) + + # No extension module as __init__ available for testing. + test_package = None + + # No extension module in a package available for testing. + test_lacking_parent = None + + # Handling failure on reload is the up to the module. + test_state_after_failure = None + + def test_module(self): + '''Test loading an extension module''' + with util.uncache(self.name): + module = self.load_module() + for attr, value in [('__name__', self.name), + ('__file__', self.spec.origin), + ('__package__', '')]: + self.assertEqual(getattr(module, attr), value) + with self.assertRaises(AttributeError): + module.__path__ + self.assertIs(module, sys.modules[self.name]) + self.assertIsInstance(module.__loader__, + self.machinery.ExtensionFileLoader) + + def test_functionality(self): + '''Test basic functionality of stuff defined in an extension module''' + with util.uncache(self.name): + module = self.load_module() + self.assertIsInstance(module, types.ModuleType) + ex = module.Example() + self.assertEqual(ex.demo('abcd'), 'abcd') + self.assertEqual(ex.demo(), None) + with self.assertRaises(AttributeError): + ex.abc + ex.abc = 0 + self.assertEqual(ex.abc, 0) + self.assertEqual(module.foo(9, 9), 18) + self.assertIsInstance(module.Str(), str) + self.assertEqual(module.Str(1) + '23', '123') + with self.assertRaises(module.error): + raise module.error() + self.assertEqual(module.int_const, 1969) + self.assertEqual(module.str_const, 'something different') + + def test_reload(self): + '''Test that reload didn't re-set the module's attributes''' + with util.uncache(self.name): + module = self.load_module() + ex_class = module.Example + importlib.reload(module) + self.assertIs(ex_class, module.Example) + + def test_try_registration(self): + '''Assert that the PyState_{Find,Add,Remove}Module C API doesn't work''' + module = self.load_module() + with self.subTest('PyState_FindModule'): + self.assertEqual(module.call_state_registration_func(0), None) + with self.subTest('PyState_AddModule'): + with self.assertRaises(SystemError): + module.call_state_registration_func(1) + with self.subTest('PyState_RemoveModule'): + with self.assertRaises(SystemError): + module.call_state_registration_func(2) + + def load_module(self): + '''Load the module from the test extension''' + return self.loader.load_module(self.name) + + def load_module_by_name(self, fullname): + '''Load a module from the test extension by name''' + origin = self.spec.origin + loader = self.machinery.ExtensionFileLoader(fullname, origin) + spec = importlib.util.spec_from_loader(fullname, loader) + module = importlib.util.module_from_spec(spec) + loader.exec_module(module) + return module + + def test_load_twice(self): + '''Test that 2 loads result in 2 module objects''' + module1 = self.load_module_by_name(self.name) + module2 = self.load_module_by_name(self.name) + self.assertIsNot(module1, module2) + + def test_unloadable(self): + '''Test nonexistent module''' + name = 'asdfjkl;' + with self.assertRaises(ImportError) as cm: + self.load_module_by_name(name) + self.assertEqual(cm.exception.name, name) + + def test_unloadable_nonascii(self): + '''Test behavior with nonexistent module with non-ASCII name''' + name = 'fo\xf3' + with self.assertRaises(ImportError) as cm: + self.load_module_by_name(name) + self.assertEqual(cm.exception.name, name) + + def test_nonmodule(self): + '''Test returning a non-module object from create works''' + name = self.name + '_nonmodule' + mod = self.load_module_by_name(name) + self.assertNotEqual(type(mod), type(unittest)) + self.assertEqual(mod.three, 3) + + def test_null_slots(self): + '''Test that NULL slots aren't a problem''' + name = self.name + '_null_slots' + module = self.load_module_by_name(name) + self.assertIsInstance(module, types.ModuleType) + assert module.__name__ == name + + def test_bad_modules(self): + '''Test SystemError is raised for misbehaving extensions''' + for name_base in [ + 'bad_slot_large', + 'bad_slot_negative', + 'create_int_with_state', + 'negative_size', + 'export_null', + 'export_uninitialized', + 'export_raise', + 'export_unreported_exception', + 'create_null', + 'create_raise', + 'create_unreported_exception', + 'nonmodule_with_exec_slots', + 'exec_err', + 'exec_raise', + 'exec_unreported_exception', + ]: + with self.subTest(name_base): + name = self.name + '_' + name_base + with self.assertRaises(SystemError): + self.load_module_by_name(name) + + def test_nonascii(self): + '''Test that modules with non-ASCII names can be loaded''' + # punycode behaves slightly differently in some-ASCII and no-ASCII + # cases, so test both + cases = [ + (self.name + '_zkou\u0161ka_na\u010dten\xed', 'Czech'), + ('\uff3f\u30a4\u30f3\u30dd\u30fc\u30c8\u30c6\u30b9\u30c8', + 'Japanese'), + ] + for name, lang in cases: + with self.subTest(name): + module = self.load_module_by_name(name) + self.assertEqual(module.__name__, name) + self.assertEqual(module.__doc__, "Module named in %s" % lang) + + +(Frozen_MultiPhaseExtensionModuleTests, + Source_MultiPhaseExtensionModuleTests + ) = util.test_both(MultiPhaseExtensionModuleTests, machinery=machinery) if __name__ == '__main__': diff --git a/Misc/ACKS b/Misc/ACKS index 76f2df8b831..8a007ea9dcb 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1458,6 +1458,7 @@ Mike Verdone Jaap Vermeulen Nikita Vetoshkin Al Vezza +Petr Victorin Jacques A. Vidrine John Viega Dino Viehland diff --git a/Misc/NEWS b/Misc/NEWS index 9239cbbbd57..88ca513bd5d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,8 @@ Release date: 2015-05-24 Core and Builtins ----------------- +- Issue #24268: PEP 489: Multi-phase extension module initialization + - Issue #23955: Add pyvenv.cfg option to suppress registry/environment lookup for generating sys.path on Windows. diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 77167b2c1e3..19676866241 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -4048,6 +4048,9 @@ static struct PyModuleDef _testcapimodule = { NULL }; +/* Per PEP 489, this module will not be converted to multi-phase initialization + */ + PyMODINIT_FUNC PyInit__testcapi(void) { diff --git a/Modules/_testmultiphase.c b/Modules/_testmultiphase.c new file mode 100644 index 00000000000..3e8e5d5c6cf --- /dev/null +++ b/Modules/_testmultiphase.c @@ -0,0 +1,567 @@ + +/* Testing module for multi-phase initialization of extension modules (PEP 489) + */ + +#include "Python.h" + +/* Example objects */ +typedef struct { + PyObject_HEAD + PyObject *x_attr; /* Attributes dictionary */ +} ExampleObject; + +/* Example methods */ + +static void +Example_dealloc(ExampleObject *self) +{ + Py_XDECREF(self->x_attr); + PyObject_Del(self); +} + +static PyObject * +Example_demo(ExampleObject *self, PyObject *args) +{ + PyObject *o = NULL; + if (!PyArg_ParseTuple(args, "|O:demo", &o)) + return NULL; + if (o != NULL && PyUnicode_Check(o)) { + Py_INCREF(o); + return o; + } + Py_INCREF(Py_None); + return Py_None; +} + + +static PyMethodDef Example_methods[] = { + {"demo", (PyCFunction)Example_demo, METH_VARARGS, + PyDoc_STR("demo() -> None")}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +Example_getattro(ExampleObject *self, PyObject *name) +{ + if (self->x_attr != NULL) { + PyObject *v = PyDict_GetItem(self->x_attr, name); + if (v != NULL) { + Py_INCREF(v); + return v; + } + } + return PyObject_GenericGetAttr((PyObject *)self, name); +} + +static int +Example_setattr(ExampleObject *self, char *name, PyObject *v) +{ + if (self->x_attr == NULL) { + self->x_attr = PyDict_New(); + if (self->x_attr == NULL) + return -1; + } + if (v == NULL) { + int rv = PyDict_DelItemString(self->x_attr, name); + if (rv < 0) + PyErr_SetString(PyExc_AttributeError, + "delete non-existing Example attribute"); + return rv; + } + else + return PyDict_SetItemString(self->x_attr, name, v); +} + +static PyType_Slot Example_Type_slots[] = { + {Py_tp_doc, "The Example type"}, + {Py_tp_dealloc, Example_dealloc}, + {Py_tp_getattro, Example_getattro}, + {Py_tp_setattr, Example_setattr}, + {Py_tp_methods, Example_methods}, + {0, 0}, +}; + +static PyType_Spec Example_Type_spec = { + "_testimportexec.Example", + sizeof(ExampleObject), + 0, + Py_TPFLAGS_DEFAULT, + Example_Type_slots +}; + +/* Function of two integers returning integer */ + +PyDoc_STRVAR(testexport_foo_doc, +"foo(i,j)\n\ +\n\ +Return the sum of i and j."); + +static PyObject * +testexport_foo(PyObject *self, PyObject *args) +{ + long i, j; + long res; + if (!PyArg_ParseTuple(args, "ll:foo", &i, &j)) + return NULL; + res = i + j; + return PyLong_FromLong(res); +} + +/* Test that PyState registration fails */ + +PyDoc_STRVAR(call_state_registration_func_doc, +"register_state(0): call PyState_FindModule()\n\ +register_state(1): call PyState_AddModule()\n\ +register_state(2): call PyState_RemoveModule()"); + +static PyObject * +call_state_registration_func(PyObject *mod, PyObject *args) +{ + int i, ret; + PyModuleDef *def = PyModule_GetDef(mod); + if (def == NULL) { + return NULL; + } + if (!PyArg_ParseTuple(args, "i:call_state_registration_func", &i)) + return NULL; + switch (i) { + case 0: + mod = PyState_FindModule(def); + if (mod == NULL) { + Py_RETURN_NONE; + } + return mod; + case 1: + ret = PyState_AddModule(mod, def); + if (ret != 0) { + return NULL; + } + break; + case 2: + ret = PyState_RemoveModule(def); + if (ret != 0) { + return NULL; + } + break; + } + Py_RETURN_NONE; +} + + +static PyType_Slot Str_Type_slots[] = { + {Py_tp_base, NULL}, /* filled out in module exec function */ + {0, 0}, +}; + +static PyType_Spec Str_Type_spec = { + "_testimportexec.Str", + 0, + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + Str_Type_slots +}; + +static PyMethodDef testexport_methods[] = { + {"foo", testexport_foo, METH_VARARGS, + testexport_foo_doc}, + {"call_state_registration_func", call_state_registration_func, + METH_VARARGS, call_state_registration_func_doc}, + {NULL, NULL} /* sentinel */ +}; + +static int execfunc(PyObject *m) +{ + PyObject *temp = NULL; + + /* Due to cross platform compiler issues the slots must be filled + * here. It's required for portability to Windows without requiring + * C++. */ + Str_Type_slots[0].pfunc = &PyUnicode_Type; + + /* Add a custom type */ + temp = PyType_FromSpec(&Example_Type_spec); + if (temp == NULL) + goto fail; + if (PyModule_AddObject(m, "Example", temp) != 0) + goto fail; + + /* Add an exception type */ + temp = PyErr_NewException("_testimportexec.error", NULL, NULL); + if (temp == NULL) + goto fail; + if (PyModule_AddObject(m, "error", temp) != 0) + goto fail; + + /* Add Str */ + temp = PyType_FromSpec(&Str_Type_spec); + if (temp == NULL) + goto fail; + if (PyModule_AddObject(m, "Str", temp) != 0) + goto fail; + + if (PyModule_AddIntConstant(m, "int_const", 1969) != 0) + goto fail; + + if (PyModule_AddStringConstant(m, "str_const", "something different") != 0) + goto fail; + + return 0; + fail: + return -1; +} + +/* Helper for module definitions; there'll be a lot of them */ +#define TEST_MODULE_DEF(name, slots, methods) { \ + PyModuleDef_HEAD_INIT, /* m_base */ \ + name, /* m_name */ \ + PyDoc_STR("Test module " name), /* m_doc */ \ + 0, /* m_size */ \ + methods, /* m_methods */ \ + slots, /* m_slots */ \ + NULL, /* m_traverse */ \ + NULL, /* m_clear */ \ + NULL, /* m_free */ \ +} + +PyModuleDef_Slot main_slots[] = { + {Py_mod_exec, execfunc}, + {0, NULL}, +}; + +static PyModuleDef main_def = TEST_MODULE_DEF("main", main_slots, testexport_methods); + +PyMODINIT_FUNC +PyInit__testmultiphase(PyObject *spec) +{ + return PyModuleDef_Init(&main_def); +} + + +/**** Importing a non-module object ****/ + +static PyModuleDef def_nonmodule; + +/* Create a SimpleNamespace(three=3) */ +static PyObject* +createfunc_nonmodule(PyObject *spec, PyModuleDef *def) +{ + PyObject *dct, *ns, *three; + + if (def != &def_nonmodule) { + PyErr_SetString(PyExc_SystemError, "def does not match"); + return NULL; + } + + dct = PyDict_New(); + if (dct == NULL) + return NULL; + + three = PyLong_FromLong(3); + if (three == NULL) { + Py_DECREF(dct); + return NULL; + } + PyDict_SetItemString(dct, "three", three); + + ns = _PyNamespace_New(dct); + Py_DECREF(dct); + return ns; +} + +static PyModuleDef_Slot slots_create_nonmodule[] = { + {Py_mod_create, createfunc_nonmodule}, + {0, NULL}, +}; + +static PyModuleDef def_nonmodule = TEST_MODULE_DEF( + "_testmultiphase_nonmodule", slots_create_nonmodule, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_nonmodule(PyObject *spec) +{ + return PyModuleDef_Init(&def_nonmodule); +} + +/**** Non-ASCII-named modules ****/ + +static PyModuleDef def_nonascii_latin = { \ + PyModuleDef_HEAD_INIT, /* m_base */ + "_testmultiphase_nonascii_latin", /* m_name */ + PyDoc_STR("Module named in Czech"), /* m_doc */ + 0, /* m_size */ + NULL, /* m_methods */ + NULL, /* m_slots */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +PyMODINIT_FUNC +PyInitU__testmultiphase_zkouka_naten_evc07gi8e(PyObject *spec) +{ + return PyModuleDef_Init(&def_nonascii_latin); +} + +static PyModuleDef def_nonascii_kana = { \ + PyModuleDef_HEAD_INIT, /* m_base */ + "_testmultiphase_nonascii_kana", /* m_name */ + PyDoc_STR("Module named in Japanese"), /* m_doc */ + 0, /* m_size */ + NULL, /* m_methods */ + NULL, /* m_slots */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +PyMODINIT_FUNC +PyInitU_eckzbwbhc6jpgzcx415x(PyObject *spec) +{ + return PyModuleDef_Init(&def_nonascii_kana); +} + +/**** Testing NULL slots ****/ + +static PyModuleDef null_slots_def = TEST_MODULE_DEF( + "_testmultiphase_null_slots", NULL, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_null_slots(PyObject *spec) +{ + return PyModuleDef_Init(&null_slots_def); +} + +/**** Problematic modules ****/ + +static PyModuleDef_Slot slots_bad_large[] = { + {_Py_mod_LAST_SLOT + 1, NULL}, + {0, NULL}, +}; + +static PyModuleDef def_bad_large = TEST_MODULE_DEF( + "_testmultiphase_bad_slot_large", slots_bad_large, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_bad_slot_large(PyObject *spec) +{ + return PyModuleDef_Init(&def_bad_large); +} + +static PyModuleDef_Slot slots_bad_negative[] = { + {-1, NULL}, + {0, NULL}, +}; + +static PyModuleDef def_bad_negative = TEST_MODULE_DEF( + "_testmultiphase_bad_slot_negative", slots_bad_negative, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_bad_slot_negative(PyObject *spec) +{ + return PyModuleDef_Init(&def_bad_negative); +} + +static PyModuleDef def_create_int_with_state = { \ + PyModuleDef_HEAD_INIT, /* m_base */ + "create_with_state", /* m_name */ + PyDoc_STR("Not a PyModuleObject object, but requests per-module state"), + 10, /* m_size */ + NULL, /* m_methods */ + slots_create_nonmodule, /* m_slots */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +PyMODINIT_FUNC +PyInit__testmultiphase_create_int_with_state(PyObject *spec) +{ + return PyModuleDef_Init(&def_create_int_with_state); +} + + +static PyModuleDef def_negative_size = { \ + PyModuleDef_HEAD_INIT, /* m_base */ + "negative_size", /* m_name */ + PyDoc_STR("PyModuleDef with negative m_size"), + -1, /* m_size */ + NULL, /* m_methods */ + slots_create_nonmodule, /* m_slots */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +PyMODINIT_FUNC +PyInit__testmultiphase_negative_size(PyObject *spec) +{ + return PyModuleDef_Init(&def_negative_size); +} + + +static PyModuleDef uninitialized_def = TEST_MODULE_DEF("main", main_slots, testexport_methods); + +PyMODINIT_FUNC +PyInit__testmultiphase_export_uninitialized(PyObject *spec) +{ + return (PyObject*) &uninitialized_def; +} + +PyMODINIT_FUNC +PyInit__testmultiphase_export_null(PyObject *spec) +{ + return NULL; +} + +PyMODINIT_FUNC +PyInit__testmultiphase_export_raise(PyObject *spec) +{ + PyErr_SetString(PyExc_SystemError, "bad export function"); + return NULL; +} + +PyMODINIT_FUNC +PyInit__testmultiphase_export_unreported_exception(PyObject *spec) +{ + PyErr_SetString(PyExc_SystemError, "bad export function"); + return PyModuleDef_Init(&main_def); +} + +static PyObject* +createfunc_null(PyObject *spec, PyModuleDef *def) +{ + return NULL; +} + +PyModuleDef_Slot slots_create_null[] = { + {Py_mod_create, createfunc_null}, + {0, NULL}, +}; + +static PyModuleDef def_create_null = TEST_MODULE_DEF( + "_testmultiphase_create_null", slots_create_null, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_create_null(PyObject *spec) +{ + return PyModuleDef_Init(&def_create_null); +} + +static PyObject* +createfunc_raise(PyObject *spec, PyModuleDef *def) +{ + PyErr_SetString(PyExc_SystemError, "bad create function"); + return NULL; +} + +static PyModuleDef_Slot slots_create_raise[] = { + {Py_mod_create, createfunc_raise}, + {0, NULL}, +}; + +static PyModuleDef def_create_raise = TEST_MODULE_DEF( + "_testmultiphase_create_null", slots_create_raise, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_create_raise(PyObject *spec) +{ + return PyModuleDef_Init(&def_create_raise); +} + +static PyObject* +createfunc_unreported_exception(PyObject *spec, PyModuleDef *def) +{ + PyErr_SetString(PyExc_SystemError, "bad create function"); + return PyModule_New("foo"); +} + +static PyModuleDef_Slot slots_create_unreported_exception[] = { + {Py_mod_create, createfunc_unreported_exception}, + {0, NULL}, +}; + +static PyModuleDef def_create_unreported_exception = TEST_MODULE_DEF( + "_testmultiphase_create_unreported_exception", slots_create_unreported_exception, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_create_unreported_exception(PyObject *spec) +{ + return PyModuleDef_Init(&def_create_unreported_exception); +} + +static PyModuleDef_Slot slots_nonmodule_with_exec_slots[] = { + {Py_mod_create, createfunc_nonmodule}, + {Py_mod_exec, execfunc}, + {0, NULL}, +}; + +static PyModuleDef def_nonmodule_with_exec_slots = TEST_MODULE_DEF( + "_testmultiphase_nonmodule_with_exec_slots", slots_nonmodule_with_exec_slots, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_nonmodule_with_exec_slots(PyObject *spec) +{ + return PyModuleDef_Init(&def_nonmodule_with_exec_slots); +} + +static int +execfunc_err(PyObject *mod) +{ + return -1; +} + +static PyModuleDef_Slot slots_exec_err[] = { + {Py_mod_exec, execfunc_err}, + {0, NULL}, +}; + +static PyModuleDef def_exec_err = TEST_MODULE_DEF( + "_testmultiphase_exec_err", slots_exec_err, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_exec_err(PyObject *spec) +{ + return PyModuleDef_Init(&def_exec_err); +} + +static int +execfunc_raise(PyObject *spec) +{ + PyErr_SetString(PyExc_SystemError, "bad exec function"); + return -1; +} + +static PyModuleDef_Slot slots_exec_raise[] = { + {Py_mod_exec, execfunc_raise}, + {0, NULL}, +}; + +static PyModuleDef def_exec_raise = TEST_MODULE_DEF( + "_testmultiphase_exec_raise", slots_exec_raise, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_exec_raise(PyObject *mod) +{ + return PyModuleDef_Init(&def_exec_raise); +} + +static int +execfunc_unreported_exception(PyObject *mod) +{ + PyErr_SetString(PyExc_SystemError, "bad exec function"); + return 0; +} + +static PyModuleDef_Slot slots_exec_unreported_exception[] = { + {Py_mod_exec, execfunc_unreported_exception}, + {0, NULL}, +}; + +static PyModuleDef def_exec_unreported_exception = TEST_MODULE_DEF( + "_testmultiphase_exec_unreported_exception", slots_exec_unreported_exception, NULL); + +PyMODINIT_FUNC +PyInit__testmultiphase_exec_unreported_exception(PyObject *spec) +{ + return PyModuleDef_Init(&def_exec_unreported_exception); +} diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 8d0462d5d01..a3ccf9344ff 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -2981,34 +2981,17 @@ static PyMethodDef a_methods[] = { {NULL, NULL, 0, NULL} /* Sentinel */ }; -static struct PyModuleDef arraymodule = { - PyModuleDef_HEAD_INIT, - "array", - module_doc, - -1, - a_methods, - NULL, - NULL, - NULL, - NULL -}; - - -PyMODINIT_FUNC -PyInit_array(void) +static int +array_modexec(PyObject *m) { - PyObject *m; char buffer[Py_ARRAY_LENGTH(descriptors)], *p; PyObject *typecodes; Py_ssize_t size = 0; struct arraydescr *descr; if (PyType_Ready(&Arraytype) < 0) - return NULL; + return -1; Py_TYPE(&PyArrayIter_Type) = &PyType_Type; - m = PyModule_Create(&arraymodule); - if (m == NULL) - return NULL; Py_INCREF((PyObject *)&Arraytype); PyModule_AddObject(m, "ArrayType", (PyObject *)&Arraytype); @@ -3031,5 +3014,30 @@ PyInit_array(void) Py_DECREF(m); m = NULL; } - return m; + return 0; +} + +static PyModuleDef_Slot arrayslots[] = { + {Py_mod_exec, array_modexec}, + {0, NULL} +}; + + +static struct PyModuleDef arraymodule = { + PyModuleDef_HEAD_INIT, + "array", + module_doc, + 0, + a_methods, + arrayslots, + NULL, + NULL, + NULL +}; + + +PyMODINIT_FUNC +PyInit_array(void) +{ + return PyModuleDef_Init(&arraymodule); } diff --git a/Modules/config.c.in b/Modules/config.c.in index 7a24e2dc896..7b77199c2e9 100644 --- a/Modules/config.c.in +++ b/Modules/config.c.in @@ -13,7 +13,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. /* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */ /* This file contains the table of built-in modules. - See init_builtin() in import.c. */ + See create_builtin() in import.c. */ #include "Python.h" diff --git a/Modules/xxlimited.c b/Modules/xxlimited.c index 7bfcb911e45..604456bffe6 100644 --- a/Modules/xxlimited.c +++ b/Modules/xxlimited.c @@ -222,25 +222,9 @@ static PyMethodDef xx_methods[] = { PyDoc_STRVAR(module_doc, "This is a template module just for instruction."); -/* Initialization function for the module (*must* be called PyInit_xx) */ - - -static struct PyModuleDef xxmodule = { - PyModuleDef_HEAD_INIT, - "xxlimited", - module_doc, - -1, - xx_methods, - NULL, - NULL, - NULL, - NULL -}; - -PyMODINIT_FUNC -PyInit_xxlimited(void) +static int +xx_modexec(PyObject *m) { - PyObject *m = NULL; PyObject *o; /* Due to cross platform compiler issues the slots must be filled @@ -254,11 +238,6 @@ PyInit_xxlimited(void) if (Xxo_Type == NULL) goto fail; - /* Create the module and add the functions */ - m = PyModule_Create(&xxmodule); - if (m == NULL) - goto fail; - /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { ErrorObject = PyErr_NewException("xxlimited.error", NULL, NULL); @@ -279,8 +258,34 @@ PyInit_xxlimited(void) if (o == NULL) goto fail; PyModule_AddObject(m, "Null", o); - return m; + return 0; fail: Py_XDECREF(m); - return NULL; + return -1; +} + + +static PyModuleDef_Slot xx_slots[] = { + {Py_mod_exec, xx_modexec}, + {0, NULL} +}; + +static struct PyModuleDef xxmodule = { + PyModuleDef_HEAD_INIT, + "xxlimited", + module_doc, + 0, + xx_methods, + xx_slots, + NULL, + NULL, + NULL +}; + +/* Export function for the module (*must* be called PyInit_xx) */ + +PyMODINIT_FUNC +PyInit_xxlimited(void) +{ + return PyModuleDef_Init(&xxmodule); } diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c index 0feff662d53..85230d9c976 100644 --- a/Modules/xxmodule.c +++ b/Modules/xxmodule.c @@ -334,26 +334,10 @@ static PyMethodDef xx_methods[] = { PyDoc_STRVAR(module_doc, "This is a template module just for instruction."); -/* Initialization function for the module (*must* be called PyInit_xx) */ - -static struct PyModuleDef xxmodule = { - PyModuleDef_HEAD_INIT, - "xx", - module_doc, - -1, - xx_methods, - NULL, - NULL, - NULL, - NULL -}; - -PyMODINIT_FUNC -PyInit_xx(void) +static int +xx_exec(PyObject *m) { - PyObject *m = NULL; - /* Due to cross platform compiler issues the slots must be filled * here. It's required for portability to Windows without requiring * C++. */ @@ -366,11 +350,6 @@ PyInit_xx(void) if (PyType_Ready(&Xxo_Type) < 0) goto fail; - /* Create the module and add the functions */ - m = PyModule_Create(&xxmodule); - if (m == NULL) - goto fail; - /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { ErrorObject = PyErr_NewException("xx.error", NULL, NULL); @@ -389,8 +368,33 @@ PyInit_xx(void) if (PyType_Ready(&Null_Type) < 0) goto fail; PyModule_AddObject(m, "Null", (PyObject *)&Null_Type); - return m; + return 0; fail: Py_XDECREF(m); - return NULL; + return -1; +} + +static struct PyModuleDef_Slot xx_slots[] = { + {Py_mod_exec, xx_exec}, + {0, NULL}, +}; + +static struct PyModuleDef xxmodule = { + PyModuleDef_HEAD_INIT, + "xx", + module_doc, + 0, + xx_methods, + xx_slots, + NULL, + NULL, + NULL +}; + +/* Export function for the module (*must* be called PyInit_xx) */ + +PyMODINIT_FUNC +PyInit_xx(void) +{ + return PyModuleDef_Init(&xxmodule); } diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c index 6944e377034..8d0d6ae8149 100644 --- a/Modules/xxsubtype.c +++ b/Modules/xxsubtype.c @@ -257,13 +257,50 @@ static PyMethodDef xxsubtype_functions[] = { {NULL, NULL} /* sentinel */ }; +static int +xxsubtype_exec(PyObject* m) +{ + /* Fill in deferred data addresses. This must be done before + PyType_Ready() is called. Note that PyType_Ready() automatically + initializes the ob.ob_type field to &PyType_Type if it's NULL, + so it's not necessary to fill in ob_type first. */ + spamdict_type.tp_base = &PyDict_Type; + if (PyType_Ready(&spamdict_type) < 0) + return -1; + + spamlist_type.tp_base = &PyList_Type; + if (PyType_Ready(&spamlist_type) < 0) + return -1; + + if (PyType_Ready(&spamlist_type) < 0) + return -1; + if (PyType_Ready(&spamdict_type) < 0) + return -1; + + Py_INCREF(&spamlist_type); + if (PyModule_AddObject(m, "spamlist", + (PyObject *) &spamlist_type) < 0) + return -1; + + Py_INCREF(&spamdict_type); + if (PyModule_AddObject(m, "spamdict", + (PyObject *) &spamdict_type) < 0) + return -1; + return 0; +} + +static struct PyModuleDef_Slot xxsubtype_slots[] = { + {Py_mod_exec, xxsubtype_exec}, + {0, NULL}, +}; + static struct PyModuleDef xxsubtypemodule = { PyModuleDef_HEAD_INIT, "xxsubtype", xxsubtype__doc__, - -1, + 0, xxsubtype_functions, - NULL, + xxsubtype_slots, NULL, NULL, NULL @@ -273,37 +310,5 @@ static struct PyModuleDef xxsubtypemodule = { PyMODINIT_FUNC PyInit_xxsubtype(void) { - PyObject *m; - - /* Fill in deferred data addresses. This must be done before - PyType_Ready() is called. Note that PyType_Ready() automatically - initializes the ob.ob_type field to &PyType_Type if it's NULL, - so it's not necessary to fill in ob_type first. */ - spamdict_type.tp_base = &PyDict_Type; - if (PyType_Ready(&spamdict_type) < 0) - return NULL; - - spamlist_type.tp_base = &PyList_Type; - if (PyType_Ready(&spamlist_type) < 0) - return NULL; - - m = PyModule_Create(&xxsubtypemodule); - if (m == NULL) - return NULL; - - if (PyType_Ready(&spamlist_type) < 0) - return NULL; - if (PyType_Ready(&spamdict_type) < 0) - return NULL; - - Py_INCREF(&spamlist_type); - if (PyModule_AddObject(m, "spamlist", - (PyObject *) &spamlist_type) < 0) - return NULL; - - Py_INCREF(&spamdict_type); - if (PyModule_AddObject(m, "spamdict", - (PyObject *) &spamdict_type) < 0) - return NULL; - return m; + return PyModuleDef_Init(&xxsubtypemodule); } diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index dca5e58c44a..7a86a5b36fa 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -20,7 +20,7 @@ static PyMemberDef module_members[] = { {0} }; -static PyTypeObject moduledef_type = { +PyTypeObject PyModuleDef_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "moduledef", /* tp_name */ sizeof(struct PyModuleDef), /* tp_size */ @@ -28,6 +28,20 @@ static PyTypeObject moduledef_type = { }; +PyObject* +PyModuleDef_Init(struct PyModuleDef* def) +{ + if (PyType_Ready(&PyModuleDef_Type) < 0) + return NULL; + if (def->m_base.m_index == 0) { + max_module_number++; + Py_REFCNT(def) = 1; + Py_TYPE(def) = &PyModuleDef_Type; + def->m_base.m_index = max_module_number; + } + return (PyObject*)def; +} + static int module_init_dict(PyModuleObject *mod, PyObject *md_dict, PyObject *name, PyObject *doc) @@ -97,26 +111,13 @@ PyModule_New(const char *name) return module; } - -PyObject * -PyModule_Create2(struct PyModuleDef* module, int module_api_version) +/* Check API/ABI version + * Issues a warning on mismatch, which is usually not fatal. + * Returns 0 if an exception is raised. + */ +static int +check_api_version(const char *name, int module_api_version) { - PyObject *d, *v, *n; - PyMethodDef *ml; - const char* name; - PyModuleObject *m; - PyInterpreterState *interp = PyThreadState_Get()->interp; - if (interp->modules == NULL) - Py_FatalError("Python import machinery not initialized"); - if (PyType_Ready(&moduledef_type) < 0) - return NULL; - if (module->m_base.m_index == 0) { - max_module_number++; - Py_REFCNT(module) = 1; - Py_TYPE(module) = &moduledef_type; - module->m_base.m_index = max_module_number; - } - name = module->m_name; if (module_api_version != PYTHON_API_VERSION && module_api_version != PYTHON_ABI_VERSION) { int err; err = PyErr_WarnFormat(PyExc_RuntimeWarning, 1, @@ -125,7 +126,30 @@ PyModule_Create2(struct PyModuleDef* module, int module_api_version) name, PYTHON_API_VERSION, name, module_api_version); if (err) - return NULL; + return 0; + } + return 1; +} + +PyObject * +PyModule_Create2(struct PyModuleDef* module, int module_api_version) +{ + const char* name; + PyModuleObject *m; + PyInterpreterState *interp = PyThreadState_Get()->interp; + if (interp->modules == NULL) + Py_FatalError("Python import machinery not initialized"); + if (!PyModuleDef_Init(module)) + return NULL; + name = module->m_name; + if (!check_api_version(name, module_api_version)) { + return NULL; + } + if (module->m_slots) { + PyErr_Format( + PyExc_SystemError, + "module %s: PyModule_Create is incompatible with m_slots", name); + return NULL; } /* Make sure name is fully qualified. @@ -156,53 +180,260 @@ PyModule_Create2(struct PyModuleDef* module, int module_api_version) memset(m->md_state, 0, module->m_size); } - d = PyModule_GetDict((PyObject*)m); if (module->m_methods != NULL) { - n = PyUnicode_FromString(name); - if (n == NULL) { + if (PyModule_AddFunctions((PyObject *) m, module->m_methods) != 0) { Py_DECREF(m); return NULL; } - for (ml = module->m_methods; ml->ml_name != NULL; ml++) { - if ((ml->ml_flags & METH_CLASS) || - (ml->ml_flags & METH_STATIC)) { - PyErr_SetString(PyExc_ValueError, - "module functions cannot set" - " METH_CLASS or METH_STATIC"); - Py_DECREF(n); - Py_DECREF(m); - return NULL; - } - v = PyCFunction_NewEx(ml, (PyObject*)m, n); - if (v == NULL) { - Py_DECREF(n); - Py_DECREF(m); - return NULL; - } - if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { - Py_DECREF(v); - Py_DECREF(n); - Py_DECREF(m); - return NULL; - } - Py_DECREF(v); - } - Py_DECREF(n); } if (module->m_doc != NULL) { - _Py_IDENTIFIER(__doc__); - v = PyUnicode_FromString(module->m_doc); - if (v == NULL || _PyDict_SetItemId(d, &PyId___doc__, v) != 0) { - Py_XDECREF(v); + if (PyModule_SetDocString((PyObject *) m, module->m_doc) != 0) { Py_DECREF(m); return NULL; } - Py_DECREF(v); } m->md_def = module; return (PyObject*)m; } +PyObject * +PyModule_FromDefAndSpec2(struct PyModuleDef* def, PyObject *spec, int module_api_version) +{ + PyModuleDef_Slot* cur_slot; + PyObject *(*create)(PyObject *, PyModuleDef*) = NULL; + PyObject *nameobj; + PyObject *m = NULL; + int has_execution_slots = 0; + char *name; + int ret; + + PyModuleDef_Init(def); + + nameobj = PyObject_GetAttrString(spec, "name"); + if (nameobj == NULL) { + return NULL; + } + name = PyUnicode_AsUTF8(nameobj); + if (name == NULL) { + goto error; + } + + if (!check_api_version(name, module_api_version)) { + goto error; + } + + if (def->m_size < 0) { + PyErr_Format( + PyExc_SystemError, + "module %s: m_size may not be negative for multi-phase initialization", + name); + goto error; + } + + for (cur_slot = def->m_slots; cur_slot && cur_slot->slot; cur_slot++) { + if (cur_slot->slot == Py_mod_create) { + if (create) { + PyErr_Format( + PyExc_SystemError, + "module %s has multiple create slots", + name); + goto error; + } + create = cur_slot->value; + } else if (cur_slot->slot < 0 || cur_slot->slot > _Py_mod_LAST_SLOT) { + PyErr_Format( + PyExc_SystemError, + "module %s uses unknown slot ID %i", + name, cur_slot->slot); + goto error; + } else { + has_execution_slots = 1; + } + } + + if (create) { + m = create(spec, def); + if (m == NULL) { + if (!PyErr_Occurred()) { + PyErr_Format( + PyExc_SystemError, + "creation of module %s failed without setting an exception", + name); + } + goto error; + } else { + if (PyErr_Occurred()) { + PyErr_Format(PyExc_SystemError, + "creation of module %s raised unreported exception", + name); + goto error; + } + } + } else { + m = PyModule_New(name); + if (m == NULL) { + goto error; + } + } + + if (PyModule_Check(m)) { + ((PyModuleObject*)m)->md_state = NULL; + ((PyModuleObject*)m)->md_def = def; + } else { + if (def->m_size > 0 || def->m_traverse || def->m_clear || def->m_free) { + PyErr_Format( + PyExc_SystemError, + "module %s is not a module object, but requests module state", + name); + goto error; + } + if (has_execution_slots) { + PyErr_Format( + PyExc_SystemError, + "module %s specifies execution slots, but did not create " + "a ModuleType instance", + name); + goto error; + } + } + + if (def->m_methods != NULL) { + ret = PyModule_AddFunctions(m, def->m_methods); + if (ret != 0) { + goto error; + } + } + + if (def->m_doc != NULL) { + ret = PyModule_SetDocString(m, def->m_doc); + if (ret != 0) { + goto error; + } + } + + return m; + +error: + Py_DECREF(nameobj); + Py_XDECREF(m); + return NULL; +} + +int +PyModule_ExecDef(PyObject *module, PyModuleDef *def) +{ + PyModuleDef_Slot *cur_slot; + const char *name; + int ret; + + name = PyModule_GetName(module); + if (name == NULL) { + return -1; + } + + if (PyModule_Check(module) && def->m_size >= 0) { + PyModuleObject *md = (PyModuleObject*)module; + if (md->md_state == NULL) { + /* Always set a state pointer; this serves as a marker to skip + * multiple initialization (importlib.reload() is no-op) */ + md->md_state = PyMem_MALLOC(def->m_size); + if (!md->md_state) { + PyErr_NoMemory(); + return -1; + } + memset(md->md_state, 0, def->m_size); + } + } + + if (def->m_slots == NULL) { + return 0; + } + + for (cur_slot = def->m_slots; cur_slot && cur_slot->slot; cur_slot++) { + switch (cur_slot->slot) { + case Py_mod_create: + /* handled in PyModule_CreateFromSlots */ + break; + case Py_mod_exec: + ret = ((int (*)(PyObject *))cur_slot->value)(module); + if (ret != 0) { + if (!PyErr_Occurred()) { + PyErr_Format( + PyExc_SystemError, + "execution of module %s failed without setting an exception", + name); + } + return -1; + } + if (PyErr_Occurred()) { + PyErr_Format( + PyExc_SystemError, + "execution of module %s raised unreported exception", + name); + return -1; + } + break; + default: + PyErr_Format( + PyExc_SystemError, + "module %s initialized with unknown slot %i", + name, cur_slot->slot); + return -1; + } + } + return 0; +} + +int +PyModule_AddFunctions(PyObject *m, PyMethodDef *functions) +{ + PyObject *name, *func; + PyMethodDef *fdef; + + name = PyModule_GetNameObject(m); + if (name == NULL) { + return -1; + } + + for (fdef = functions; fdef->ml_name != NULL; fdef++) { + if ((fdef->ml_flags & METH_CLASS) || + (fdef->ml_flags & METH_STATIC)) { + PyErr_SetString(PyExc_ValueError, + "module functions cannot set" + " METH_CLASS or METH_STATIC"); + Py_DECREF(name); + return -1; + } + func = PyCFunction_NewEx(fdef, (PyObject*)m, name); + if (func == NULL) { + Py_DECREF(name); + return -1; + } + if (PyObject_SetAttrString(m, fdef->ml_name, func) != 0) { + Py_DECREF(func); + Py_DECREF(name); + return -1; + } + Py_DECREF(func); + } + Py_DECREF(name); + return 0; +} + +int +PyModule_SetDocString(PyObject *m, const char *doc) +{ + PyObject *v; + _Py_IDENTIFIER(__doc__); + + v = PyUnicode_FromString(doc); + if (v == NULL || _PyObject_SetAttrId(m, &PyId___doc__, v) != 0) { + Py_XDECREF(v); + return -1; + } + Py_DECREF(v); + return 0; +} PyObject * PyModule_GetDict(PyObject *m) diff --git a/PC/config.c b/PC/config.c index 48dbcc02739..66bf4580a01 100644 --- a/PC/config.c +++ b/PC/config.c @@ -1,7 +1,7 @@ /* Module configuration */ /* This file contains the table of built-in modules. - See init_builtin() in import.c. */ + See create_builtin() in import.c. */ #include "Python.h" diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h index d4012224df3..53b5b171eef 100644 --- a/Python/clinic/import.c.h +++ b/Python/clinic/import.c.h @@ -97,6 +97,15 @@ exit: return return_value; } +PyDoc_STRVAR(_imp_create_builtin__doc__, +"create_builtin($module, spec, /)\n" +"--\n" +"\n" +"Create an extension module."); + +#define _IMP_CREATE_BUILTIN_METHODDEF \ + {"create_builtin", (PyCFunction)_imp_create_builtin, METH_O, _imp_create_builtin__doc__}, + PyDoc_STRVAR(_imp_extension_suffixes__doc__, "extension_suffixes($module, /)\n" "--\n" @@ -115,32 +124,6 @@ _imp_extension_suffixes(PyModuleDef *module, PyObject *Py_UNUSED(ignored)) return _imp_extension_suffixes_impl(module); } -PyDoc_STRVAR(_imp_init_builtin__doc__, -"init_builtin($module, name, /)\n" -"--\n" -"\n" -"Initializes a built-in module."); - -#define _IMP_INIT_BUILTIN_METHODDEF \ - {"init_builtin", (PyCFunction)_imp_init_builtin, METH_O, _imp_init_builtin__doc__}, - -static PyObject * -_imp_init_builtin_impl(PyModuleDef *module, PyObject *name); - -static PyObject * -_imp_init_builtin(PyModuleDef *module, PyObject *arg) -{ - PyObject *return_value = NULL; - PyObject *name; - - if (!PyArg_Parse(arg, "U:init_builtin", &name)) - goto exit; - return_value = _imp_init_builtin_impl(module, name); - -exit: - return return_value; -} - PyDoc_STRVAR(_imp_init_frozen__doc__, "init_frozen($module, name, /)\n" "--\n" @@ -273,31 +256,30 @@ exit: #if defined(HAVE_DYNAMIC_LOADING) -PyDoc_STRVAR(_imp_load_dynamic__doc__, -"load_dynamic($module, name, path, file=None, /)\n" +PyDoc_STRVAR(_imp_create_dynamic__doc__, +"create_dynamic($module, spec, file=None, /)\n" "--\n" "\n" -"Loads an extension module."); +"Create an extension module."); -#define _IMP_LOAD_DYNAMIC_METHODDEF \ - {"load_dynamic", (PyCFunction)_imp_load_dynamic, METH_VARARGS, _imp_load_dynamic__doc__}, +#define _IMP_CREATE_DYNAMIC_METHODDEF \ + {"create_dynamic", (PyCFunction)_imp_create_dynamic, METH_VARARGS, _imp_create_dynamic__doc__}, static PyObject * -_imp_load_dynamic_impl(PyModuleDef *module, PyObject *name, PyObject *path, - PyObject *file); +_imp_create_dynamic_impl(PyModuleDef *module, PyObject *spec, PyObject *file); static PyObject * -_imp_load_dynamic(PyModuleDef *module, PyObject *args) +_imp_create_dynamic(PyModuleDef *module, PyObject *args) { PyObject *return_value = NULL; - PyObject *name; - PyObject *path; + PyObject *spec; PyObject *file = NULL; - if (!PyArg_ParseTuple(args, "UO&|O:load_dynamic", - &name, PyUnicode_FSDecoder, &path, &file)) + if (!PyArg_UnpackTuple(args, "create_dynamic", + 1, 2, + &spec, &file)) goto exit; - return_value = _imp_load_dynamic_impl(module, name, path, file); + return_value = _imp_create_dynamic_impl(module, spec, file); exit: return return_value; @@ -305,7 +287,42 @@ exit: #endif /* defined(HAVE_DYNAMIC_LOADING) */ -#ifndef _IMP_LOAD_DYNAMIC_METHODDEF - #define _IMP_LOAD_DYNAMIC_METHODDEF -#endif /* !defined(_IMP_LOAD_DYNAMIC_METHODDEF) */ -/*[clinic end generated code: output=6d75cece35863874 input=a9049054013a1b77]*/ +#if defined(HAVE_DYNAMIC_LOADING) + +PyDoc_STRVAR(_imp_exec_dynamic__doc__, +"exec_dynamic($module, mod, /)\n" +"--\n" +"\n" +"Initialize an extension module."); + +#define _IMP_EXEC_DYNAMIC_METHODDEF \ + {"exec_dynamic", (PyCFunction)_imp_exec_dynamic, METH_O, _imp_exec_dynamic__doc__}, + +static int +_imp_exec_dynamic_impl(PyModuleDef *module, PyObject *mod); + +static PyObject * +_imp_exec_dynamic(PyModuleDef *module, PyObject *mod) +{ + PyObject *return_value = NULL; + int _return_value; + + _return_value = _imp_exec_dynamic_impl(module, mod); + if ((_return_value == -1) && PyErr_Occurred()) + goto exit; + return_value = PyLong_FromLong((long)_return_value); + +exit: + return return_value; +} + +#endif /* defined(HAVE_DYNAMIC_LOADING) */ + +#ifndef _IMP_CREATE_DYNAMIC_METHODDEF + #define _IMP_CREATE_DYNAMIC_METHODDEF +#endif /* !defined(_IMP_CREATE_DYNAMIC_METHODDEF) */ + +#ifndef _IMP_EXEC_DYNAMIC_METHODDEF + #define _IMP_EXEC_DYNAMIC_METHODDEF +#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ +/*[clinic end generated code: output=0f1059766dd58f88 input=a9049054013a1b77]*/ diff --git a/Python/dynload_aix.c b/Python/dynload_aix.c index 5ac30ed5f13..b3ff8e288c1 100644 --- a/Python/dynload_aix.c +++ b/Python/dynload_aix.c @@ -154,8 +154,9 @@ aix_loaderror(const char *pathname) } -dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, - const char *pathname, FILE *fp) +dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, + const char *shortname, + const char *pathname, FILE *fp) { dl_funcptr p; diff --git a/Python/dynload_dl.c b/Python/dynload_dl.c index 5836cb3b292..d235a84c15c 100644 --- a/Python/dynload_dl.c +++ b/Python/dynload_dl.c @@ -12,11 +12,12 @@ extern char *Py_GetProgramName(void); const char *_PyImport_DynLoadFiletab[] = {".o", NULL}; -dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, - const char *pathname, FILE *fp) +dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, + const char *shortname, + const char *pathname, FILE *fp) { char funcname[258]; - PyOS_snprintf(funcname, sizeof(funcname), "PyInit_%.200s", shortname); + PyOS_snprintf(funcname, sizeof(funcname), "%20s_%.200s", prefix, shortname); return dl_loadmod(Py_GetProgramName(), pathname, funcname); } diff --git a/Python/dynload_hpux.c b/Python/dynload_hpux.c index c9554148cc5..e28ae7c903e 100644 --- a/Python/dynload_hpux.c +++ b/Python/dynload_hpux.c @@ -8,15 +8,16 @@ #include "importdl.h" #if defined(__hp9000s300) -#define FUNCNAME_PATTERN "_PyInit_%.200s" +#define FUNCNAME_PATTERN "_%20s_%.200s" #else -#define FUNCNAME_PATTERN "PyInit_%.200s" +#define FUNCNAME_PATTERN "%20s_%.200s" #endif const char *_PyImport_DynLoadFiletab[] = {SHLIB_EXT, NULL}; -dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, - const char *pathname, FILE *fp) +dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, + const char *shortname, + const char *pathname, FILE *fp) { dl_funcptr p; shl_t lib; @@ -50,7 +51,8 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, Py_DECREF(pathname_ob); return NULL; } - PyOS_snprintf(funcname, sizeof(funcname), FUNCNAME_PATTERN, shortname); + PyOS_snprintf(funcname, sizeof(funcname), FUNCNAME_PATTERN, + prefix, shortname); if (Py_VerboseFlag) printf("shl_findsym %s\n", funcname); if (shl_findsym(&lib, funcname, TYPE_UNDEFINED, (void *) &p) == -1) { diff --git a/Python/dynload_next.c b/Python/dynload_next.c index 85c95b41bb5..c555b3802f7 100644 --- a/Python/dynload_next.c +++ b/Python/dynload_next.c @@ -27,8 +27,9 @@ const char *_PyImport_DynLoadFiletab[] = {".so", NULL}; #define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW| \ NSLINKMODULE_OPTION_RETURN_ON_ERROR|NSLINKMODULE_OPTION_PRIVATE #endif -dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, - const char *pathname, FILE *fp) +dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, + const char *shortname, + const char *pathname, FILE *fp) { dl_funcptr p = NULL; char funcname[258]; @@ -39,7 +40,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, const char *errString; char errBuf[512]; - PyOS_snprintf(funcname, sizeof(funcname), "_PyInit_%.200s", shortname); + PyOS_snprintf(funcname, sizeof(funcname), "_%20s_%.200s", prefix, shortname); #ifdef USE_DYLD_GLOBAL_NAMESPACE if (NSIsSymbolNameDefined(funcname)) { diff --git a/Python/dynload_shlib.c b/Python/dynload_shlib.c index 1a467fde7c8..7f8f134d60b 100644 --- a/Python/dynload_shlib.c +++ b/Python/dynload_shlib.c @@ -51,8 +51,10 @@ static struct { static int nhandles = 0; -dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, - const char *pathname, FILE *fp) +dl_funcptr +_PyImport_FindSharedFuncptr(const char *prefix, + const char *shortname, + const char *pathname, FILE *fp) { dl_funcptr p; void *handle; @@ -67,7 +69,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, } PyOS_snprintf(funcname, sizeof(funcname), - LEAD_UNDERSCORE "PyInit_%.200s", shortname); + LEAD_UNDERSCORE "%.20s_%.200s", prefix, shortname); if (fp != NULL) { int i; diff --git a/Python/dynload_win.c b/Python/dynload_win.c index 9ed9eea3337..96f1a09f8a4 100644 --- a/Python/dynload_win.c +++ b/Python/dynload_win.c @@ -186,8 +186,9 @@ static char *GetPythonImport (HINSTANCE hModule) return NULL; } -dl_funcptr _PyImport_GetDynLoadWindows(const char *shortname, - PyObject *pathname, FILE *fp) +dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix, + const char *shortname, + PyObject *pathname, FILE *fp) { dl_funcptr p; char funcname[258], *import_python; @@ -201,7 +202,7 @@ dl_funcptr _PyImport_GetDynLoadWindows(const char *shortname, if (wpathname == NULL) return NULL; - PyOS_snprintf(funcname, sizeof(funcname), "PyInit_%.200s", shortname); + PyOS_snprintf(funcname, sizeof(funcname), "%20_%.200s", prefix, shortname); { HINSTANCE hDLL = NULL; diff --git a/Python/import.c b/Python/import.c index 658360d820f..3e277153453 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1026,50 +1026,74 @@ PyImport_GetImporter(PyObject *path) { return importer; } +/*[clinic input] +_imp.create_builtin -static int init_builtin(PyObject *); /* Forward */ + spec: object + / -/* Initialize a built-in module. - Return 1 for success, 0 if the module is not found, and -1 with - an exception set if the initialization failed. */ +Create an extension module. +[clinic start generated code]*/ -static int -init_builtin(PyObject *name) +static PyObject * +_imp_create_builtin(PyModuleDef *module, PyObject *spec) +/*[clinic end generated code: output=5038f467617226bd input=37f966f890384e47]*/ { struct _inittab *p; + PyObject *name; + char *namestr; PyObject *mod; + name = PyObject_GetAttrString(spec, "name"); + if (name == NULL) { + return NULL; + } + mod = _PyImport_FindExtensionObject(name, name); - if (PyErr_Occurred()) - return -1; - if (mod != NULL) - return 1; + if (mod || PyErr_Occurred()) { + Py_DECREF(name); + Py_INCREF(mod); + return mod; + } + + namestr = PyUnicode_AsUTF8(name); + if (namestr == NULL) { + Py_DECREF(name); + return NULL; + } for (p = PyImport_Inittab; p->name != NULL; p++) { - PyObject *mod; PyModuleDef *def; if (PyUnicode_CompareWithASCIIString(name, p->name) == 0) { if (p->initfunc == NULL) { - PyErr_Format(PyExc_ImportError, - "Cannot re-init internal module %R", - name); - return -1; + /* Cannot re-init internal module ("sys" or "builtins") */ + mod = PyImport_AddModule(namestr); + Py_DECREF(name); + return mod; } mod = (*p->initfunc)(); - if (mod == 0) - return -1; - /* Remember pointer to module init function. */ - def = PyModule_GetDef(mod); - def->m_base.m_init = p->initfunc; - if (_PyImport_FixupExtensionObject(mod, name, name) < 0) - return -1; - /* FixupExtension has put the module into sys.modules, - so we can release our own reference. */ - Py_DECREF(mod); - return 1; + if (mod == NULL) { + Py_DECREF(name); + return NULL; + } + if (PyObject_TypeCheck(mod, &PyModuleDef_Type)) { + Py_DECREF(name); + return PyModule_FromDefAndSpec((PyModuleDef*)mod, spec); + } else { + /* Remember pointer to module init function. */ + def = PyModule_GetDef(mod); + def->m_base.m_init = p->initfunc; + if (_PyImport_FixupExtensionObject(mod, name, name) < 0) { + Py_DECREF(name); + return NULL; + } + Py_DECREF(name); + return mod; + } } } - return 0; + Py_DECREF(name); + Py_RETURN_NONE; } @@ -1820,34 +1844,6 @@ _imp_extension_suffixes_impl(PyModuleDef *module) return list; } -/*[clinic input] -_imp.init_builtin - - name: unicode - / - -Initializes a built-in module. -[clinic start generated code]*/ - -static PyObject * -_imp_init_builtin_impl(PyModuleDef *module, PyObject *name) -/*[clinic end generated code: output=1868f473685f6d67 input=f934d2231ec52a2e]*/ -{ - int ret; - PyObject *m; - - ret = init_builtin(name); - if (ret < 0) - return NULL; - if (ret == 0) { - Py_INCREF(Py_None); - return Py_None; - } - m = PyImport_AddModuleObject(name); - Py_XINCREF(m); - return m; -} - /*[clinic input] _imp.init_frozen @@ -1946,40 +1942,100 @@ _imp_is_frozen_impl(PyModuleDef *module, PyObject *name) #ifdef HAVE_DYNAMIC_LOADING /*[clinic input] -_imp.load_dynamic +_imp.create_dynamic - name: unicode - path: fs_unicode + spec: object file: object = NULL / -Loads an extension module. +Create an extension module. [clinic start generated code]*/ static PyObject * -_imp_load_dynamic_impl(PyModuleDef *module, PyObject *name, PyObject *path, - PyObject *file) -/*[clinic end generated code: output=e84e5f7f0f39bc54 input=af64f06e4bad3526]*/ +_imp_create_dynamic_impl(PyModuleDef *module, PyObject *spec, PyObject *file) +/*[clinic end generated code: output=935cde5b3872d56d input=c31b954f4cf4e09d]*/ { - PyObject *mod; + PyObject *mod, *name, *path; FILE *fp; + name = PyObject_GetAttrString(spec, "name"); + if (name == NULL) { + return NULL; + } + + path = PyObject_GetAttrString(spec, "origin"); + if (path == NULL) { + Py_DECREF(name); + return NULL; + } + + mod = _PyImport_FindExtensionObject(name, path); + if (mod != NULL) { + Py_DECREF(name); + Py_DECREF(path); + Py_INCREF(mod); + return mod; + } + if (file != NULL) { fp = _Py_fopen_obj(path, "r"); if (fp == NULL) { + Py_DECREF(name); Py_DECREF(path); return NULL; } } else fp = NULL; - mod = _PyImport_LoadDynamicModule(name, path, fp); + + mod = _PyImport_LoadDynamicModuleWithSpec(spec, fp); + + Py_DECREF(name); Py_DECREF(path); if (fp) fclose(fp); return mod; } +/*[clinic input] +_imp.exec_dynamic -> int + + mod: object + / + +Initialize an extension module. +[clinic start generated code]*/ + +static int +_imp_exec_dynamic_impl(PyModuleDef *module, PyObject *mod) +/*[clinic end generated code: output=4b84f1301b22d4bd input=9fdbfcb250280d3a]*/ +{ + PyModuleDef *def; + void *state; + + if (!PyModule_Check(mod)) { + return 0; + } + + def = PyModule_GetDef(mod); + if (def == NULL) { + if (PyErr_Occurred()) { + return -1; + } + return 0; + } + state = PyModule_GetState(mod); + if (PyErr_Occurred()) { + return -1; + } + if (state) { + /* Already initialized; skip reload */ + return 0; + } + return PyModule_ExecDef(mod, def); +} + + #endif /* HAVE_DYNAMIC_LOADING */ /*[clinic input] @@ -1998,11 +2054,12 @@ static PyMethodDef imp_methods[] = { _IMP_RELEASE_LOCK_METHODDEF _IMP_GET_FROZEN_OBJECT_METHODDEF _IMP_IS_FROZEN_PACKAGE_METHODDEF - _IMP_INIT_BUILTIN_METHODDEF + _IMP_CREATE_BUILTIN_METHODDEF _IMP_INIT_FROZEN_METHODDEF _IMP_IS_BUILTIN_METHODDEF _IMP_IS_FROZEN_METHODDEF - _IMP_LOAD_DYNAMIC_METHODDEF + _IMP_CREATE_DYNAMIC_METHODDEF + _IMP_EXEC_DYNAMIC_METHODDEF _IMP__FIX_CO_FILENAME_METHODDEF {NULL, NULL} /* sentinel */ }; diff --git a/Python/importdl.c b/Python/importdl.c index b60f1c75fbd..bb90391c0bd 100644 --- a/Python/importdl.c +++ b/Python/importdl.c @@ -13,87 +13,186 @@ #include "importdl.h" #ifdef MS_WINDOWS -extern dl_funcptr _PyImport_GetDynLoadWindows(const char *shortname, - PyObject *pathname, FILE *fp); +extern dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix, + const char *shortname, + PyObject *pathname, + FILE *fp); #else -extern dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, - const char *pathname, FILE *fp); +extern dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, + const char *shortname, + const char *pathname, FILE *fp); #endif +static const char *ascii_only_prefix = "PyInit"; +static const char *nonascii_prefix = "PyInitU"; + +/* Get the variable part of a module's export symbol name. + * Returns a bytes instance. For non-ASCII-named modules, the name is + * encoded as per PEP 489. + * The hook_prefix pointer is set to either ascii_only_prefix or + * nonascii_prefix, as appropriate. + */ +static PyObject * +get_encoded_name(PyObject *name, const char **hook_prefix) { + char *buf; + PyObject *tmp; + PyObject *encoded = NULL; + Py_ssize_t name_len, lastdot, i; + + /* Get the short name (substring after last dot) */ + name_len = PyUnicode_GetLength(name); + lastdot = PyUnicode_FindChar(name, '.', 0, name_len, -1); + if (lastdot < -1) { + return NULL; + } else if (lastdot >= 0) { + tmp = PyUnicode_Substring(name, lastdot, name_len); + if (tmp == NULL) + return NULL; + name = tmp; + /* "name" now holds a new reference to the substring */ + } else { + Py_INCREF(name); + } + + /* Encode to ASCII or Punycode, as needed */ + encoded = PyUnicode_AsEncodedString(name, "ascii", NULL); + if (encoded != NULL) { + *hook_prefix = ascii_only_prefix; + } else { + if (PyErr_ExceptionMatches(PyExc_UnicodeEncodeError)) { + PyErr_Clear(); + encoded = PyUnicode_AsEncodedString(name, "punycode", NULL); + if (encoded == NULL) { + goto error; + } + *hook_prefix = nonascii_prefix; + } else { + goto error; + } + } + + buf = PyBytes_AS_STRING(encoded); + assert(Py_REFCNT(encoded) == 1); + for (i = 0; i < PyBytes_GET_SIZE(encoded) + 1; i++) { + if (buf[i] == '-') { + buf[i] = '_'; + } + } + + Py_DECREF(name); + return encoded; +error: + Py_DECREF(name); + Py_XDECREF(encoded); + return NULL; +} + PyObject * -_PyImport_LoadDynamicModule(PyObject *name, PyObject *path, FILE *fp) +_PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp) { - PyObject *m = NULL; #ifndef MS_WINDOWS - PyObject *pathbytes; + PyObject *pathbytes = NULL; #endif - PyObject *nameascii; - char *namestr, *lastdot, *shortname, *packagecontext, *oldcontext; - dl_funcptr p0; - PyObject* (*p)(void); - struct PyModuleDef *def; + PyObject *name_unicode = NULL, *name = NULL, *path = NULL, *m = NULL; + const char *name_buf, *hook_prefix; + char *oldcontext; + dl_funcptr exportfunc; + PyModuleDef *def; + PyObject *(*p0)(void); - m = _PyImport_FindExtensionObject(name, path); - if (m != NULL) { - Py_INCREF(m); - return m; + name_unicode = PyObject_GetAttrString(spec, "name"); + if (name_unicode == NULL) { + return NULL; } - /* name must be encodable to ASCII because dynamic module must have a - function called "PyInit_NAME", they are written in C, and the C language - doesn't accept non-ASCII identifiers. */ - nameascii = PyUnicode_AsEncodedString(name, "ascii", NULL); - if (nameascii == NULL) - return NULL; + name = get_encoded_name(name_unicode, &hook_prefix); + if (name == NULL) { + goto error; + } + name_buf = PyBytes_AS_STRING(name); - namestr = PyBytes_AS_STRING(nameascii); - if (namestr == NULL) + path = PyObject_GetAttrString(spec, "origin"); + if (path == NULL) goto error; - lastdot = strrchr(namestr, '.'); - if (lastdot == NULL) { - packagecontext = NULL; - shortname = namestr; - } - else { - packagecontext = namestr; - shortname = lastdot+1; - } - #ifdef MS_WINDOWS - p0 = _PyImport_GetDynLoadWindows(shortname, path, fp); + exportfunc = _PyImport_FindSharedFuncptrWindows(hook_prefix, name_buf, + path, fp); #else pathbytes = PyUnicode_EncodeFSDefault(path); if (pathbytes == NULL) goto error; - p0 = _PyImport_GetDynLoadFunc(shortname, - PyBytes_AS_STRING(pathbytes), fp); + exportfunc = _PyImport_FindSharedFuncptr(hook_prefix, name_buf, + PyBytes_AS_STRING(pathbytes), + fp); Py_DECREF(pathbytes); #endif - p = (PyObject*(*)(void))p0; - if (PyErr_Occurred()) - goto error; - if (p == NULL) { - PyObject *msg = PyUnicode_FromFormat("dynamic module does not define " - "init function (PyInit_%s)", - shortname); - if (msg == NULL) - goto error; - PyErr_SetImportError(msg, name, path); - Py_DECREF(msg); + + if (exportfunc == NULL) { + if (!PyErr_Occurred()) { + PyObject *msg; + 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); + } goto error; } - oldcontext = _Py_PackageContext; - _Py_PackageContext = packagecontext; - m = (*p)(); - _Py_PackageContext = oldcontext; - if (m == NULL) - goto error; - if (PyErr_Occurred()) { + p0 = (PyObject *(*)(void))exportfunc; + + /* Package context is needed for single-phase init */ + oldcontext = _Py_PackageContext; + _Py_PackageContext = PyUnicode_AsUTF8(name_unicode); + m = p0(); + _Py_PackageContext = oldcontext; + + if (m == NULL) { + if (!PyErr_Occurred()) { + PyErr_Format( + PyExc_SystemError, + "initialization of %s failed without raising an exception", + name_buf); + } + goto error; + } else if (PyErr_Occurred()) { + PyErr_Clear(); + PyErr_Format( + PyExc_SystemError, + "initialization of %s raised unreported exception", + name_buf); + m = NULL; + goto error; + } + if (Py_TYPE(m) == NULL) { + /* This can happen when a PyModuleDef is returned without calling + * PyModuleDef_Init on it + */ PyErr_Format(PyExc_SystemError, - "initialization of %s raised unreported exception", - shortname); + "init function of %s returned uninitialized object", + name_buf); + 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 (hook_prefix == nonascii_prefix) { + /* don't allow legacy init for non-ASCII module names */ + PyErr_Format( + PyExc_SystemError, + "initialization of * did not return PyModuleDef", + name_buf); goto error; } @@ -102,10 +201,10 @@ _PyImport_LoadDynamicModule(PyObject *name, PyObject *path, FILE *fp) if (def == NULL) { PyErr_Format(PyExc_SystemError, "initialization of %s did not return an extension " - "module", shortname); + "module", name_buf); goto error; } - def->m_base.m_init = p; + def->m_base.m_init = p0; /* Remember the filename as the __file__ attribute */ if (PyModule_AddObject(m, "__file__", path) < 0) @@ -113,13 +212,19 @@ _PyImport_LoadDynamicModule(PyObject *name, PyObject *path, FILE *fp) else Py_INCREF(path); - if (_PyImport_FixupExtensionObject(m, name, path) < 0) + if (_PyImport_FixupExtensionObject(m, name_unicode, path) < 0) goto error; - Py_DECREF(nameascii); + + Py_DECREF(name_unicode); + Py_DECREF(name); + Py_DECREF(path); + return m; error: - Py_DECREF(nameascii); + Py_DECREF(name_unicode); + Py_XDECREF(name); + Py_XDECREF(path); Py_XDECREF(m); return NULL; } diff --git a/Python/importdl.h b/Python/importdl.h index 6a51a91d2c0..9847652b1f1 100644 --- a/Python/importdl.h +++ b/Python/importdl.h @@ -8,8 +8,7 @@ extern "C" { extern const char *_PyImport_DynLoadFiletab[]; -extern PyObject *_PyImport_LoadDynamicModule(PyObject *name, PyObject *pathname, - FILE *); +extern PyObject *_PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *); /* Max length of module suffix searched for -- accommodates "module.slb" */ #define MAXSUFFIXSIZE 12 diff --git a/Python/importlib.h b/Python/importlib.h index 1c18c5bbe8a..d5d34066927 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -1204,769 +1204,785 @@ const unsigned char _Py_M__importlib[] = { 0,0,114,11,0,0,0,114,87,0,0,0,170,2,0,0, 115,6,0,0,0,0,9,10,1,16,1,114,87,0,0,0, 99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,64,0,0,0,115,181,0,0,0,101,0,0,90,1,0, + 0,64,0,0,0,115,205,0,0,0,101,0,0,90,1,0, 100,0,0,90,2,0,100,1,0,90,3,0,101,4,0,100, 2,0,100,3,0,132,0,0,131,1,0,90,5,0,101,6, 0,100,4,0,100,4,0,100,5,0,100,6,0,132,2,0, 131,1,0,90,7,0,101,6,0,100,4,0,100,7,0,100, - 8,0,132,1,0,131,1,0,90,8,0,101,6,0,101,9, - 0,100,9,0,100,10,0,132,0,0,131,1,0,131,1,0, - 90,10,0,101,6,0,101,9,0,100,11,0,100,12,0,132, - 0,0,131,1,0,131,1,0,90,11,0,101,6,0,101,9, - 0,100,13,0,100,14,0,132,0,0,131,1,0,131,1,0, - 90,12,0,101,6,0,101,9,0,100,15,0,100,16,0,132, - 0,0,131,1,0,131,1,0,90,13,0,100,4,0,83,41, - 17,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,99,1,0,0,0,0,0,0,0,1,0,0, - 0,2,0,0,0,67,0,0,0,115,16,0,0,0,100,1, - 0,106,0,0,124,0,0,106,1,0,131,1,0,83,41,2, - 122,115,82,101,116,117,114,110,32,114,101,112,114,32,102,111, - 114,32,116,104,101,32,109,111,100,117,108,101,46,10,10,32, - 32,32,32,32,32,32,32,84,104,101,32,109,101,116,104,111, - 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46, - 32,32,84,104,101,32,105,109,112,111,114,116,32,109,97,99, - 104,105,110,101,114,121,32,100,111,101,115,32,116,104,101,32, - 106,111,98,32,105,116,115,101,108,102,46,10,10,32,32,32, - 32,32,32,32,32,122,24,60,109,111,100,117,108,101,32,123, - 33,114,125,32,40,98,117,105,108,116,45,105,110,41,62,41, - 2,114,50,0,0,0,114,1,0,0,0,41,1,114,89,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,92,0,0,0,195,2,0,0,115,2,0,0,0,0, - 7,122,27,66,117,105,108,116,105,110,73,109,112,111,114,116, - 101,114,46,109,111,100,117,108,101,95,114,101,112,114,78,99, - 4,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0, - 67,0,0,0,115,58,0,0,0,124,2,0,100,0,0,107, - 9,0,114,16,0,100,0,0,83,116,0,0,106,1,0,124, - 1,0,131,1,0,114,50,0,116,2,0,124,1,0,124,0, - 0,100,1,0,100,2,0,131,2,1,83,100,0,0,83,100, - 0,0,83,41,3,78,114,107,0,0,0,122,8,98,117,105, - 108,116,45,105,110,41,3,114,57,0,0,0,90,10,105,115, - 95,98,117,105,108,116,105,110,114,85,0,0,0,41,4,218, - 3,99,108,115,114,78,0,0,0,218,4,112,97,116,104,218, - 6,116,97,114,103,101,116,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,9,102,105,110,100,95,115,112,101, - 99,204,2,0,0,115,10,0,0,0,0,2,12,1,4,1, - 15,1,19,2,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,99, - 3,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 67,0,0,0,115,41,0,0,0,124,0,0,106,0,0,124, - 1,0,124,2,0,131,2,0,125,3,0,124,3,0,100,1, - 0,107,9,0,114,37,0,124,3,0,106,1,0,83,100,1, - 0,83,41,2,122,175,70,105,110,100,32,116,104,101,32,98, - 117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,10, - 10,32,32,32,32,32,32,32,32,73,102,32,39,112,97,116, - 104,39,32,105,115,32,101,118,101,114,32,115,112,101,99,105, - 102,105,101,100,32,116,104,101,110,32,116,104,101,32,115,101, - 97,114,99,104,32,105,115,32,99,111,110,115,105,100,101,114, - 101,100,32,97,32,102,97,105,108,117,114,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,115,32,100,101,112,114,101,99,97,116,101,100, - 46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,99, - 40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32, - 32,32,32,32,32,78,41,2,114,154,0,0,0,114,99,0, - 0,0,41,4,114,151,0,0,0,114,78,0,0,0,114,152, - 0,0,0,114,88,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,11,102,105,110,100,95,109,111, - 100,117,108,101,213,2,0,0,115,4,0,0,0,0,9,18, - 1,122,27,66,117,105,108,116,105,110,73,109,112,111,114,116, - 101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,2, - 0,0,0,0,0,0,0,3,0,0,0,10,0,0,0,67, - 0,0,0,115,60,0,0,0,116,0,0,124,1,0,131,1, - 0,143,23,0,1,116,1,0,116,2,0,106,3,0,124,1, - 0,131,2,0,125,2,0,87,100,1,0,81,82,88,124,0, - 0,124,2,0,95,4,0,100,2,0,124,2,0,95,5,0, - 124,2,0,83,41,3,122,23,76,111,97,100,32,97,32,98, - 117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,78, - 218,0,41,6,114,17,0,0,0,114,65,0,0,0,114,57, - 0,0,0,90,12,105,110,105,116,95,98,117,105,108,116,105, - 110,114,91,0,0,0,114,134,0,0,0,41,3,114,151,0, - 0,0,114,78,0,0,0,114,89,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,146,0,0,0, - 225,2,0,0,115,10,0,0,0,0,6,13,1,25,1,9, - 1,9,1,122,27,66,117,105,108,116,105,110,73,109,112,111, - 114,116,101,114,46,108,111,97,100,95,109,111,100,117,108,101, - 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, - 0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,2, - 122,57,82,101,116,117,114,110,32,78,111,110,101,32,97,115, + 8,0,132,1,0,131,1,0,90,8,0,101,6,0,100,9, + 0,100,10,0,132,0,0,131,1,0,90,9,0,101,6,0, + 100,11,0,100,12,0,132,0,0,131,1,0,90,10,0,101, + 6,0,101,11,0,100,13,0,100,14,0,132,0,0,131,1, + 0,131,1,0,90,12,0,101,6,0,101,11,0,100,15,0, + 100,16,0,132,0,0,131,1,0,131,1,0,90,13,0,101, + 6,0,101,11,0,100,17,0,100,18,0,132,0,0,131,1, + 0,131,1,0,90,14,0,101,6,0,101,15,0,131,1,0, + 90,16,0,100,4,0,83,41,19,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,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,10,0,0, - 0,41,2,114,151,0,0,0,114,78,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,8,103,101, - 116,95,99,111,100,101,237,2,0,0,115,2,0,0,0,0, - 4,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,99,2,0,0,0, - 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, - 115,4,0,0,0,100,1,0,83,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,10,0,0,0,41,2,114,151,0, - 0,0,114,78,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,10,103,101,116,95,115,111,117,114, - 99,101,243,2,0,0,115,2,0,0,0,0,4,122,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,99,2,0,0,0,0,0, - 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4, - 0,0,0,100,1,0,83,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,10,0,0,0,41,2,114,151,0,0,0,114,78,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,109,0,0,0,249,2,0,0,115,2,0,0,0,0,4, - 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,41,14,114,1, - 0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,0, - 0,0,218,12,115,116,97,116,105,99,109,101,116,104,111,100, - 114,92,0,0,0,218,11,99,108,97,115,115,109,101,116,104, - 111,100,114,154,0,0,0,114,155,0,0,0,114,81,0,0, - 0,114,146,0,0,0,114,157,0,0,0,114,158,0,0,0, - 114,109,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,150,0,0,0,186,2, - 0,0,115,28,0,0,0,12,7,6,2,18,9,3,1,21, - 8,3,1,18,11,3,1,21,11,3,1,21,5,3,1,21, - 5,3,1,114,150,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,64,0,0,0,115,211,0, - 0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,1, - 0,90,3,0,101,4,0,100,2,0,100,3,0,132,0,0, - 131,1,0,90,5,0,101,6,0,100,4,0,100,4,0,100, - 5,0,100,6,0,132,2,0,131,1,0,90,7,0,101,6, - 0,100,4,0,100,7,0,100,8,0,132,1,0,131,1,0, - 90,8,0,101,6,0,100,9,0,100,10,0,132,0,0,131, - 1,0,90,9,0,101,4,0,100,11,0,100,12,0,132,0, - 0,131,1,0,90,10,0,101,6,0,100,13,0,100,14,0, - 132,0,0,131,1,0,90,11,0,101,6,0,101,12,0,100, - 15,0,100,16,0,132,0,0,131,1,0,131,1,0,90,13, - 0,101,6,0,101,12,0,100,17,0,100,18,0,132,0,0, - 131,1,0,131,1,0,90,14,0,101,6,0,101,12,0,100, - 19,0,100,20,0,132,0,0,131,1,0,131,1,0,90,15, - 0,100,4,0,83,41,21,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,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,99,1,0,0,0,0,0,0,0, - 1,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0, - 0,100,1,0,106,0,0,124,0,0,106,1,0,131,1,0, - 83,41,2,122,115,82,101,116,117,114,110,32,114,101,112,114, - 32,102,111,114,32,116,104,101,32,109,111,100,117,108,101,46, - 10,10,32,32,32,32,32,32,32,32,84,104,101,32,109,101, - 116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,116, - 101,100,46,32,32,84,104,101,32,105,109,112,111,114,116,32, - 109,97,99,104,105,110,101,114,121,32,100,111,101,115,32,116, - 104,101,32,106,111,98,32,105,116,115,101,108,102,46,10,10, - 32,32,32,32,32,32,32,32,122,22,60,109,111,100,117,108, - 101,32,123,33,114,125,32,40,102,114,111,122,101,110,41,62, - 41,2,114,50,0,0,0,114,1,0,0,0,41,1,218,1, - 109,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,92,0,0,0,9,3,0,0,115,2,0,0,0,0,7, - 122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,114, - 46,109,111,100,117,108,101,95,114,101,112,114,78,99,4,0, - 0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,0, - 0,0,115,42,0,0,0,116,0,0,106,1,0,124,1,0, - 131,1,0,114,34,0,116,2,0,124,1,0,124,0,0,100, - 1,0,100,2,0,131,2,1,83,100,0,0,83,100,0,0, - 83,41,3,78,114,107,0,0,0,90,6,102,114,111,122,101, - 110,41,3,114,57,0,0,0,114,82,0,0,0,114,85,0, - 0,0,41,4,114,151,0,0,0,114,78,0,0,0,114,152, - 0,0,0,114,153,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,154,0,0,0,18,3,0,0, - 115,6,0,0,0,0,2,15,1,19,2,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,99,3,0,0,0,0,0,0,0,3,0, - 0,0,2,0,0,0,67,0,0,0,115,23,0,0,0,116, - 0,0,106,1,0,124,1,0,131,1,0,114,19,0,124,0, - 0,83,100,1,0,83,41,2,122,93,70,105,110,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,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,102,105,110,100,95,115,112, - 101,99,40,41,32,105,110,115,116,101,97,100,46,10,10,32, - 32,32,32,32,32,32,32,78,41,2,114,57,0,0,0,114, - 82,0,0,0,41,3,114,151,0,0,0,114,78,0,0,0, - 114,152,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,155,0,0,0,25,3,0,0,115,2,0, - 0,0,0,7,122,26,70,114,111,122,101,110,73,109,112,111, - 114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,101, - 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, - 0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,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,10,0, - 0,0,41,2,114,151,0,0,0,114,88,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,138,0, - 0,0,34,3,0,0,115,0,0,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,99,1,0,0,0,0,0, - 0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,92, - 0,0,0,124,0,0,106,0,0,106,1,0,125,1,0,116, - 2,0,106,3,0,124,1,0,131,1,0,115,54,0,116,4, - 0,100,1,0,106,5,0,124,1,0,131,1,0,100,2,0, - 124,1,0,131,1,1,130,1,0,116,6,0,116,2,0,106, - 7,0,124,1,0,131,2,0,125,2,0,116,8,0,124,2, - 0,124,0,0,106,9,0,131,2,0,1,100,0,0,83,41, - 3,78,122,27,123,33,114,125,32,105,115,32,110,111,116,32, - 97,32,102,114,111,122,101,110,32,109,111,100,117,108,101,114, - 15,0,0,0,41,10,114,95,0,0,0,114,15,0,0,0, - 114,57,0,0,0,114,82,0,0,0,114,77,0,0,0,114, - 50,0,0,0,114,65,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,7,0,0,0,41,3,114,89,0,0,0,114,15, - 0,0,0,218,4,99,111,100,101,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,139,0,0,0,38,3,0, - 0,115,12,0,0,0,0,2,12,1,15,1,18,1,9,1, - 18,1,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,99,2, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67, - 0,0,0,115,13,0,0,0,116,0,0,124,0,0,124,1, - 0,131,2,0,83,41,1,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,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,1,114,90,0,0,0,41, - 2,114,151,0,0,0,114,78,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,146,0,0,0,47, - 3,0,0,115,2,0,0,0,0,7,122,26,70,114,111,122, - 101,110,73,109,112,111,114,116,101,114,46,108,111,97,100,95, + 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,99,1,0,0, + 0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,0, + 0,115,16,0,0,0,100,1,0,106,0,0,124,0,0,106, + 1,0,131,1,0,83,41,2,122,115,82,101,116,117,114,110, + 32,114,101,112,114,32,102,111,114,32,116,104,101,32,109,111, + 100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,84, + 104,101,32,109,101,116,104,111,100,32,105,115,32,100,101,112, + 114,101,99,97,116,101,100,46,32,32,84,104,101,32,105,109, + 112,111,114,116,32,109,97,99,104,105,110,101,114,121,32,100, + 111,101,115,32,116,104,101,32,106,111,98,32,105,116,115,101, + 108,102,46,10,10,32,32,32,32,32,32,32,32,122,24,60, + 109,111,100,117,108,101,32,123,33,114,125,32,40,98,117,105, + 108,116,45,105,110,41,62,41,2,114,50,0,0,0,114,1, + 0,0,0,41,1,114,89,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,92,0,0,0,195,2, + 0,0,115,2,0,0,0,0,7,122,27,66,117,105,108,116, + 105,110,73,109,112,111,114,116,101,114,46,109,111,100,117,108, + 101,95,114,101,112,114,78,99,4,0,0,0,0,0,0,0, + 4,0,0,0,5,0,0,0,67,0,0,0,115,58,0,0, + 0,124,2,0,100,0,0,107,9,0,114,16,0,100,0,0, + 83,116,0,0,106,1,0,124,1,0,131,1,0,114,50,0, + 116,2,0,124,1,0,124,0,0,100,1,0,100,2,0,131, + 2,1,83,100,0,0,83,100,0,0,83,41,3,78,114,107, + 0,0,0,122,8,98,117,105,108,116,45,105,110,41,3,114, + 57,0,0,0,90,10,105,115,95,98,117,105,108,116,105,110, + 114,85,0,0,0,41,4,218,3,99,108,115,114,78,0,0, + 0,218,4,112,97,116,104,218,6,116,97,114,103,101,116,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,9, + 102,105,110,100,95,115,112,101,99,204,2,0,0,115,10,0, + 0,0,0,2,12,1,4,1,15,1,19,2,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,99,3,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,67,0,0,0,115,41,0,0, + 0,124,0,0,106,0,0,124,1,0,124,2,0,131,2,0, + 125,3,0,124,3,0,100,1,0,107,9,0,114,37,0,124, + 3,0,106,1,0,83,100,1,0,83,41,2,122,175,70,105, + 110,100,32,116,104,101,32,98,117,105,108,116,45,105,110,32, + 109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,32, + 32,73,102,32,39,112,97,116,104,39,32,105,115,32,101,118, + 101,114,32,115,112,101,99,105,102,105,101,100,32,116,104,101, + 110,32,116,104,101,32,115,101,97,114,99,104,32,105,115,32, + 99,111,110,115,105,100,101,114,101,100,32,97,32,102,97,105, + 108,117,114,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,115,32,100,101, + 112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,102, + 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, + 97,100,46,10,10,32,32,32,32,32,32,32,32,78,41,2, + 114,154,0,0,0,114,99,0,0,0,41,4,114,151,0,0, + 0,114,78,0,0,0,114,152,0,0,0,114,88,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 11,102,105,110,100,95,109,111,100,117,108,101,213,2,0,0, + 115,4,0,0,0,0,9,18,1,122,27,66,117,105,108,116, + 105,110,73,109,112,111,114,116,101,114,46,102,105,110,100,95, 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,2, - 0,0,0,2,0,0,0,67,0,0,0,115,13,0,0,0, - 116,0,0,106,1,0,124,1,0,131,1,0,83,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,57,0,0,0,114,163,0,0,0,41,2,114,151,0,0, - 0,114,78,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,157,0,0,0,56,3,0,0,115,2, - 0,0,0,0,4,122,23,70,114,111,122,101,110,73,109,112, + 0,0,0,4,0,0,0,67,0,0,0,115,67,0,0,0, + 124,1,0,106,0,0,116,1,0,106,2,0,107,7,0,114, + 51,0,116,3,0,100,1,0,106,4,0,124,1,0,106,0, + 0,131,1,0,100,2,0,124,1,0,106,0,0,131,1,1, + 130,1,0,116,5,0,116,6,0,106,7,0,124,1,0,131, + 2,0,83,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,122, + 29,123,33,114,125,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,15, + 0,0,0,41,8,114,15,0,0,0,114,14,0,0,0,114, + 76,0,0,0,114,77,0,0,0,114,50,0,0,0,114,65, + 0,0,0,114,57,0,0,0,90,14,99,114,101,97,116,101, + 95,98,117,105,108,116,105,110,41,2,114,19,0,0,0,114, + 88,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,138,0,0,0,225,2,0,0,115,8,0,0, + 0,0,3,18,1,21,1,12,1,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,99,2,0,0,0,0,0,0, + 0,2,0,0,0,3,0,0,0,67,0,0,0,115,20,0, + 0,0,116,0,0,116,1,0,106,2,0,124,1,0,131,2, + 0,1,100,1,0,83,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,65,0,0,0,114,57,0,0,0,90,12,101, + 120,101,99,95,100,121,110,97,109,105,99,41,2,114,19,0, + 0,0,114,89,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,139,0,0,0,233,2,0,0,115, + 2,0,0,0,0,3,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,99,2,0,0,0,0,0,0,0,2,0,0,0, + 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,0, + 83,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, + 10,0,0,0,41,2,114,151,0,0,0,114,78,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 8,103,101,116,95,99,111,100,101,238,2,0,0,115,2,0, + 0,0,0,4,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,99,2, 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67, - 0,0,0,115,4,0,0,0,100,1,0,83,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,10,0,0,0,41,2,114,151, - 0,0,0,114,78,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,158,0,0,0,62,3,0,0, - 115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,2,0,0,0,2, - 0,0,0,67,0,0,0,115,13,0,0,0,116,0,0,106, - 1,0,124,1,0,131,1,0,83,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,57,0, - 0,0,90,17,105,115,95,102,114,111,122,101,110,95,112,97, - 99,107,97,103,101,41,2,114,151,0,0,0,114,78,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,109,0,0,0,68,3,0,0,115,2,0,0,0,0,4, - 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,41,16,114,1,0, - 0,0,114,0,0,0,0,114,2,0,0,0,114,3,0,0, - 0,114,159,0,0,0,114,92,0,0,0,114,160,0,0,0, - 114,154,0,0,0,114,155,0,0,0,114,138,0,0,0,114, - 139,0,0,0,114,146,0,0,0,114,84,0,0,0,114,157, - 0,0,0,114,158,0,0,0,114,109,0,0,0,114,10,0, + 0,0,0,115,4,0,0,0,100,1,0,83,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,10,0,0,0,41,2, + 114,151,0,0,0,114,78,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,218,10,103,101,116,95,115, + 111,117,114,99,101,244,2,0,0,115,2,0,0,0,0,4, + 122,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,99,2,0,0, + 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, + 0,115,4,0,0,0,100,1,0,83,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,10,0,0,0,41,2,114,151,0,0,0,114, + 78,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,109,0,0,0,250,2,0,0,115,2,0,0, + 0,0,4,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,41, + 17,114,1,0,0,0,114,0,0,0,0,114,2,0,0,0, + 114,3,0,0,0,218,12,115,116,97,116,105,99,109,101,116, + 104,111,100,114,92,0,0,0,218,11,99,108,97,115,115,109, + 101,116,104,111,100,114,154,0,0,0,114,155,0,0,0,114, + 138,0,0,0,114,139,0,0,0,114,81,0,0,0,114,156, + 0,0,0,114,157,0,0,0,114,109,0,0,0,114,90,0, + 0,0,114,146,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,150,0,0,0, + 186,2,0,0,115,30,0,0,0,12,7,6,2,18,9,3, + 1,21,8,3,1,18,11,18,8,18,5,3,1,21,5,3, + 1,21,5,3,1,21,5,114,150,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,64,0,0, + 0,115,211,0,0,0,101,0,0,90,1,0,100,0,0,90, + 2,0,100,1,0,90,3,0,101,4,0,100,2,0,100,3, + 0,132,0,0,131,1,0,90,5,0,101,6,0,100,4,0, + 100,4,0,100,5,0,100,6,0,132,2,0,131,1,0,90, + 7,0,101,6,0,100,4,0,100,7,0,100,8,0,132,1, + 0,131,1,0,90,8,0,101,6,0,100,9,0,100,10,0, + 132,0,0,131,1,0,90,9,0,101,4,0,100,11,0,100, + 12,0,132,0,0,131,1,0,90,10,0,101,6,0,100,13, + 0,100,14,0,132,0,0,131,1,0,90,11,0,101,6,0, + 101,12,0,100,15,0,100,16,0,132,0,0,131,1,0,131, + 1,0,90,13,0,101,6,0,101,12,0,100,17,0,100,18, + 0,132,0,0,131,1,0,131,1,0,90,14,0,101,6,0, + 101,12,0,100,19,0,100,20,0,132,0,0,131,1,0,131, + 1,0,90,15,0,100,4,0,83,41,21,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,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,99,1,0,0,0, + 0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,0, + 115,16,0,0,0,100,1,0,106,0,0,124,0,0,106,1, + 0,131,1,0,83,41,2,122,115,82,101,116,117,114,110,32, + 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100, + 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104, + 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112, + 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111, + 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108, + 102,46,10,10,32,32,32,32,32,32,32,32,122,22,60,109, + 111,100,117,108,101,32,123,33,114,125,32,40,102,114,111,122, + 101,110,41,62,41,2,114,50,0,0,0,114,1,0,0,0, + 41,1,218,1,109,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,92,0,0,0,12,3,0,0,115,2,0, + 0,0,0,7,122,26,70,114,111,122,101,110,73,109,112,111, + 114,116,101,114,46,109,111,100,117,108,101,95,114,101,112,114, + 78,99,4,0,0,0,0,0,0,0,4,0,0,0,5,0, + 0,0,67,0,0,0,115,42,0,0,0,116,0,0,106,1, + 0,124,1,0,131,1,0,114,34,0,116,2,0,124,1,0, + 124,0,0,100,1,0,100,2,0,131,2,1,83,100,0,0, + 83,100,0,0,83,41,3,78,114,107,0,0,0,90,6,102, + 114,111,122,101,110,41,3,114,57,0,0,0,114,82,0,0, + 0,114,85,0,0,0,41,4,114,151,0,0,0,114,78,0, + 0,0,114,152,0,0,0,114,153,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,154,0,0,0, + 21,3,0,0,115,6,0,0,0,0,2,15,1,19,2,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,99,3,0,0,0,0,0, + 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,23, + 0,0,0,116,0,0,106,1,0,124,1,0,131,1,0,114, + 19,0,124,0,0,83,100,1,0,83,41,2,122,93,70,105, + 110,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,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,102,105,110, + 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100, + 46,10,10,32,32,32,32,32,32,32,32,78,41,2,114,57, + 0,0,0,114,82,0,0,0,41,3,114,151,0,0,0,114, + 78,0,0,0,114,152,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,155,0,0,0,28,3,0, + 0,115,2,0,0,0,0,7,122,26,70,114,111,122,101,110, + 73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111, + 100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, + 0,83,41,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,10,0,0,0,41,2,114,151,0,0,0,114,88,0, 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,161,0,0,0,0,3,0,0,115,30,0,0,0,12, - 7,6,2,18,9,3,1,21,6,3,1,18,8,18,4,18, - 9,18,9,3,1,21,5,3,1,21,5,3,1,114,161,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,64,0,0,0,115,46,0,0,0,101,0,0,90, - 1,0,100,0,0,90,2,0,100,1,0,90,3,0,100,2, - 0,100,3,0,132,0,0,90,4,0,100,4,0,100,5,0, - 132,0,0,90,5,0,100,6,0,83,41,7,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,1, - 0,0,0,1,0,0,0,67,0,0,0,115,14,0,0,0, - 116,0,0,106,1,0,131,0,0,1,100,1,0,83,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,57,0, - 0,0,114,145,0,0,0,41,1,114,19,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,23,0, - 0,0,81,3,0,0,115,2,0,0,0,0,2,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,99,4,0,0,0, - 0,0,0,0,4,0,0,0,1,0,0,0,67,0,0,0, - 115,14,0,0,0,116,0,0,106,1,0,131,0,0,1,100, - 1,0,83,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,57,0,0,0,114,58,0,0,0, - 41,4,114,19,0,0,0,90,8,101,120,99,95,116,121,112, - 101,90,9,101,120,99,95,118,97,108,117,101,90,13,101,120, - 99,95,116,114,97,99,101,98,97,99,107,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,30,0,0,0,85, - 3,0,0,115,2,0,0,0,0,2,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,78,41,6,114,1,0,0,0,114, - 0,0,0,0,114,2,0,0,0,114,3,0,0,0,114,23, - 0,0,0,114,30,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,166,0,0, - 0,77,3,0,0,115,6,0,0,0,12,2,6,2,12,4, - 114,166,0,0,0,99,3,0,0,0,0,0,0,0,5,0, - 0,0,4,0,0,0,67,0,0,0,115,88,0,0,0,124, - 1,0,106,0,0,100,1,0,124,2,0,100,2,0,24,131, - 2,0,125,3,0,116,1,0,124,3,0,131,1,0,124,2, - 0,107,0,0,114,52,0,116,2,0,100,3,0,131,1,0, - 130,1,0,124,3,0,100,4,0,25,125,4,0,124,0,0, - 114,84,0,100,5,0,106,3,0,124,4,0,124,0,0,131, - 2,0,83,124,4,0,83,41,6,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,121,0, - 0,0,114,45,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,33,0,0,0, - 122,5,123,125,46,123,125,41,4,218,6,114,115,112,108,105, - 116,218,3,108,101,110,218,10,86,97,108,117,101,69,114,114, - 111,114,114,50,0,0,0,41,5,114,15,0,0,0,218,7, - 112,97,99,107,97,103,101,218,5,108,101,118,101,108,90,4, - 98,105,116,115,90,4,98,97,115,101,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,13,95,114,101,115,111, - 108,118,101,95,110,97,109,101,90,3,0,0,115,10,0,0, - 0,0,2,22,1,18,1,12,1,10,1,114,172,0,0,0, - 99,3,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,67,0,0,0,115,47,0,0,0,124,0,0,106,0,0, - 124,1,0,124,2,0,131,2,0,125,3,0,124,3,0,100, - 0,0,107,8,0,114,34,0,100,0,0,83,116,1,0,124, - 1,0,124,3,0,131,2,0,83,41,1,78,41,2,114,155, - 0,0,0,114,85,0,0,0,41,4,218,6,102,105,110,100, - 101,114,114,15,0,0,0,114,152,0,0,0,114,99,0,0, + 0,114,138,0,0,0,37,3,0,0,115,0,0,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,99,1,0, + 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0, + 0,0,115,92,0,0,0,124,0,0,106,0,0,106,1,0, + 125,1,0,116,2,0,106,3,0,124,1,0,131,1,0,115, + 54,0,116,4,0,100,1,0,106,5,0,124,1,0,131,1, + 0,100,2,0,124,1,0,131,1,1,130,1,0,116,6,0, + 116,2,0,106,7,0,124,1,0,131,2,0,125,2,0,116, + 8,0,124,2,0,124,0,0,106,9,0,131,2,0,1,100, + 0,0,83,41,3,78,122,27,123,33,114,125,32,105,115,32, + 110,111,116,32,97,32,102,114,111,122,101,110,32,109,111,100, + 117,108,101,114,15,0,0,0,41,10,114,95,0,0,0,114, + 15,0,0,0,114,57,0,0,0,114,82,0,0,0,114,77, + 0,0,0,114,50,0,0,0,114,65,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,7,0,0,0,41,3,114,89,0, + 0,0,114,15,0,0,0,218,4,99,111,100,101,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,139,0,0, + 0,41,3,0,0,115,12,0,0,0,0,2,12,1,15,1, + 18,1,9,1,18,1,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,99,2,0,0,0,0,0,0,0,2,0,0,0,3, + 0,0,0,67,0,0,0,115,13,0,0,0,116,0,0,124, + 0,0,124,1,0,131,2,0,83,41,1,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,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,1,114,90, + 0,0,0,41,2,114,151,0,0,0,114,78,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,146, + 0,0,0,50,3,0,0,115,2,0,0,0,0,7,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,99,2,0,0,0,0, + 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115, + 13,0,0,0,116,0,0,106,1,0,124,1,0,131,1,0, + 83,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,57,0,0,0,114,162,0,0,0,41,2, + 114,151,0,0,0,114,78,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,156,0,0,0,59,3, + 0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,2,0,0,0,1, + 0,0,0,67,0,0,0,115,4,0,0,0,100,1,0,83, + 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,10,0,0,0, + 41,2,114,151,0,0,0,114,78,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,157,0,0,0, + 65,3,0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,2, + 0,0,0,2,0,0,0,67,0,0,0,115,13,0,0,0, + 116,0,0,106,1,0,124,1,0,131,1,0,83,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,57,0,0,0,90,17,105,115,95,102,114,111,122,101, + 110,95,112,97,99,107,97,103,101,41,2,114,151,0,0,0, + 114,78,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,109,0,0,0,71,3,0,0,115,2,0, + 0,0,0,4,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,41, + 16,114,1,0,0,0,114,0,0,0,0,114,2,0,0,0, + 114,3,0,0,0,114,158,0,0,0,114,92,0,0,0,114, + 159,0,0,0,114,154,0,0,0,114,155,0,0,0,114,138, + 0,0,0,114,139,0,0,0,114,146,0,0,0,114,84,0, + 0,0,114,156,0,0,0,114,157,0,0,0,114,109,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,114,160,0,0,0,3,3,0,0,115,30, + 0,0,0,12,7,6,2,18,9,3,1,21,6,3,1,18, + 8,18,4,18,9,18,9,3,1,21,5,3,1,21,5,3, + 1,114,160,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,64,0,0,0,115,46,0,0,0, + 101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,90, + 3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,4, + 0,100,5,0,132,0,0,90,5,0,100,6,0,83,41,7, + 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,1,0,0,0,1,0,0,0,67,0,0,0,115, + 14,0,0,0,116,0,0,106,1,0,131,0,0,1,100,1, + 0,83,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,57,0,0,0,114,145,0,0,0,41,1,114,19,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,23,0,0,0,84,3,0,0,115,2,0,0,0,0, + 2,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,99, + 4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0, + 67,0,0,0,115,14,0,0,0,116,0,0,106,1,0,131, + 0,0,1,100,1,0,83,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,57,0,0,0,114, + 58,0,0,0,41,4,114,19,0,0,0,90,8,101,120,99, + 95,116,121,112,101,90,9,101,120,99,95,118,97,108,117,101, + 90,13,101,120,99,95,116,114,97,99,101,98,97,99,107,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,30, + 0,0,0,88,3,0,0,115,2,0,0,0,0,2,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,78,41,6,114,1, + 0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,0, + 0,0,114,23,0,0,0,114,30,0,0,0,114,10,0,0, 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,17,95,102,105,110,100,95,115,112,101,99,95,108,101,103, - 97,99,121,99,3,0,0,115,8,0,0,0,0,3,18,1, - 12,1,4,1,114,174,0,0,0,99,3,0,0,0,0,0, - 0,0,9,0,0,0,27,0,0,0,67,0,0,0,115,42, - 1,0,0,116,0,0,106,1,0,100,1,0,107,9,0,114, - 41,0,116,0,0,106,1,0,12,114,41,0,116,2,0,106, - 3,0,100,2,0,116,4,0,131,2,0,1,124,0,0,116, - 0,0,106,5,0,107,6,0,125,3,0,120,235,0,116,0, - 0,106,1,0,68,93,220,0,125,4,0,116,6,0,131,0, - 0,143,90,0,1,121,13,0,124,4,0,106,7,0,125,5, - 0,87,110,51,0,4,116,8,0,107,10,0,114,148,0,1, - 1,1,116,9,0,124,4,0,124,0,0,124,1,0,131,3, - 0,125,6,0,124,6,0,100,1,0,107,8,0,114,144,0, - 119,66,0,89,110,19,0,88,124,5,0,124,0,0,124,1, - 0,124,2,0,131,3,0,125,6,0,87,100,1,0,81,82, - 88,124,6,0,100,1,0,107,9,0,114,66,0,124,3,0, - 12,114,26,1,124,0,0,116,0,0,106,5,0,107,6,0, - 114,26,1,116,0,0,106,5,0,124,0,0,25,125,7,0, - 121,13,0,124,7,0,106,10,0,125,8,0,87,110,22,0, - 4,116,8,0,107,10,0,114,2,1,1,1,1,124,6,0, - 83,89,113,30,1,88,124,8,0,100,1,0,107,8,0,114, - 19,1,124,6,0,83,124,8,0,83,113,66,0,124,6,0, - 83,113,66,0,87,100,1,0,83,100,1,0,83,41,3,122, - 23,70,105,110,100,32,97,32,109,111,100,117,108,101,39,115, - 32,108,111,97,100,101,114,46,78,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,14,0,0,0,218,9,109,101,116,97,95,112, - 97,116,104,114,141,0,0,0,114,142,0,0,0,218,13,73, - 109,112,111,114,116,87,97,114,110,105,110,103,114,21,0,0, - 0,114,166,0,0,0,114,154,0,0,0,114,96,0,0,0, - 114,174,0,0,0,114,95,0,0,0,41,9,114,15,0,0, - 0,114,152,0,0,0,114,153,0,0,0,90,9,105,115,95, - 114,101,108,111,97,100,114,173,0,0,0,114,154,0,0,0, - 114,88,0,0,0,114,89,0,0,0,114,95,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,10, - 95,102,105,110,100,95,115,112,101,99,108,3,0,0,115,48, - 0,0,0,0,2,25,1,16,4,15,1,16,1,10,1,3, - 1,13,1,13,1,18,1,12,1,8,2,25,1,12,2,22, - 1,13,1,3,1,13,1,13,4,9,2,12,1,4,2,7, - 2,8,2,114,177,0,0,0,99,3,0,0,0,0,0,0, - 0,4,0,0,0,4,0,0,0,67,0,0,0,115,179,0, - 0,0,116,0,0,124,0,0,116,1,0,131,2,0,115,42, - 0,116,2,0,100,1,0,106,3,0,116,4,0,124,0,0, - 131,1,0,131,1,0,131,1,0,130,1,0,124,2,0,100, - 2,0,107,0,0,114,66,0,116,5,0,100,3,0,131,1, - 0,130,1,0,124,1,0,114,144,0,116,0,0,124,1,0, - 116,1,0,131,2,0,115,102,0,116,2,0,100,4,0,131, - 1,0,130,1,0,110,42,0,124,1,0,116,6,0,106,7, - 0,107,7,0,114,144,0,100,5,0,125,3,0,116,8,0, - 124,3,0,106,3,0,124,1,0,131,1,0,131,1,0,130, - 1,0,124,0,0,12,114,175,0,124,2,0,100,2,0,107, - 2,0,114,175,0,116,5,0,100,6,0,131,1,0,130,1, - 0,100,7,0,83,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,31,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,123,125,114,33,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,61,80,97,114,101,110,116,32,109,111,100,117,108,101,32, - 123,33,114,125,32,110,111,116,32,108,111,97,100,101,100,44, - 32,99,97,110,110,111,116,32,112,101,114,102,111,114,109,32, - 114,101,108,97,116,105,118,101,32,105,109,112,111,114,116,122, - 17,69,109,112,116,121,32,109,111,100,117,108,101,32,110,97, - 109,101,78,41,9,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,114,50,0,0,0,114,13,0,0,0,114,169,0,0,0, - 114,14,0,0,0,114,21,0,0,0,218,11,83,121,115,116, - 101,109,69,114,114,111,114,41,4,114,15,0,0,0,114,170, - 0,0,0,114,171,0,0,0,114,147,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,13,95,115, - 97,110,105,116,121,95,99,104,101,99,107,148,3,0,0,115, - 24,0,0,0,0,2,15,1,27,1,12,1,12,1,6,1, - 15,1,15,1,15,1,6,2,21,1,19,1,114,182,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,8,0,0,0,12,0,0,0,67,0,0,0,115,40, - 1,0,0,100,0,0,125,2,0,124,0,0,106,0,0,100, - 1,0,131,1,0,100,2,0,25,125,3,0,124,3,0,114, - 175,0,124,3,0,116,1,0,106,2,0,107,7,0,114,59, - 0,116,3,0,124,1,0,124,3,0,131,2,0,1,124,0, - 0,116,1,0,106,2,0,107,6,0,114,85,0,116,1,0, - 106,2,0,124,0,0,25,83,116,1,0,106,2,0,124,3, - 0,25,125,4,0,121,13,0,124,4,0,106,4,0,125,2, - 0,87,110,61,0,4,116,5,0,107,10,0,114,174,0,1, - 1,1,116,6,0,100,3,0,23,106,7,0,124,0,0,124, - 3,0,131,2,0,125,5,0,116,8,0,124,5,0,100,4, - 0,124,0,0,131,1,1,100,0,0,130,2,0,89,110,1, - 0,88,116,9,0,124,0,0,124,2,0,131,2,0,125,6, - 0,124,6,0,100,0,0,107,8,0,114,232,0,116,8,0, - 116,6,0,106,7,0,124,0,0,131,1,0,100,4,0,124, - 0,0,131,1,1,130,1,0,110,12,0,116,10,0,124,6, - 0,131,1,0,125,7,0,124,3,0,114,36,1,116,1,0, - 106,2,0,124,3,0,25,125,4,0,116,11,0,124,4,0, - 124,0,0,106,0,0,100,1,0,131,1,0,100,5,0,25, - 124,7,0,131,3,0,1,124,7,0,83,41,6,78,114,121, - 0,0,0,114,33,0,0,0,122,23,59,32,123,33,114,125, - 32,105,115,32,110,111,116,32,97,32,112,97,99,107,97,103, - 101,114,15,0,0,0,114,140,0,0,0,41,12,114,122,0, - 0,0,114,14,0,0,0,114,21,0,0,0,114,65,0,0, - 0,114,131,0,0,0,114,96,0,0,0,218,8,95,69,82, - 82,95,77,83,71,114,50,0,0,0,114,77,0,0,0,114, - 177,0,0,0,114,149,0,0,0,114,5,0,0,0,41,8, - 114,15,0,0,0,218,7,105,109,112,111,114,116,95,114,152, - 0,0,0,114,123,0,0,0,90,13,112,97,114,101,110,116, - 95,109,111,100,117,108,101,114,147,0,0,0,114,88,0,0, - 0,114,89,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,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,168,3, - 0,0,115,42,0,0,0,0,1,6,1,19,1,6,1,15, - 1,13,2,15,1,11,1,13,1,3,1,13,1,13,1,22, - 1,26,1,15,1,12,1,30,2,12,1,6,2,13,1,29, - 1,114,185,0,0,0,99,2,0,0,0,0,0,0,0,2, - 0,0,0,10,0,0,0,67,0,0,0,115,37,0,0,0, - 116,0,0,124,0,0,131,1,0,143,18,0,1,116,1,0, - 124,0,0,124,1,0,131,2,0,83,87,100,1,0,81,82, - 88,100,1,0,83,41,2,122,54,70,105,110,100,32,97,110, - 100,32,108,111,97,100,32,116,104,101,32,109,111,100,117,108, - 101,44,32,97,110,100,32,114,101,108,101,97,115,101,32,116, - 104,101,32,105,109,112,111,114,116,32,108,111,99,107,46,78, - 41,2,114,54,0,0,0,114,185,0,0,0,41,2,114,15, - 0,0,0,114,184,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,14,95,102,105,110,100,95,97, - 110,100,95,108,111,97,100,195,3,0,0,115,4,0,0,0, - 0,2,13,1,114,186,0,0,0,114,33,0,0,0,99,3, - 0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,67, - 0,0,0,115,166,0,0,0,116,0,0,124,0,0,124,1, - 0,124,2,0,131,3,0,1,124,2,0,100,1,0,107,4, - 0,114,46,0,116,1,0,124,0,0,124,1,0,124,2,0, - 131,3,0,125,0,0,116,2,0,106,3,0,131,0,0,1, - 124,0,0,116,4,0,106,5,0,107,7,0,114,84,0,116, - 6,0,124,0,0,116,7,0,131,2,0,83,116,4,0,106, - 5,0,124,0,0,25,125,3,0,124,3,0,100,2,0,107, - 8,0,114,152,0,116,2,0,106,8,0,131,0,0,1,100, - 3,0,106,9,0,124,0,0,131,1,0,125,4,0,116,10, - 0,124,4,0,100,4,0,124,0,0,131,1,1,130,1,0, - 116,11,0,124,0,0,131,1,0,1,124,3,0,83,41,5, - 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,33,0,0,0,78,122,40,105, - 109,112,111,114,116,32,111,102,32,123,125,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,15,0,0,0,41,12,114,182, - 0,0,0,114,172,0,0,0,114,57,0,0,0,114,145,0, - 0,0,114,14,0,0,0,114,21,0,0,0,114,186,0,0, - 0,218,11,95,103,99,100,95,105,109,112,111,114,116,114,58, - 0,0,0,114,50,0,0,0,114,77,0,0,0,114,63,0, - 0,0,41,5,114,15,0,0,0,114,170,0,0,0,114,171, - 0,0,0,114,89,0,0,0,114,74,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,187,0,0, - 0,201,3,0,0,115,28,0,0,0,0,9,16,1,12,1, - 18,1,10,1,15,1,13,1,13,1,12,1,10,1,6,1, - 9,1,18,1,10,1,114,187,0,0,0,99,3,0,0,0, - 0,0,0,0,6,0,0,0,17,0,0,0,67,0,0,0, - 115,239,0,0,0,116,0,0,124,0,0,100,1,0,131,2, - 0,114,235,0,100,2,0,124,1,0,107,6,0,114,83,0, - 116,1,0,124,1,0,131,1,0,125,1,0,124,1,0,106, - 2,0,100,2,0,131,1,0,1,116,0,0,124,0,0,100, - 3,0,131,2,0,114,83,0,124,1,0,106,3,0,124,0, - 0,106,4,0,131,1,0,1,120,149,0,124,1,0,68,93, - 141,0,125,3,0,116,0,0,124,0,0,124,3,0,131,2, - 0,115,90,0,100,4,0,106,5,0,124,0,0,106,6,0, - 124,3,0,131,2,0,125,4,0,121,17,0,116,7,0,124, - 2,0,124,4,0,131,2,0,1,87,113,90,0,4,116,8, - 0,107,10,0,114,230,0,1,125,5,0,1,122,47,0,116, - 9,0,124,5,0,131,1,0,106,10,0,116,11,0,131,1, - 0,114,209,0,124,5,0,106,12,0,124,4,0,107,2,0, - 114,209,0,119,90,0,130,0,0,87,89,100,5,0,100,5, - 0,125,5,0,126,5,0,88,113,90,0,88,113,90,0,87, - 124,0,0,83,41,6,122,238,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,114,131,0,0,0,250,1,42,218,7, - 95,95,97,108,108,95,95,122,5,123,125,46,123,125,78,41, - 13,114,4,0,0,0,114,130,0,0,0,218,6,114,101,109, - 111,118,101,218,6,101,120,116,101,110,100,114,189,0,0,0, - 114,50,0,0,0,114,1,0,0,0,114,65,0,0,0,114, - 77,0,0,0,114,179,0,0,0,114,71,0,0,0,218,15, - 95,69,82,82,95,77,83,71,95,80,82,69,70,73,88,114, - 15,0,0,0,41,6,114,89,0,0,0,218,8,102,114,111, - 109,108,105,115,116,114,184,0,0,0,218,1,120,90,9,102, - 114,111,109,95,110,97,109,101,90,3,101,120,99,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,16,95,104, - 97,110,100,108,101,95,102,114,111,109,108,105,115,116,225,3, - 0,0,115,34,0,0,0,0,10,15,1,12,1,12,1,13, - 1,15,1,16,1,13,1,15,1,21,1,3,1,17,1,18, - 4,21,1,15,1,3,1,26,1,114,195,0,0,0,99,1, - 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67, - 0,0,0,115,72,0,0,0,124,0,0,106,0,0,100,1, - 0,131,1,0,125,1,0,124,1,0,100,2,0,107,8,0, - 114,68,0,124,0,0,100,3,0,25,125,1,0,100,4,0, - 124,0,0,107,7,0,114,68,0,124,1,0,106,1,0,100, - 5,0,131,1,0,100,6,0,25,125,1,0,124,1,0,83, - 41,7,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,134,0,0,0, - 78,114,1,0,0,0,114,131,0,0,0,114,121,0,0,0, - 114,33,0,0,0,41,2,114,42,0,0,0,114,122,0,0, - 0,41,2,218,7,103,108,111,98,97,108,115,114,170,0,0, + 114,165,0,0,0,80,3,0,0,115,6,0,0,0,12,2, + 6,2,12,4,114,165,0,0,0,99,3,0,0,0,0,0, + 0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,88, + 0,0,0,124,1,0,106,0,0,100,1,0,124,2,0,100, + 2,0,24,131,2,0,125,3,0,116,1,0,124,3,0,131, + 1,0,124,2,0,107,0,0,114,52,0,116,2,0,100,3, + 0,131,1,0,130,1,0,124,3,0,100,4,0,25,125,4, + 0,124,0,0,114,84,0,100,5,0,106,3,0,124,4,0, + 124,0,0,131,2,0,83,124,4,0,83,41,6,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,121,0,0,0,114,45,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, + 33,0,0,0,122,5,123,125,46,123,125,41,4,218,6,114, + 115,112,108,105,116,218,3,108,101,110,218,10,86,97,108,117, + 101,69,114,114,111,114,114,50,0,0,0,41,5,114,15,0, + 0,0,218,7,112,97,99,107,97,103,101,218,5,108,101,118, + 101,108,90,4,98,105,116,115,90,4,98,97,115,101,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,218,13,95, + 114,101,115,111,108,118,101,95,110,97,109,101,93,3,0,0, + 115,10,0,0,0,0,2,22,1,18,1,12,1,10,1,114, + 171,0,0,0,99,3,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,67,0,0,0,115,47,0,0,0,124,0, + 0,106,0,0,124,1,0,124,2,0,131,2,0,125,3,0, + 124,3,0,100,0,0,107,8,0,114,34,0,100,0,0,83, + 116,1,0,124,1,0,124,3,0,131,2,0,83,41,1,78, + 41,2,114,155,0,0,0,114,85,0,0,0,41,4,218,6, + 102,105,110,100,101,114,114,15,0,0,0,114,152,0,0,0, + 114,99,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,17,95,102,105,110,100,95,115,112,101,99, + 95,108,101,103,97,99,121,102,3,0,0,115,8,0,0,0, + 0,3,18,1,12,1,4,1,114,173,0,0,0,99,3,0, + 0,0,0,0,0,0,9,0,0,0,27,0,0,0,67,0, + 0,0,115,42,1,0,0,116,0,0,106,1,0,100,1,0, + 107,9,0,114,41,0,116,0,0,106,1,0,12,114,41,0, + 116,2,0,106,3,0,100,2,0,116,4,0,131,2,0,1, + 124,0,0,116,0,0,106,5,0,107,6,0,125,3,0,120, + 235,0,116,0,0,106,1,0,68,93,220,0,125,4,0,116, + 6,0,131,0,0,143,90,0,1,121,13,0,124,4,0,106, + 7,0,125,5,0,87,110,51,0,4,116,8,0,107,10,0, + 114,148,0,1,1,1,116,9,0,124,4,0,124,0,0,124, + 1,0,131,3,0,125,6,0,124,6,0,100,1,0,107,8, + 0,114,144,0,119,66,0,89,110,19,0,88,124,5,0,124, + 0,0,124,1,0,124,2,0,131,3,0,125,6,0,87,100, + 1,0,81,82,88,124,6,0,100,1,0,107,9,0,114,66, + 0,124,3,0,12,114,26,1,124,0,0,116,0,0,106,5, + 0,107,6,0,114,26,1,116,0,0,106,5,0,124,0,0, + 25,125,7,0,121,13,0,124,7,0,106,10,0,125,8,0, + 87,110,22,0,4,116,8,0,107,10,0,114,2,1,1,1, + 1,124,6,0,83,89,113,30,1,88,124,8,0,100,1,0, + 107,8,0,114,19,1,124,6,0,83,124,8,0,83,113,66, + 0,124,6,0,83,113,66,0,87,100,1,0,83,100,1,0, + 83,41,3,122,23,70,105,110,100,32,97,32,109,111,100,117, + 108,101,39,115,32,108,111,97,100,101,114,46,78,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,14,0,0,0,218,9,109,101, + 116,97,95,112,97,116,104,114,141,0,0,0,114,142,0,0, + 0,218,13,73,109,112,111,114,116,87,97,114,110,105,110,103, + 114,21,0,0,0,114,165,0,0,0,114,154,0,0,0,114, + 96,0,0,0,114,173,0,0,0,114,95,0,0,0,41,9, + 114,15,0,0,0,114,152,0,0,0,114,153,0,0,0,90, + 9,105,115,95,114,101,108,111,97,100,114,172,0,0,0,114, + 154,0,0,0,114,88,0,0,0,114,89,0,0,0,114,95, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,10,95,102,105,110,100,95,115,112,101,99,111,3, + 0,0,115,48,0,0,0,0,2,25,1,16,4,15,1,16, + 1,10,1,3,1,13,1,13,1,18,1,12,1,8,2,25, + 1,12,2,22,1,13,1,3,1,13,1,13,4,9,2,12, + 1,4,2,7,2,8,2,114,176,0,0,0,99,3,0,0, + 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0, + 0,115,179,0,0,0,116,0,0,124,0,0,116,1,0,131, + 2,0,115,42,0,116,2,0,100,1,0,106,3,0,116,4, + 0,124,0,0,131,1,0,131,1,0,131,1,0,130,1,0, + 124,2,0,100,2,0,107,0,0,114,66,0,116,5,0,100, + 3,0,131,1,0,130,1,0,124,1,0,114,144,0,116,0, + 0,124,1,0,116,1,0,131,2,0,115,102,0,116,2,0, + 100,4,0,131,1,0,130,1,0,110,42,0,124,1,0,116, + 6,0,106,7,0,107,7,0,114,144,0,100,5,0,125,3, + 0,116,8,0,124,3,0,106,3,0,124,1,0,131,1,0, + 131,1,0,130,1,0,124,0,0,12,114,175,0,124,2,0, + 100,2,0,107,2,0,114,175,0,116,5,0,100,6,0,131, + 1,0,130,1,0,100,7,0,83,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,31,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,123,125,114,33,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,61,80,97,114,101,110,116,32,109,111,100, + 117,108,101,32,123,33,114,125,32,110,111,116,32,108,111,97, + 100,101,100,44,32,99,97,110,110,111,116,32,112,101,114,102, + 111,114,109,32,114,101,108,97,116,105,118,101,32,105,109,112, + 111,114,116,122,17,69,109,112,116,121,32,109,111,100,117,108, + 101,32,110,97,109,101,78,41,9,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,114,50,0,0,0,114,13,0,0,0,114, + 168,0,0,0,114,14,0,0,0,114,21,0,0,0,218,11, + 83,121,115,116,101,109,69,114,114,111,114,41,4,114,15,0, + 0,0,114,169,0,0,0,114,170,0,0,0,114,147,0,0, 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103, - 101,95,95,1,4,0,0,115,12,0,0,0,0,7,15,1, - 12,1,10,1,12,1,19,1,114,197,0,0,0,99,5,0, - 0,0,0,0,0,0,9,0,0,0,5,0,0,0,67,0, - 0,0,115,227,0,0,0,124,4,0,100,1,0,107,2,0, - 114,27,0,116,0,0,124,0,0,131,1,0,125,5,0,110, - 54,0,124,1,0,100,2,0,107,9,0,114,45,0,124,1, - 0,110,3,0,105,0,0,125,6,0,116,1,0,124,6,0, - 131,1,0,125,7,0,116,0,0,124,0,0,124,7,0,124, - 4,0,131,3,0,125,5,0,124,3,0,115,207,0,124,4, - 0,100,1,0,107,2,0,114,122,0,116,0,0,124,0,0, - 106,2,0,100,3,0,131,1,0,100,1,0,25,131,1,0, - 83,124,0,0,115,132,0,124,5,0,83,116,3,0,124,0, - 0,131,1,0,116,3,0,124,0,0,106,2,0,100,3,0, - 131,1,0,100,1,0,25,131,1,0,24,125,8,0,116,4, - 0,106,5,0,124,5,0,106,6,0,100,2,0,116,3,0, - 124,5,0,106,6,0,131,1,0,124,8,0,24,133,2,0, - 25,25,83,110,16,0,116,7,0,124,5,0,124,3,0,116, - 0,0,131,3,0,83,100,2,0,83,41,4,97,214,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,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, - 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,33,0,0,0,78,114,121,0, - 0,0,41,8,114,187,0,0,0,114,197,0,0,0,218,9, - 112,97,114,116,105,116,105,111,110,114,168,0,0,0,114,14, - 0,0,0,114,21,0,0,0,114,1,0,0,0,114,195,0, - 0,0,41,9,114,15,0,0,0,114,196,0,0,0,218,6, - 108,111,99,97,108,115,114,193,0,0,0,114,171,0,0,0, - 114,89,0,0,0,90,8,103,108,111,98,97,108,115,95,114, - 170,0,0,0,90,7,99,117,116,95,111,102,102,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,10,95,95, - 105,109,112,111,114,116,95,95,16,4,0,0,115,26,0,0, - 0,0,11,12,1,15,2,24,1,12,1,18,1,6,3,12, - 1,23,1,6,1,4,4,35,3,40,2,114,200,0,0,0, - 99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,67,0,0,0,115,53,0,0,0,116,0,0,106,1,0, - 124,0,0,131,1,0,125,1,0,124,1,0,100,0,0,107, - 8,0,114,43,0,116,2,0,100,1,0,124,0,0,23,131, - 1,0,130,1,0,116,3,0,124,1,0,131,1,0,83,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, - 150,0,0,0,114,154,0,0,0,114,77,0,0,0,114,149, - 0,0,0,41,2,114,15,0,0,0,114,88,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,18, - 95,98,117,105,108,116,105,110,95,102,114,111,109,95,110,97, - 109,101,51,4,0,0,115,8,0,0,0,0,1,15,1,12, - 1,16,1,114,201,0,0,0,99,2,0,0,0,0,0,0, - 0,12,0,0,0,12,0,0,0,67,0,0,0,115,74,1, - 0,0,124,1,0,97,0,0,124,0,0,97,1,0,116,2, - 0,116,1,0,131,1,0,125,2,0,120,123,0,116,1,0, - 106,3,0,106,4,0,131,0,0,68,93,106,0,92,2,0, - 125,3,0,125,4,0,116,5,0,124,4,0,124,2,0,131, - 2,0,114,40,0,124,3,0,116,1,0,106,6,0,107,6, - 0,114,91,0,116,7,0,125,5,0,110,27,0,116,0,0, - 106,8,0,124,3,0,131,1,0,114,40,0,116,9,0,125, - 5,0,110,3,0,113,40,0,116,10,0,124,4,0,124,5, - 0,131,2,0,125,6,0,116,11,0,124,6,0,124,4,0, - 131,2,0,1,113,40,0,87,116,1,0,106,3,0,116,12, - 0,25,125,7,0,120,73,0,100,5,0,68,93,65,0,125, - 8,0,124,8,0,116,1,0,106,3,0,107,7,0,114,206, - 0,116,13,0,124,8,0,131,1,0,125,9,0,110,13,0, - 116,1,0,106,3,0,124,8,0,25,125,9,0,116,14,0, - 124,7,0,124,8,0,124,9,0,131,3,0,1,113,170,0, - 87,121,16,0,116,13,0,100,2,0,131,1,0,125,10,0, - 87,110,24,0,4,116,15,0,107,10,0,114,25,1,1,1, - 1,100,3,0,125,10,0,89,110,1,0,88,116,14,0,124, - 7,0,100,2,0,124,10,0,131,3,0,1,116,13,0,100, - 4,0,131,1,0,125,11,0,116,14,0,124,7,0,100,4, - 0,124,11,0,131,3,0,1,100,3,0,83,41,6,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,114,141,0,0,0,114, - 34,0,0,0,78,114,62,0,0,0,41,1,122,9,95,119, - 97,114,110,105,110,103,115,41,16,114,57,0,0,0,114,14, - 0,0,0,114,13,0,0,0,114,21,0,0,0,218,5,105, - 116,101,109,115,114,178,0,0,0,114,76,0,0,0,114,150, - 0,0,0,114,82,0,0,0,114,161,0,0,0,114,132,0, - 0,0,114,137,0,0,0,114,1,0,0,0,114,201,0,0, - 0,114,5,0,0,0,114,77,0,0,0,41,12,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,90,11,109,111,100,117,108,101,95,116, - 121,112,101,114,15,0,0,0,114,89,0,0,0,114,99,0, - 0,0,114,88,0,0,0,90,11,115,101,108,102,95,109,111, - 100,117,108,101,90,12,98,117,105,108,116,105,110,95,110,97, - 109,101,90,14,98,117,105,108,116,105,110,95,109,111,100,117, - 108,101,90,13,116,104,114,101,97,100,95,109,111,100,117,108, - 101,90,14,119,101,97,107,114,101,102,95,109,111,100,117,108, - 101,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,6,95,115,101,116,117,112,58,4,0,0,115,50,0,0, - 0,0,9,6,1,6,3,12,1,28,1,15,1,15,1,9, - 1,15,1,9,2,3,1,15,1,17,3,13,1,13,1,15, - 1,15,2,13,1,20,3,3,1,16,1,13,2,11,1,16, - 3,12,1,114,205,0,0,0,99,2,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,67,0,0,0,115,87,0, - 0,0,116,0,0,124,0,0,124,1,0,131,2,0,1,116, - 1,0,106,2,0,106,3,0,116,4,0,131,1,0,1,116, - 1,0,106,2,0,106,3,0,116,5,0,131,1,0,1,100, - 1,0,100,2,0,108,6,0,125,2,0,124,2,0,97,7, - 0,124,2,0,106,8,0,116,1,0,106,9,0,116,10,0, - 25,131,1,0,1,100,2,0,83,41,3,122,50,73,110,115, - 116,97,108,108,32,105,109,112,111,114,116,108,105,98,32,97, - 115,32,116,104,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,114, - 33,0,0,0,78,41,11,114,205,0,0,0,114,14,0,0, - 0,114,175,0,0,0,114,113,0,0,0,114,150,0,0,0, - 114,161,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,119,0,0,0,218,8,95,105,110,115,116,97,108,108, - 114,21,0,0,0,114,1,0,0,0,41,3,114,203,0,0, - 0,114,204,0,0,0,114,206,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,207,0,0,0,105, - 4,0,0,115,12,0,0,0,0,2,13,2,16,1,16,3, - 12,1,6,1,114,207,0,0,0,41,51,114,3,0,0,0, - 114,119,0,0,0,114,12,0,0,0,114,16,0,0,0,114, - 17,0,0,0,114,59,0,0,0,114,41,0,0,0,114,48, - 0,0,0,114,31,0,0,0,114,32,0,0,0,114,53,0, - 0,0,114,54,0,0,0,114,56,0,0,0,114,63,0,0, - 0,114,65,0,0,0,114,75,0,0,0,114,81,0,0,0, - 114,84,0,0,0,114,90,0,0,0,114,101,0,0,0,114, - 102,0,0,0,114,106,0,0,0,114,85,0,0,0,218,6, - 111,98,106,101,99,116,90,9,95,80,79,80,85,76,65,84, - 69,114,132,0,0,0,114,137,0,0,0,114,144,0,0,0, - 114,97,0,0,0,114,86,0,0,0,114,148,0,0,0,114, - 149,0,0,0,114,87,0,0,0,114,150,0,0,0,114,161, - 0,0,0,114,166,0,0,0,114,172,0,0,0,114,174,0, - 0,0,114,177,0,0,0,114,182,0,0,0,114,192,0,0, - 0,114,183,0,0,0,114,185,0,0,0,114,186,0,0,0, - 114,187,0,0,0,114,195,0,0,0,114,197,0,0,0,114, - 200,0,0,0,114,201,0,0,0,114,205,0,0,0,114,207, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,8,60,109,111,100,117,108,101, - 62,8,0,0,0,115,96,0,0,0,6,17,6,2,12,8, - 12,4,19,20,6,2,6,3,22,4,19,68,19,21,19,19, - 12,19,12,19,12,11,18,8,12,11,12,12,12,16,12,36, - 19,27,19,101,24,26,9,3,18,45,18,60,12,18,12,17, - 12,25,12,29,12,23,12,16,19,70,19,77,19,13,12,9, - 12,9,15,40,12,17,6,1,10,2,12,27,12,6,18,24, - 12,32,12,15,24,35,12,7,12,47, + 218,13,95,115,97,110,105,116,121,95,99,104,101,99,107,151, + 3,0,0,115,24,0,0,0,0,2,15,1,27,1,12,1, + 12,1,6,1,15,1,15,1,15,1,6,2,21,1,19,1, + 114,181,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,8,0,0,0,12,0,0,0,67,0, + 0,0,115,40,1,0,0,100,0,0,125,2,0,124,0,0, + 106,0,0,100,1,0,131,1,0,100,2,0,25,125,3,0, + 124,3,0,114,175,0,124,3,0,116,1,0,106,2,0,107, + 7,0,114,59,0,116,3,0,124,1,0,124,3,0,131,2, + 0,1,124,0,0,116,1,0,106,2,0,107,6,0,114,85, + 0,116,1,0,106,2,0,124,0,0,25,83,116,1,0,106, + 2,0,124,3,0,25,125,4,0,121,13,0,124,4,0,106, + 4,0,125,2,0,87,110,61,0,4,116,5,0,107,10,0, + 114,174,0,1,1,1,116,6,0,100,3,0,23,106,7,0, + 124,0,0,124,3,0,131,2,0,125,5,0,116,8,0,124, + 5,0,100,4,0,124,0,0,131,1,1,100,0,0,130,2, + 0,89,110,1,0,88,116,9,0,124,0,0,124,2,0,131, + 2,0,125,6,0,124,6,0,100,0,0,107,8,0,114,232, + 0,116,8,0,116,6,0,106,7,0,124,0,0,131,1,0, + 100,4,0,124,0,0,131,1,1,130,1,0,110,12,0,116, + 10,0,124,6,0,131,1,0,125,7,0,124,3,0,114,36, + 1,116,1,0,106,2,0,124,3,0,25,125,4,0,116,11, + 0,124,4,0,124,0,0,106,0,0,100,1,0,131,1,0, + 100,5,0,25,124,7,0,131,3,0,1,124,7,0,83,41, + 6,78,114,121,0,0,0,114,33,0,0,0,122,23,59,32, + 123,33,114,125,32,105,115,32,110,111,116,32,97,32,112,97, + 99,107,97,103,101,114,15,0,0,0,114,140,0,0,0,41, + 12,114,122,0,0,0,114,14,0,0,0,114,21,0,0,0, + 114,65,0,0,0,114,131,0,0,0,114,96,0,0,0,218, + 8,95,69,82,82,95,77,83,71,114,50,0,0,0,114,77, + 0,0,0,114,176,0,0,0,114,149,0,0,0,114,5,0, + 0,0,41,8,114,15,0,0,0,218,7,105,109,112,111,114, + 116,95,114,152,0,0,0,114,123,0,0,0,90,13,112,97, + 114,101,110,116,95,109,111,100,117,108,101,114,147,0,0,0, + 114,88,0,0,0,114,89,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,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,171,3,0,0,115,42,0,0,0,0,1,6,1,19, + 1,6,1,15,1,13,2,15,1,11,1,13,1,3,1,13, + 1,13,1,22,1,26,1,15,1,12,1,30,2,12,1,6, + 2,13,1,29,1,114,184,0,0,0,99,2,0,0,0,0, + 0,0,0,2,0,0,0,10,0,0,0,67,0,0,0,115, + 37,0,0,0,116,0,0,124,0,0,131,1,0,143,18,0, + 1,116,1,0,124,0,0,124,1,0,131,2,0,83,87,100, + 1,0,81,82,88,100,1,0,83,41,2,122,54,70,105,110, + 100,32,97,110,100,32,108,111,97,100,32,116,104,101,32,109, + 111,100,117,108,101,44,32,97,110,100,32,114,101,108,101,97, + 115,101,32,116,104,101,32,105,109,112,111,114,116,32,108,111, + 99,107,46,78,41,2,114,54,0,0,0,114,184,0,0,0, + 41,2,114,15,0,0,0,114,183,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,14,95,102,105, + 110,100,95,97,110,100,95,108,111,97,100,198,3,0,0,115, + 4,0,0,0,0,2,13,1,114,185,0,0,0,114,33,0, + 0,0,99,3,0,0,0,0,0,0,0,5,0,0,0,4, + 0,0,0,67,0,0,0,115,166,0,0,0,116,0,0,124, + 0,0,124,1,0,124,2,0,131,3,0,1,124,2,0,100, + 1,0,107,4,0,114,46,0,116,1,0,124,0,0,124,1, + 0,124,2,0,131,3,0,125,0,0,116,2,0,106,3,0, + 131,0,0,1,124,0,0,116,4,0,106,5,0,107,7,0, + 114,84,0,116,6,0,124,0,0,116,7,0,131,2,0,83, + 116,4,0,106,5,0,124,0,0,25,125,3,0,124,3,0, + 100,2,0,107,8,0,114,152,0,116,2,0,106,8,0,131, + 0,0,1,100,3,0,106,9,0,124,0,0,131,1,0,125, + 4,0,116,10,0,124,4,0,100,4,0,124,0,0,131,1, + 1,130,1,0,116,11,0,124,0,0,131,1,0,1,124,3, + 0,83,41,5,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,33,0,0,0, + 78,122,40,105,109,112,111,114,116,32,111,102,32,123,125,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,15,0,0,0, + 41,12,114,181,0,0,0,114,171,0,0,0,114,57,0,0, + 0,114,145,0,0,0,114,14,0,0,0,114,21,0,0,0, + 114,185,0,0,0,218,11,95,103,99,100,95,105,109,112,111, + 114,116,114,58,0,0,0,114,50,0,0,0,114,77,0,0, + 0,114,63,0,0,0,41,5,114,15,0,0,0,114,169,0, + 0,0,114,170,0,0,0,114,89,0,0,0,114,74,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,186,0,0,0,204,3,0,0,115,28,0,0,0,0,9, + 16,1,12,1,18,1,10,1,15,1,13,1,13,1,12,1, + 10,1,6,1,9,1,18,1,10,1,114,186,0,0,0,99, + 3,0,0,0,0,0,0,0,6,0,0,0,17,0,0,0, + 67,0,0,0,115,239,0,0,0,116,0,0,124,0,0,100, + 1,0,131,2,0,114,235,0,100,2,0,124,1,0,107,6, + 0,114,83,0,116,1,0,124,1,0,131,1,0,125,1,0, + 124,1,0,106,2,0,100,2,0,131,1,0,1,116,0,0, + 124,0,0,100,3,0,131,2,0,114,83,0,124,1,0,106, + 3,0,124,0,0,106,4,0,131,1,0,1,120,149,0,124, + 1,0,68,93,141,0,125,3,0,116,0,0,124,0,0,124, + 3,0,131,2,0,115,90,0,100,4,0,106,5,0,124,0, + 0,106,6,0,124,3,0,131,2,0,125,4,0,121,17,0, + 116,7,0,124,2,0,124,4,0,131,2,0,1,87,113,90, + 0,4,116,8,0,107,10,0,114,230,0,1,125,5,0,1, + 122,47,0,116,9,0,124,5,0,131,1,0,106,10,0,116, + 11,0,131,1,0,114,209,0,124,5,0,106,12,0,124,4, + 0,107,2,0,114,209,0,119,90,0,130,0,0,87,89,100, + 5,0,100,5,0,125,5,0,126,5,0,88,113,90,0,88, + 113,90,0,87,124,0,0,83,41,6,122,238,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,114,131,0,0,0,250, + 1,42,218,7,95,95,97,108,108,95,95,122,5,123,125,46, + 123,125,78,41,13,114,4,0,0,0,114,130,0,0,0,218, + 6,114,101,109,111,118,101,218,6,101,120,116,101,110,100,114, + 188,0,0,0,114,50,0,0,0,114,1,0,0,0,114,65, + 0,0,0,114,77,0,0,0,114,178,0,0,0,114,71,0, + 0,0,218,15,95,69,82,82,95,77,83,71,95,80,82,69, + 70,73,88,114,15,0,0,0,41,6,114,89,0,0,0,218, + 8,102,114,111,109,108,105,115,116,114,183,0,0,0,218,1, + 120,90,9,102,114,111,109,95,110,97,109,101,90,3,101,120, + 99,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 218,16,95,104,97,110,100,108,101,95,102,114,111,109,108,105, + 115,116,228,3,0,0,115,34,0,0,0,0,10,15,1,12, + 1,12,1,13,1,15,1,16,1,13,1,15,1,21,1,3, + 1,17,1,18,4,21,1,15,1,3,1,26,1,114,194,0, + 0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,2, + 0,0,0,67,0,0,0,115,72,0,0,0,124,0,0,106, + 0,0,100,1,0,131,1,0,125,1,0,124,1,0,100,2, + 0,107,8,0,114,68,0,124,0,0,100,3,0,25,125,1, + 0,100,4,0,124,0,0,107,7,0,114,68,0,124,1,0, + 106,1,0,100,5,0,131,1,0,100,6,0,25,125,1,0, + 124,1,0,83,41,7,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, + 134,0,0,0,78,114,1,0,0,0,114,131,0,0,0,114, + 121,0,0,0,114,33,0,0,0,41,2,114,42,0,0,0, + 114,122,0,0,0,41,2,218,7,103,108,111,98,97,108,115, + 114,169,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,17,95,99,97,108,99,95,95,95,112,97, + 99,107,97,103,101,95,95,4,4,0,0,115,12,0,0,0, + 0,7,15,1,12,1,10,1,12,1,19,1,114,196,0,0, + 0,99,5,0,0,0,0,0,0,0,9,0,0,0,5,0, + 0,0,67,0,0,0,115,227,0,0,0,124,4,0,100,1, + 0,107,2,0,114,27,0,116,0,0,124,0,0,131,1,0, + 125,5,0,110,54,0,124,1,0,100,2,0,107,9,0,114, + 45,0,124,1,0,110,3,0,105,0,0,125,6,0,116,1, + 0,124,6,0,131,1,0,125,7,0,116,0,0,124,0,0, + 124,7,0,124,4,0,131,3,0,125,5,0,124,3,0,115, + 207,0,124,4,0,100,1,0,107,2,0,114,122,0,116,0, + 0,124,0,0,106,2,0,100,3,0,131,1,0,100,1,0, + 25,131,1,0,83,124,0,0,115,132,0,124,5,0,83,116, + 3,0,124,0,0,131,1,0,116,3,0,124,0,0,106,2, + 0,100,3,0,131,1,0,100,1,0,25,131,1,0,24,125, + 8,0,116,4,0,106,5,0,124,5,0,106,6,0,100,2, + 0,116,3,0,124,5,0,106,6,0,131,1,0,124,8,0, + 24,133,2,0,25,25,83,110,16,0,116,7,0,124,5,0, + 124,3,0,116,0,0,131,3,0,83,100,2,0,83,41,4, + 97,214,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,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,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,33,0,0,0, + 78,114,121,0,0,0,41,8,114,186,0,0,0,114,196,0, + 0,0,218,9,112,97,114,116,105,116,105,111,110,114,167,0, + 0,0,114,14,0,0,0,114,21,0,0,0,114,1,0,0, + 0,114,194,0,0,0,41,9,114,15,0,0,0,114,195,0, + 0,0,218,6,108,111,99,97,108,115,114,192,0,0,0,114, + 170,0,0,0,114,89,0,0,0,90,8,103,108,111,98,97, + 108,115,95,114,169,0,0,0,90,7,99,117,116,95,111,102, + 102,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 218,10,95,95,105,109,112,111,114,116,95,95,19,4,0,0, + 115,26,0,0,0,0,11,12,1,15,2,24,1,12,1,18, + 1,6,3,12,1,23,1,6,1,4,4,35,3,40,2,114, + 199,0,0,0,99,1,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,67,0,0,0,115,53,0,0,0,116,0, + 0,106,1,0,124,0,0,131,1,0,125,1,0,124,1,0, + 100,0,0,107,8,0,114,43,0,116,2,0,100,1,0,124, + 0,0,23,131,1,0,130,1,0,116,3,0,124,1,0,131, + 1,0,83,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,150,0,0,0,114,154,0,0,0,114,77,0, + 0,0,114,149,0,0,0,41,2,114,15,0,0,0,114,88, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,18,95,98,117,105,108,116,105,110,95,102,114,111, + 109,95,110,97,109,101,54,4,0,0,115,8,0,0,0,0, + 1,15,1,12,1,16,1,114,200,0,0,0,99,2,0,0, + 0,0,0,0,0,12,0,0,0,12,0,0,0,67,0,0, + 0,115,74,1,0,0,124,1,0,97,0,0,124,0,0,97, + 1,0,116,2,0,116,1,0,131,1,0,125,2,0,120,123, + 0,116,1,0,106,3,0,106,4,0,131,0,0,68,93,106, + 0,92,2,0,125,3,0,125,4,0,116,5,0,124,4,0, + 124,2,0,131,2,0,114,40,0,124,3,0,116,1,0,106, + 6,0,107,6,0,114,91,0,116,7,0,125,5,0,110,27, + 0,116,0,0,106,8,0,124,3,0,131,1,0,114,40,0, + 116,9,0,125,5,0,110,3,0,113,40,0,116,10,0,124, + 4,0,124,5,0,131,2,0,125,6,0,116,11,0,124,6, + 0,124,4,0,131,2,0,1,113,40,0,87,116,1,0,106, + 3,0,116,12,0,25,125,7,0,120,73,0,100,5,0,68, + 93,65,0,125,8,0,124,8,0,116,1,0,106,3,0,107, + 7,0,114,206,0,116,13,0,124,8,0,131,1,0,125,9, + 0,110,13,0,116,1,0,106,3,0,124,8,0,25,125,9, + 0,116,14,0,124,7,0,124,8,0,124,9,0,131,3,0, + 1,113,170,0,87,121,16,0,116,13,0,100,2,0,131,1, + 0,125,10,0,87,110,24,0,4,116,15,0,107,10,0,114, + 25,1,1,1,1,100,3,0,125,10,0,89,110,1,0,88, + 116,14,0,124,7,0,100,2,0,124,10,0,131,3,0,1, + 116,13,0,100,4,0,131,1,0,125,11,0,116,14,0,124, + 7,0,100,4,0,124,11,0,131,3,0,1,100,3,0,83, + 41,6,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,114,141, + 0,0,0,114,34,0,0,0,78,114,62,0,0,0,41,1, + 122,9,95,119,97,114,110,105,110,103,115,41,16,114,57,0, + 0,0,114,14,0,0,0,114,13,0,0,0,114,21,0,0, + 0,218,5,105,116,101,109,115,114,177,0,0,0,114,76,0, + 0,0,114,150,0,0,0,114,82,0,0,0,114,160,0,0, + 0,114,132,0,0,0,114,137,0,0,0,114,1,0,0,0, + 114,200,0,0,0,114,5,0,0,0,114,77,0,0,0,41, + 12,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,90,11,109,111,100,117, + 108,101,95,116,121,112,101,114,15,0,0,0,114,89,0,0, + 0,114,99,0,0,0,114,88,0,0,0,90,11,115,101,108, + 102,95,109,111,100,117,108,101,90,12,98,117,105,108,116,105, + 110,95,110,97,109,101,90,14,98,117,105,108,116,105,110,95, + 109,111,100,117,108,101,90,13,116,104,114,101,97,100,95,109, + 111,100,117,108,101,90,14,119,101,97,107,114,101,102,95,109, + 111,100,117,108,101,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,6,95,115,101,116,117,112,61,4,0,0, + 115,50,0,0,0,0,9,6,1,6,3,12,1,28,1,15, + 1,15,1,9,1,15,1,9,2,3,1,15,1,17,3,13, + 1,13,1,15,1,15,2,13,1,20,3,3,1,16,1,13, + 2,11,1,16,3,12,1,114,204,0,0,0,99,2,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0, + 0,115,87,0,0,0,116,0,0,124,0,0,124,1,0,131, + 2,0,1,116,1,0,106,2,0,106,3,0,116,4,0,131, + 1,0,1,116,1,0,106,2,0,106,3,0,116,5,0,131, + 1,0,1,100,1,0,100,2,0,108,6,0,125,2,0,124, + 2,0,97,7,0,124,2,0,106,8,0,116,1,0,106,9, + 0,116,10,0,25,131,1,0,1,100,2,0,83,41,3,122, + 50,73,110,115,116,97,108,108,32,105,109,112,111,114,116,108, + 105,98,32,97,115,32,116,104,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,114,33,0,0,0,78,41,11,114,204,0,0,0, + 114,14,0,0,0,114,174,0,0,0,114,113,0,0,0,114, + 150,0,0,0,114,160,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,119,0,0,0,218,8,95,105,110,115, + 116,97,108,108,114,21,0,0,0,114,1,0,0,0,41,3, + 114,202,0,0,0,114,203,0,0,0,114,205,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,206, + 0,0,0,108,4,0,0,115,12,0,0,0,0,2,13,2, + 16,1,16,3,12,1,6,1,114,206,0,0,0,41,51,114, + 3,0,0,0,114,119,0,0,0,114,12,0,0,0,114,16, + 0,0,0,114,17,0,0,0,114,59,0,0,0,114,41,0, + 0,0,114,48,0,0,0,114,31,0,0,0,114,32,0,0, + 0,114,53,0,0,0,114,54,0,0,0,114,56,0,0,0, + 114,63,0,0,0,114,65,0,0,0,114,75,0,0,0,114, + 81,0,0,0,114,84,0,0,0,114,90,0,0,0,114,101, + 0,0,0,114,102,0,0,0,114,106,0,0,0,114,85,0, + 0,0,218,6,111,98,106,101,99,116,90,9,95,80,79,80, + 85,76,65,84,69,114,132,0,0,0,114,137,0,0,0,114, + 144,0,0,0,114,97,0,0,0,114,86,0,0,0,114,148, + 0,0,0,114,149,0,0,0,114,87,0,0,0,114,150,0, + 0,0,114,160,0,0,0,114,165,0,0,0,114,171,0,0, + 0,114,173,0,0,0,114,176,0,0,0,114,181,0,0,0, + 114,191,0,0,0,114,182,0,0,0,114,184,0,0,0,114, + 185,0,0,0,114,186,0,0,0,114,194,0,0,0,114,196, + 0,0,0,114,199,0,0,0,114,200,0,0,0,114,204,0, + 0,0,114,206,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,8,60,109,111, + 100,117,108,101,62,8,0,0,0,115,96,0,0,0,6,17, + 6,2,12,8,12,4,19,20,6,2,6,3,22,4,19,68, + 19,21,19,19,12,19,12,19,12,11,18,8,12,11,12,12, + 12,16,12,36,19,27,19,101,24,26,9,3,18,45,18,60, + 12,18,12,17,12,25,12,29,12,23,12,16,19,73,19,77, + 19,13,12,9,12,9,15,40,12,17,6,1,10,2,12,27, + 12,6,18,24,12,32,12,15,24,35,12,7,12,47, }; diff --git a/Python/importlib_external.h b/Python/importlib_external.h index 85931105b64..957aca5120f 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -1,7 +1,7 @@ /* Auto-generated by Programs/_freeze_importlib.c */ const unsigned char _Py_M__importlib_external[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0, - 0,64,0,0,0,115,222,2,0,0,100,0,0,90,0,0, + 0,64,0,0,0,115,228,2,0,0,100,0,0,90,0,0, 100,96,0,90,1,0,100,4,0,100,5,0,132,0,0,90, 2,0,100,6,0,100,7,0,132,0,0,90,3,0,100,8, 0,100,9,0,132,0,0,90,4,0,100,10,0,100,11,0, @@ -38,1127 +38,1105 @@ const unsigned char _Py_M__importlib_external[] = { 0,132,0,0,100,75,0,101,44,0,101,43,0,131,4,0, 90,45,0,71,100,76,0,100,77,0,132,0,0,100,77,0, 101,44,0,101,42,0,131,4,0,90,46,0,103,0,0,90, - 47,0,71,100,78,0,100,79,0,132,0,0,100,79,0,131, - 2,0,90,48,0,71,100,80,0,100,81,0,132,0,0,100, - 81,0,131,2,0,90,49,0,71,100,82,0,100,83,0,132, - 0,0,100,83,0,131,2,0,90,50,0,71,100,84,0,100, - 85,0,132,0,0,100,85,0,131,2,0,90,51,0,71,100, - 86,0,100,87,0,132,0,0,100,87,0,131,2,0,90,52, - 0,100,33,0,100,88,0,100,89,0,132,1,0,90,53,0, - 100,90,0,100,91,0,132,0,0,90,54,0,100,92,0,100, - 93,0,132,0,0,90,55,0,100,94,0,100,95,0,132,0, - 0,90,56,0,100,33,0,83,41,97,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,105,115,32,78,79,84,32,109,101,97, - 110,116,32,116,111,32,98,101,32,100,105,114,101,99,116,108, - 121,32,105,109,112,111,114,116,101,100,33,32,73,116,32,104, - 97,115,32,98,101,101,110,32,100,101,115,105,103,110,101,100, - 32,115,117,99,104,10,116,104,97,116,32,105,116,32,99,97, - 110,32,98,101,32,98,111,111,116,115,116,114,97,112,112,101, - 100,32,105,110,116,111,32,80,121,116,104,111,110,32,97,115, - 32,116,104,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,32,65, - 115,10,115,117,99,104,32,105,116,32,114,101,113,117,105,114, - 101,115,32,116,104,101,32,105,110,106,101,99,116,105,111,110, - 32,111,102,32,115,112,101,99,105,102,105,99,32,109,111,100, - 117,108,101,115,32,97,110,100,32,97,116,116,114,105,98,117, - 116,101,115,32,105,110,32,111,114,100,101,114,32,116,111,10, - 119,111,114,107,46,32,79,110,101,32,115,104,111,117,108,100, - 32,117,115,101,32,105,109,112,111,114,116,108,105,98,32,97, - 115,32,116,104,101,32,112,117,98,108,105,99,45,102,97,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,218,3,119, - 105,110,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,1,0,0,0,2, - 0,0,0,67,0,0,0,115,49,0,0,0,116,0,0,106, - 1,0,106,2,0,116,3,0,131,1,0,114,33,0,100,1, - 0,100,2,0,132,0,0,125,0,0,110,12,0,100,3,0, - 100,2,0,132,0,0,125,0,0,124,0,0,83,41,4,78, - 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,83,0,0,0,115,13,0,0,0,100,1,0,116,0,0, - 106,1,0,107,6,0,83,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, - 115,12,0,0,0,80,89,84,72,79,78,67,65,83,69,79, - 75,41,2,218,3,95,111,115,90,7,101,110,118,105,114,111, - 110,169,0,114,4,0,0,0,114,4,0,0,0,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,11,95,114,101,108,97,120,95,99,97, - 115,101,30,0,0,0,115,2,0,0,0,0,2,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,99,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,83,0,0,0,115,4,0,0,0,100,1, - 0,83,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,114,4,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,5,0,0,0,114,6,0,0,0,34,0,0,0,115,2, - 0,0,0,0,2,41,4,218,3,115,121,115,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,41, - 1,114,6,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,5,0,0,0,218,16,95,109,97,107,101,95,114,101,108, - 97,120,95,99,97,115,101,28,0,0,0,115,8,0,0,0, - 0,1,18,1,15,4,12,3,114,11,0,0,0,99,1,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0, - 0,0,115,26,0,0,0,116,0,0,124,0,0,131,1,0, - 100,1,0,64,106,1,0,100,2,0,100,3,0,131,2,0, - 83,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,108, - 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,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,7,95,119, - 95,108,111,110,103,40,0,0,0,115,2,0,0,0,0,2, - 114,17,0,0,0,99,1,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,67,0,0,0,115,16,0,0,0,116, - 0,0,106,1,0,124,0,0,100,1,0,131,2,0,83,41, - 2,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,13,0,0,0,41,2,114,14,0,0,0,218,10, - 102,114,111,109,95,98,121,116,101,115,41,1,90,9,105,110, - 116,95,98,121,116,101,115,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,7,95,114,95,108,111,110,103,45, - 0,0,0,115,2,0,0,0,0,2,114,19,0,0,0,99, - 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 71,0,0,0,115,26,0,0,0,116,0,0,106,1,0,100, - 1,0,100,2,0,132,0,0,124,0,0,68,131,1,0,131, - 1,0,83,41,3,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,106, - 111,105,110,40,41,46,99,1,0,0,0,0,0,0,0,2, - 0,0,0,4,0,0,0,83,0,0,0,115,37,0,0,0, - 103,0,0,124,0,0,93,27,0,125,1,0,124,1,0,114, - 6,0,124,1,0,106,0,0,116,1,0,131,1,0,145,2, - 0,113,6,0,83,114,4,0,0,0,41,2,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,41,2,218,2,46,48,218,4,112,97,114, - 116,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 250,10,60,108,105,115,116,99,111,109,112,62,52,0,0,0, - 115,2,0,0,0,9,1,122,30,95,112,97,116,104,95,106, - 111,105,110,46,60,108,111,99,97,108,115,62,46,60,108,105, - 115,116,99,111,109,112,62,41,2,218,8,112,97,116,104,95, - 115,101,112,218,4,106,111,105,110,41,1,218,10,112,97,116, - 104,95,112,97,114,116,115,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,10,95,112,97,116,104,95,106,111, - 105,110,50,0,0,0,115,4,0,0,0,0,2,15,1,114, - 28,0,0,0,99,1,0,0,0,0,0,0,0,5,0,0, - 0,5,0,0,0,67,0,0,0,115,134,0,0,0,116,0, - 0,116,1,0,131,1,0,100,1,0,107,2,0,114,52,0, - 124,0,0,106,2,0,116,3,0,131,1,0,92,3,0,125, - 1,0,125,2,0,125,3,0,124,1,0,124,3,0,102,2, - 0,83,120,69,0,116,4,0,124,0,0,131,1,0,68,93, - 55,0,125,4,0,124,4,0,116,1,0,107,6,0,114,65, - 0,124,0,0,106,5,0,124,4,0,100,2,0,100,1,0, - 131,1,1,92,2,0,125,1,0,125,3,0,124,1,0,124, - 3,0,102,2,0,83,113,65,0,87,100,3,0,124,0,0, - 102,2,0,83,41,4,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,233,1,0,0,0,90,8,109, - 97,120,115,112,108,105,116,218,0,41,6,218,3,108,101,110, - 114,21,0,0,0,218,10,114,112,97,114,116,105,116,105,111, - 110,114,25,0,0,0,218,8,114,101,118,101,114,115,101,100, - 218,6,114,115,112,108,105,116,41,5,218,4,112,97,116,104, - 90,5,102,114,111,110,116,218,1,95,218,4,116,97,105,108, - 114,16,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,218,11,95,112,97,116,104,95,115,112,108,105, - 116,56,0,0,0,115,16,0,0,0,0,2,18,1,24,1, - 10,1,19,1,12,1,27,1,14,1,114,38,0,0,0,99, - 1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0, - 67,0,0,0,115,13,0,0,0,116,0,0,106,1,0,124, - 0,0,131,1,0,83,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,3,0,0,0,90, - 4,115,116,97,116,41,1,114,35,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,218,10,95,112,97, - 116,104,95,115,116,97,116,68,0,0,0,115,2,0,0,0, - 0,7,114,39,0,0,0,99,2,0,0,0,0,0,0,0, - 3,0,0,0,11,0,0,0,67,0,0,0,115,58,0,0, - 0,121,16,0,116,0,0,124,0,0,131,1,0,125,2,0, - 87,110,22,0,4,116,1,0,107,10,0,114,40,0,1,1, - 1,100,1,0,83,89,110,1,0,88,124,2,0,106,2,0, - 100,2,0,64,124,1,0,107,2,0,83,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,39,0,0,0,218,7,79, - 83,69,114,114,111,114,218,7,115,116,95,109,111,100,101,41, - 3,114,35,0,0,0,218,4,109,111,100,101,90,9,115,116, - 97,116,95,105,110,102,111,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,18,95,112,97,116,104,95,105,115, - 95,109,111,100,101,95,116,121,112,101,78,0,0,0,115,10, - 0,0,0,0,2,3,1,16,1,13,1,9,1,114,43,0, - 0,0,99,1,0,0,0,0,0,0,0,1,0,0,0,3, - 0,0,0,67,0,0,0,115,13,0,0,0,116,0,0,124, - 0,0,100,1,0,131,2,0,83,41,2,122,31,82,101,112, + 47,0,71,100,78,0,100,79,0,132,0,0,100,79,0,101, + 44,0,101,42,0,131,4,0,90,48,0,71,100,80,0,100, + 81,0,132,0,0,100,81,0,131,2,0,90,49,0,71,100, + 82,0,100,83,0,132,0,0,100,83,0,131,2,0,90,50, + 0,71,100,84,0,100,85,0,132,0,0,100,85,0,131,2, + 0,90,51,0,71,100,86,0,100,87,0,132,0,0,100,87, + 0,131,2,0,90,52,0,100,33,0,100,88,0,100,89,0, + 132,1,0,90,53,0,100,90,0,100,91,0,132,0,0,90, + 54,0,100,92,0,100,93,0,132,0,0,90,55,0,100,94, + 0,100,95,0,132,0,0,90,56,0,100,33,0,83,41,97, + 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,105,115,32,78, + 79,84,32,109,101,97,110,116,32,116,111,32,98,101,32,100, + 105,114,101,99,116,108,121,32,105,109,112,111,114,116,101,100, + 33,32,73,116,32,104,97,115,32,98,101,101,110,32,100,101, + 115,105,103,110,101,100,32,115,117,99,104,10,116,104,97,116, + 32,105,116,32,99,97,110,32,98,101,32,98,111,111,116,115, + 116,114,97,112,112,101,100,32,105,110,116,111,32,80,121,116, + 104,111,110,32,97,115,32,116,104,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,32,65,115,10,115,117,99,104,32,105,116,32, + 114,101,113,117,105,114,101,115,32,116,104,101,32,105,110,106, + 101,99,116,105,111,110,32,111,102,32,115,112,101,99,105,102, + 105,99,32,109,111,100,117,108,101,115,32,97,110,100,32,97, + 116,116,114,105,98,117,116,101,115,32,105,110,32,111,114,100, + 101,114,32,116,111,10,119,111,114,107,46,32,79,110,101,32, + 115,104,111,117,108,100,32,117,115,101,32,105,109,112,111,114, + 116,108,105,98,32,97,115,32,116,104,101,32,112,117,98,108, + 105,99,45,102,97,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,218,3,119,105,110,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,1,0,0,0,2,0,0,0,67,0,0,0,115,49,0, + 0,0,116,0,0,106,1,0,106,2,0,116,3,0,131,1, + 0,114,33,0,100,1,0,100,2,0,132,0,0,125,0,0, + 110,12,0,100,3,0,100,2,0,132,0,0,125,0,0,124, + 0,0,83,41,4,78,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,83,0,0,0,115,13,0,0,0, + 100,1,0,116,0,0,106,1,0,107,6,0,83,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,115,12,0,0,0,80,89,84,72,79, + 78,67,65,83,69,79,75,41,2,218,3,95,111,115,90,7, + 101,110,118,105,114,111,110,169,0,114,4,0,0,0,114,4, + 0,0,0,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,11,95,114,101, + 108,97,120,95,99,97,115,101,30,0,0,0,115,2,0,0, + 0,0,2,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,99,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,83,0,0,0,115, + 4,0,0,0,100,1,0,83,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,114,4,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,114,6,0,0,0, + 34,0,0,0,115,2,0,0,0,0,2,41,4,218,3,115, + 121,115,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,41,1,114,6,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,218,16,95,109,97, + 107,101,95,114,101,108,97,120,95,99,97,115,101,28,0,0, + 0,115,8,0,0,0,0,1,18,1,15,4,12,3,114,11, + 0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,67,0,0,0,115,26,0,0,0,116,0,0, + 124,0,0,131,1,0,100,1,0,64,106,1,0,100,2,0, + 100,3,0,131,2,0,83,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,108,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,114,4,0,0,0,114,4,0,0,0,114,5,0, + 0,0,218,7,95,119,95,108,111,110,103,40,0,0,0,115, + 2,0,0,0,0,2,114,17,0,0,0,99,1,0,0,0, + 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0, + 115,16,0,0,0,116,0,0,106,1,0,124,0,0,100,1, + 0,131,2,0,83,41,2,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,13,0,0,0,41,2,114, + 14,0,0,0,218,10,102,114,111,109,95,98,121,116,101,115, + 41,1,90,9,105,110,116,95,98,121,116,101,115,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,7,95,114, + 95,108,111,110,103,45,0,0,0,115,2,0,0,0,0,2, + 114,19,0,0,0,99,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,71,0,0,0,115,26,0,0,0,116, + 0,0,106,1,0,100,1,0,100,2,0,132,0,0,124,0, + 0,68,131,1,0,131,1,0,83,41,3,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,43,0,0,0,41,1,114,35,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,12, - 95,112,97,116,104,95,105,115,102,105,108,101,87,0,0,0, - 115,2,0,0,0,0,2,114,44,0,0,0,99,1,0,0, - 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, - 0,115,31,0,0,0,124,0,0,115,18,0,116,0,0,106, - 1,0,131,0,0,125,0,0,116,2,0,124,0,0,100,1, - 0,131,2,0,83,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,100,105,114,46,105,0,64,0,0,41,3,114,3, - 0,0,0,218,6,103,101,116,99,119,100,114,43,0,0,0, - 41,1,114,35,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,11,95,112,97,116,104,95,105,115, - 100,105,114,92,0,0,0,115,6,0,0,0,0,2,6,1, - 12,1,114,46,0,0,0,105,182,1,0,0,99,3,0,0, - 0,0,0,0,0,6,0,0,0,17,0,0,0,67,0,0, - 0,115,193,0,0,0,100,1,0,106,0,0,124,0,0,116, - 1,0,124,0,0,131,1,0,131,2,0,125,3,0,116,2, - 0,106,3,0,124,3,0,116,2,0,106,4,0,116,2,0, - 106,5,0,66,116,2,0,106,6,0,66,124,2,0,100,2, - 0,64,131,3,0,125,4,0,121,61,0,116,7,0,106,8, - 0,124,4,0,100,3,0,131,2,0,143,20,0,125,5,0, - 124,5,0,106,9,0,124,1,0,131,1,0,1,87,100,4, - 0,81,82,88,116,2,0,106,10,0,124,3,0,124,0,0, - 131,2,0,1,87,110,59,0,4,116,11,0,107,10,0,114, - 188,0,1,1,1,121,17,0,116,2,0,106,12,0,124,3, - 0,131,1,0,1,87,110,18,0,4,116,11,0,107,10,0, - 114,180,0,1,1,1,89,110,1,0,88,130,0,0,89,110, - 1,0,88,100,4,0,83,41,5,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,122,5,123, - 125,46,123,125,105,182,1,0,0,90,2,119,98,78,41,13, - 218,6,102,111,114,109,97,116,218,2,105,100,114,3,0,0, - 0,90,4,111,112,101,110,90,6,79,95,69,88,67,76,90, - 7,79,95,67,82,69,65,84,90,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,218,7,114,101,112,108,97,99,101,114, - 40,0,0,0,90,6,117,110,108,105,110,107,41,6,114,35, - 0,0,0,218,4,100,97,116,97,114,42,0,0,0,90,8, - 112,97,116,104,95,116,109,112,90,2,102,100,218,4,102,105, - 108,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,218,13,95,119,114,105,116,101,95,97,116,111,109,105,99, - 99,0,0,0,115,26,0,0,0,0,5,24,1,9,1,33, - 1,3,3,21,1,20,1,20,1,13,1,3,1,17,1,13, - 1,5,1,114,55,0,0,0,105,2,13,0,0,233,2,0, - 0,0,114,13,0,0,0,115,2,0,0,0,13,10,90,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,99,78,218,12,111, - 112,116,105,109,105,122,97,116,105,111,110,99,2,0,0,0, - 1,0,0,0,11,0,0,0,6,0,0,0,67,0,0,0, - 115,87,1,0,0,124,1,0,100,1,0,107,9,0,114,76, - 0,116,0,0,106,1,0,100,2,0,116,2,0,131,2,0, - 1,124,2,0,100,1,0,107,9,0,114,58,0,100,3,0, - 125,3,0,116,3,0,124,3,0,131,1,0,130,1,0,124, - 1,0,114,70,0,100,4,0,110,3,0,100,5,0,125,2, - 0,116,4,0,124,0,0,131,1,0,92,2,0,125,4,0, - 125,5,0,124,5,0,106,5,0,100,6,0,131,1,0,92, - 3,0,125,6,0,125,7,0,125,8,0,116,6,0,106,7, - 0,106,8,0,125,9,0,124,9,0,100,1,0,107,8,0, - 114,154,0,116,9,0,100,7,0,131,1,0,130,1,0,100, - 4,0,106,10,0,124,6,0,114,172,0,124,6,0,110,3, - 0,124,8,0,124,7,0,124,9,0,103,3,0,131,1,0, - 125,10,0,124,2,0,100,1,0,107,8,0,114,241,0,116, - 6,0,106,11,0,106,12,0,100,8,0,107,2,0,114,229, - 0,100,4,0,125,2,0,110,12,0,116,6,0,106,11,0, - 106,12,0,125,2,0,116,13,0,124,2,0,131,1,0,125, - 2,0,124,2,0,100,4,0,107,3,0,114,63,1,124,2, - 0,106,14,0,131,0,0,115,42,1,116,15,0,100,9,0, - 106,16,0,124,2,0,131,1,0,131,1,0,130,1,0,100, - 10,0,106,16,0,124,10,0,116,17,0,124,2,0,131,3, - 0,125,10,0,116,18,0,124,4,0,116,19,0,124,10,0, - 116,20,0,100,8,0,25,23,131,3,0,83,41,11,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, + 112,97,116,104,46,106,111,105,110,40,41,46,99,1,0,0, + 0,0,0,0,0,2,0,0,0,4,0,0,0,83,0,0, + 0,115,37,0,0,0,103,0,0,124,0,0,93,27,0,125, + 1,0,124,1,0,114,6,0,124,1,0,106,0,0,116,1, + 0,131,1,0,145,2,0,113,6,0,83,114,4,0,0,0, + 41,2,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,41,2,218,2,46, + 48,218,4,112,97,114,116,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,250,10,60,108,105,115,116,99,111,109, + 112,62,52,0,0,0,115,2,0,0,0,9,1,122,30,95, + 112,97,116,104,95,106,111,105,110,46,60,108,111,99,97,108, + 115,62,46,60,108,105,115,116,99,111,109,112,62,41,2,218, + 8,112,97,116,104,95,115,101,112,218,4,106,111,105,110,41, + 1,218,10,112,97,116,104,95,112,97,114,116,115,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,10,95,112, + 97,116,104,95,106,111,105,110,50,0,0,0,115,4,0,0, + 0,0,2,15,1,114,28,0,0,0,99,1,0,0,0,0, + 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115, + 134,0,0,0,116,0,0,116,1,0,131,1,0,100,1,0, + 107,2,0,114,52,0,124,0,0,106,2,0,116,3,0,131, + 1,0,92,3,0,125,1,0,125,2,0,125,3,0,124,1, + 0,124,3,0,102,2,0,83,120,69,0,116,4,0,124,0, + 0,131,1,0,68,93,55,0,125,4,0,124,4,0,116,1, + 0,107,6,0,114,65,0,124,0,0,106,5,0,124,4,0, + 100,2,0,100,1,0,131,1,1,92,2,0,125,1,0,125, + 3,0,124,1,0,124,3,0,102,2,0,83,113,65,0,87, + 100,3,0,124,0,0,102,2,0,83,41,4,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,233,1, + 0,0,0,90,8,109,97,120,115,112,108,105,116,218,0,41, + 6,218,3,108,101,110,114,21,0,0,0,218,10,114,112,97, + 114,116,105,116,105,111,110,114,25,0,0,0,218,8,114,101, + 118,101,114,115,101,100,218,6,114,115,112,108,105,116,41,5, + 218,4,112,97,116,104,90,5,102,114,111,110,116,218,1,95, + 218,4,116,97,105,108,114,16,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,218,11,95,112,97,116, + 104,95,115,112,108,105,116,56,0,0,0,115,16,0,0,0, + 0,2,18,1,24,1,10,1,19,1,12,1,27,1,14,1, + 114,38,0,0,0,99,1,0,0,0,0,0,0,0,1,0, + 0,0,2,0,0,0,67,0,0,0,115,13,0,0,0,116, + 0,0,106,1,0,124,0,0,131,1,0,83,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,3,0,0,0,90,4,115,116,97,116,41,1,114,35,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,218,10,95,112,97,116,104,95,115,116,97,116,68,0,0, + 0,115,2,0,0,0,0,7,114,39,0,0,0,99,2,0, + 0,0,0,0,0,0,3,0,0,0,11,0,0,0,67,0, + 0,0,115,58,0,0,0,121,16,0,116,0,0,124,0,0, + 131,1,0,125,2,0,87,110,22,0,4,116,1,0,107,10, + 0,114,40,0,1,1,1,100,1,0,83,89,110,1,0,88, + 124,2,0,106,2,0,100,2,0,64,124,1,0,107,2,0, + 83,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,39, + 0,0,0,218,7,79,83,69,114,114,111,114,218,7,115,116, + 95,109,111,100,101,41,3,114,35,0,0,0,218,4,109,111, + 100,101,90,9,115,116,97,116,95,105,110,102,111,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,18,95,112, + 97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,101, + 78,0,0,0,115,10,0,0,0,0,2,3,1,16,1,13, + 1,9,1,114,43,0,0,0,99,1,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,67,0,0,0,115,13,0, + 0,0,116,0,0,124,0,0,100,1,0,131,2,0,83,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,43,0,0,0,41,1, + 114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,12,95,112,97,116,104,95,105,115,102,105, + 108,101,87,0,0,0,115,2,0,0,0,0,2,114,44,0, + 0,0,99,1,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,67,0,0,0,115,31,0,0,0,124,0,0,115, + 18,0,116,0,0,106,1,0,131,0,0,125,0,0,116,2, + 0,124,0,0,100,1,0,131,2,0,83,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,100,105,114,46,105,0,64, + 0,0,41,3,114,3,0,0,0,218,6,103,101,116,99,119, + 100,114,43,0,0,0,41,1,114,35,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,11,95,112, + 97,116,104,95,105,115,100,105,114,92,0,0,0,115,6,0, + 0,0,0,2,6,1,12,1,114,46,0,0,0,105,182,1, + 0,0,99,3,0,0,0,0,0,0,0,6,0,0,0,17, + 0,0,0,67,0,0,0,115,193,0,0,0,100,1,0,106, + 0,0,124,0,0,116,1,0,124,0,0,131,1,0,131,2, + 0,125,3,0,116,2,0,106,3,0,124,3,0,116,2,0, + 106,4,0,116,2,0,106,5,0,66,116,2,0,106,6,0, + 66,124,2,0,100,2,0,64,131,3,0,125,4,0,121,61, + 0,116,7,0,106,8,0,124,4,0,100,3,0,131,2,0, + 143,20,0,125,5,0,124,5,0,106,9,0,124,1,0,131, + 1,0,1,87,100,4,0,81,82,88,116,2,0,106,10,0, + 124,3,0,124,0,0,131,2,0,1,87,110,59,0,4,116, + 11,0,107,10,0,114,188,0,1,1,1,121,17,0,116,2, + 0,106,12,0,124,3,0,131,1,0,1,87,110,18,0,4, + 116,11,0,107,10,0,114,180,0,1,1,1,89,110,1,0, + 88,130,0,0,89,110,1,0,88,100,4,0,83,41,5,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,122,5,123,125,46,123,125,105,182,1,0,0,90, + 2,119,98,78,41,13,218,6,102,111,114,109,97,116,218,2, + 105,100,114,3,0,0,0,90,4,111,112,101,110,90,6,79, + 95,69,88,67,76,90,7,79,95,67,82,69,65,84,90,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,218,7,114,101, + 112,108,97,99,101,114,40,0,0,0,90,6,117,110,108,105, + 110,107,41,6,114,35,0,0,0,218,4,100,97,116,97,114, + 42,0,0,0,90,8,112,97,116,104,95,116,109,112,90,2, + 102,100,218,4,102,105,108,101,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,218,13,95,119,114,105,116,101,95, + 97,116,111,109,105,99,99,0,0,0,115,26,0,0,0,0, + 5,24,1,9,1,33,1,3,3,21,1,20,1,20,1,13, + 1,3,1,17,1,13,1,5,1,114,55,0,0,0,105,2, + 13,0,0,233,2,0,0,0,114,13,0,0,0,115,2,0, + 0,0,13,10,90,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,99,78,218,12,111,112,116,105,109,105,122,97,116,105,111, + 110,99,2,0,0,0,1,0,0,0,11,0,0,0,6,0, + 0,0,67,0,0,0,115,87,1,0,0,124,1,0,100,1, + 0,107,9,0,114,76,0,116,0,0,106,1,0,100,2,0, + 116,2,0,131,2,0,1,124,2,0,100,1,0,107,9,0, + 114,58,0,100,3,0,125,3,0,116,3,0,124,3,0,131, + 1,0,130,1,0,124,1,0,114,70,0,100,4,0,110,3, + 0,100,5,0,125,2,0,116,4,0,124,0,0,131,1,0, + 92,2,0,125,4,0,125,5,0,124,5,0,106,5,0,100, + 6,0,131,1,0,92,3,0,125,6,0,125,7,0,125,8, + 0,116,6,0,106,7,0,106,8,0,125,9,0,124,9,0, + 100,1,0,107,8,0,114,154,0,116,9,0,100,7,0,131, + 1,0,130,1,0,100,4,0,106,10,0,124,6,0,114,172, + 0,124,6,0,110,3,0,124,8,0,124,7,0,124,9,0, + 103,3,0,131,1,0,125,10,0,124,2,0,100,1,0,107, + 8,0,114,241,0,116,6,0,106,11,0,106,12,0,100,8, + 0,107,2,0,114,229,0,100,4,0,125,2,0,110,12,0, + 116,6,0,106,11,0,106,12,0,125,2,0,116,13,0,124, + 2,0,131,1,0,125,2,0,124,2,0,100,4,0,107,3, + 0,114,63,1,124,2,0,106,14,0,131,0,0,115,42,1, + 116,15,0,100,9,0,106,16,0,124,2,0,131,1,0,131, + 1,0,130,1,0,100,10,0,106,16,0,124,10,0,116,17, + 0,124,2,0,131,3,0,125,10,0,116,18,0,124,4,0, + 116,19,0,124,10,0,116,20,0,100,8,0,25,23,131,3, + 0,83,41,11,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,30,0,0,0,114,29,0,0,0,218,1, + 46,122,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,233,0,0,0,0,122,24,123,33, + 114,125,32,105,115,32,110,111,116,32,97,108,112,104,97,110, + 117,109,101,114,105,99,122,7,123,125,46,123,125,123,125,41, + 21,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,38,0,0,0,114,32,0,0,0,114,7,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,26,0,0,0,218,5,102,108,97,103,115,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, + 114,47,0,0,0,218,4,95,79,80,84,114,28,0,0,0, + 218,8,95,80,89,67,65,67,72,69,218,17,66,89,84,69, + 67,79,68,69,95,83,85,70,70,73,88,69,83,41,11,114, + 35,0,0,0,90,14,100,101,98,117,103,95,111,118,101,114, + 114,105,100,101,114,57,0,0,0,218,7,109,101,115,115,97, + 103,101,218,4,104,101,97,100,114,37,0,0,0,90,4,98, + 97,115,101,218,3,115,101,112,218,4,114,101,115,116,90,3, + 116,97,103,90,15,97,108,109,111,115,116,95,102,105,108,101, + 110,97,109,101,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,218,17,99,97,99,104,101,95,102,114,111,109,95, + 115,111,117,114,99,101,241,0,0,0,115,46,0,0,0,0, + 18,12,1,9,1,7,1,12,1,6,1,12,1,18,1,18, + 1,24,1,12,1,12,1,12,1,36,1,12,1,18,1,9, + 2,12,1,12,1,12,1,12,1,21,1,21,1,114,79,0, + 0,0,99,1,0,0,0,0,0,0,0,8,0,0,0,5, + 0,0,0,67,0,0,0,115,62,1,0,0,116,0,0,106, + 1,0,106,2,0,100,1,0,107,8,0,114,30,0,116,3, + 0,100,2,0,131,1,0,130,1,0,116,4,0,124,0,0, + 131,1,0,92,2,0,125,1,0,125,2,0,116,4,0,124, + 1,0,131,1,0,92,2,0,125,1,0,125,3,0,124,3, + 0,116,5,0,107,3,0,114,102,0,116,6,0,100,3,0, + 106,7,0,116,5,0,124,0,0,131,2,0,131,1,0,130, + 1,0,124,2,0,106,8,0,100,4,0,131,1,0,125,4, + 0,124,4,0,100,11,0,107,7,0,114,153,0,116,6,0, + 100,7,0,106,7,0,124,2,0,131,1,0,131,1,0,130, + 1,0,110,125,0,124,4,0,100,6,0,107,2,0,114,22, + 1,124,2,0,106,9,0,100,4,0,100,5,0,131,2,0, + 100,12,0,25,125,5,0,124,5,0,106,10,0,116,11,0, + 131,1,0,115,223,0,116,6,0,100,8,0,106,7,0,116, + 11,0,131,1,0,131,1,0,130,1,0,124,5,0,116,12, + 0,116,11,0,131,1,0,100,1,0,133,2,0,25,125,6, + 0,124,6,0,106,13,0,131,0,0,115,22,1,116,6,0, + 100,9,0,106,7,0,124,5,0,131,1,0,131,1,0,130, + 1,0,124,2,0,106,14,0,100,4,0,131,1,0,100,10, + 0,25,125,7,0,116,15,0,124,1,0,124,7,0,116,16, + 0,100,10,0,25,23,131,2,0,83,41,13,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,99,32,102,105,108, - 101,46,10,10,32,32,32,32,84,104,101,32,46,112,121,32, + 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,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,30, - 0,0,0,114,29,0,0,0,218,1,46,122,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,233,0,0,0,0,122,24,123,33,114,125,32,105,115,32, - 110,111,116,32,97,108,112,104,97,110,117,109,101,114,105,99, - 122,7,123,125,46,123,125,123,125,41,21,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,38,0,0,0, - 114,32,0,0,0,114,7,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,26,0,0,0,218, - 5,102,108,97,103,115,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,114,47,0,0,0,218, - 4,95,79,80,84,114,28,0,0,0,218,8,95,80,89,67, - 65,67,72,69,218,17,66,89,84,69,67,79,68,69,95,83, - 85,70,70,73,88,69,83,41,11,114,35,0,0,0,90,14, - 100,101,98,117,103,95,111,118,101,114,114,105,100,101,114,57, - 0,0,0,218,7,109,101,115,115,97,103,101,218,4,104,101, - 97,100,114,37,0,0,0,90,4,98,97,115,101,218,3,115, - 101,112,218,4,114,101,115,116,90,3,116,97,103,90,15,97, - 108,109,111,115,116,95,102,105,108,101,110,97,109,101,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,218,17,99, - 97,99,104,101,95,102,114,111,109,95,115,111,117,114,99,101, - 241,0,0,0,115,46,0,0,0,0,18,12,1,9,1,7, - 1,12,1,6,1,12,1,18,1,18,1,24,1,12,1,12, - 1,12,1,36,1,12,1,18,1,9,2,12,1,12,1,12, - 1,12,1,21,1,21,1,114,79,0,0,0,99,1,0,0, - 0,0,0,0,0,8,0,0,0,5,0,0,0,67,0,0, - 0,115,62,1,0,0,116,0,0,106,1,0,106,2,0,100, - 1,0,107,8,0,114,30,0,116,3,0,100,2,0,131,1, - 0,130,1,0,116,4,0,124,0,0,131,1,0,92,2,0, - 125,1,0,125,2,0,116,4,0,124,1,0,131,1,0,92, - 2,0,125,1,0,125,3,0,124,3,0,116,5,0,107,3, - 0,114,102,0,116,6,0,100,3,0,106,7,0,116,5,0, - 124,0,0,131,2,0,131,1,0,130,1,0,124,2,0,106, - 8,0,100,4,0,131,1,0,125,4,0,124,4,0,100,11, - 0,107,7,0,114,153,0,116,6,0,100,7,0,106,7,0, - 124,2,0,131,1,0,131,1,0,130,1,0,110,125,0,124, - 4,0,100,6,0,107,2,0,114,22,1,124,2,0,106,9, - 0,100,4,0,100,5,0,131,2,0,100,12,0,25,125,5, - 0,124,5,0,106,10,0,116,11,0,131,1,0,115,223,0, - 116,6,0,100,8,0,106,7,0,116,11,0,131,1,0,131, - 1,0,130,1,0,124,5,0,116,12,0,116,11,0,131,1, - 0,100,1,0,133,2,0,25,125,6,0,124,6,0,106,13, - 0,131,0,0,115,22,1,116,6,0,100,9,0,106,7,0, - 124,5,0,131,1,0,131,1,0,130,1,0,124,2,0,106, - 14,0,100,4,0,131,1,0,100,10,0,25,125,7,0,116, - 15,0,124,1,0,124,7,0,116,16,0,100,10,0,25,23, - 131,2,0,83,41,13,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,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,122,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, - 122,37,123,125,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,123,33,114,125,114,58,0,0,0,114,56,0,0, - 0,233,3,0,0,0,122,33,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,123,33,114,125,122,57,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, - 123,33,114,125,122,52,111,112,116,105,109,105,122,97,116,105, - 111,110,32,108,101,118,101,108,32,123,33,114,125,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,59,0,0,0,62, - 2,0,0,0,114,56,0,0,0,114,80,0,0,0,233,254, - 255,255,255,41,17,114,7,0,0,0,114,64,0,0,0,114, - 65,0,0,0,114,66,0,0,0,114,38,0,0,0,114,73, - 0,0,0,114,71,0,0,0,114,47,0,0,0,218,5,99, - 111,117,110,116,114,34,0,0,0,114,9,0,0,0,114,72, - 0,0,0,114,31,0,0,0,114,70,0,0,0,218,9,112, - 97,114,116,105,116,105,111,110,114,28,0,0,0,218,15,83, - 79,85,82,67,69,95,83,85,70,70,73,88,69,83,41,8, - 114,35,0,0,0,114,76,0,0,0,90,16,112,121,99,97, - 99,104,101,95,102,105,108,101,110,97,109,101,90,7,112,121, - 99,97,99,104,101,90,9,100,111,116,95,99,111,117,110,116, - 114,57,0,0,0,90,9,111,112,116,95,108,101,118,101,108, - 90,13,98,97,115,101,95,102,105,108,101,110,97,109,101,114, + 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,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, + 122,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,122,37,123,125,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,123,33,114,125,114,58,0, + 0,0,114,56,0,0,0,233,3,0,0,0,122,33,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,123,33,114,125,122, + 57,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,123,33,114,125,122,52,111,112,116,105, + 109,105,122,97,116,105,111,110,32,108,101,118,101,108,32,123, + 33,114,125,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,59,0,0,0,62,2,0,0,0,114,56,0,0,0,114, + 80,0,0,0,233,254,255,255,255,41,17,114,7,0,0,0, + 114,64,0,0,0,114,65,0,0,0,114,66,0,0,0,114, + 38,0,0,0,114,73,0,0,0,114,71,0,0,0,114,47, + 0,0,0,218,5,99,111,117,110,116,114,34,0,0,0,114, + 9,0,0,0,114,72,0,0,0,114,31,0,0,0,114,70, + 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,28, + 0,0,0,218,15,83,79,85,82,67,69,95,83,85,70,70, + 73,88,69,83,41,8,114,35,0,0,0,114,76,0,0,0, + 90,16,112,121,99,97,99,104,101,95,102,105,108,101,110,97, + 109,101,90,7,112,121,99,97,99,104,101,90,9,100,111,116, + 95,99,111,117,110,116,114,57,0,0,0,90,9,111,112,116, + 95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,108, + 101,110,97,109,101,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,17,115,111,117,114,99,101,95,102,114,111, + 109,95,99,97,99,104,101,29,1,0,0,115,44,0,0,0, + 0,9,18,1,12,1,18,1,18,1,12,1,9,1,15,1, + 15,1,12,1,9,1,15,1,12,1,22,1,15,1,9,1, + 12,1,22,1,12,1,9,1,12,1,19,1,114,85,0,0, + 0,99,1,0,0,0,0,0,0,0,5,0,0,0,12,0, + 0,0,67,0,0,0,115,164,0,0,0,116,0,0,124,0, + 0,131,1,0,100,1,0,107,2,0,114,22,0,100,2,0, + 83,124,0,0,106,1,0,100,3,0,131,1,0,92,3,0, + 125,1,0,125,2,0,125,3,0,124,1,0,12,115,81,0, + 124,3,0,106,2,0,131,0,0,100,7,0,100,8,0,133, + 2,0,25,100,6,0,107,3,0,114,85,0,124,0,0,83, + 121,16,0,116,3,0,124,0,0,131,1,0,125,4,0,87, + 110,40,0,4,116,4,0,116,5,0,102,2,0,107,10,0, + 114,143,0,1,1,1,124,0,0,100,2,0,100,9,0,133, + 2,0,25,125,4,0,89,110,1,0,88,116,6,0,124,4, + 0,131,1,0,114,160,0,124,4,0,83,124,0,0,83,41, + 10,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, + 59,0,0,0,78,114,58,0,0,0,114,80,0,0,0,114, + 29,0,0,0,90,2,112,121,233,253,255,255,255,233,255,255, + 255,255,114,87,0,0,0,41,7,114,31,0,0,0,114,32, + 0,0,0,218,5,108,111,119,101,114,114,85,0,0,0,114, + 66,0,0,0,114,71,0,0,0,114,44,0,0,0,41,5, + 218,13,98,121,116,101,99,111,100,101,95,112,97,116,104,114, + 78,0,0,0,114,36,0,0,0,90,9,101,120,116,101,110, + 115,105,111,110,218,11,115,111,117,114,99,101,95,112,97,116, + 104,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, + 218,15,95,103,101,116,95,115,111,117,114,99,101,102,105,108, + 101,62,1,0,0,115,20,0,0,0,0,7,18,1,4,1, + 24,1,35,1,4,1,3,1,16,1,19,1,21,1,114,91, + 0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,0, + 11,0,0,0,67,0,0,0,115,92,0,0,0,124,0,0, + 106,0,0,116,1,0,116,2,0,131,1,0,131,1,0,114, + 59,0,121,14,0,116,3,0,124,0,0,131,1,0,83,87, + 113,88,0,4,116,4,0,107,10,0,114,55,0,1,1,1, + 89,113,88,0,88,110,29,0,124,0,0,106,0,0,116,1, + 0,116,5,0,131,1,0,131,1,0,114,84,0,124,0,0, + 83,100,0,0,83,100,0,0,83,41,1,78,41,6,218,8, + 101,110,100,115,119,105,116,104,218,5,116,117,112,108,101,114, + 84,0,0,0,114,79,0,0,0,114,66,0,0,0,114,74, + 0,0,0,41,1,218,8,102,105,108,101,110,97,109,101,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,11, + 95,103,101,116,95,99,97,99,104,101,100,81,1,0,0,115, + 16,0,0,0,0,1,21,1,3,1,14,1,13,1,8,1, + 21,1,4,2,114,95,0,0,0,99,1,0,0,0,0,0, + 0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,60, + 0,0,0,121,19,0,116,0,0,124,0,0,131,1,0,106, + 1,0,125,1,0,87,110,24,0,4,116,2,0,107,10,0, + 114,45,0,1,1,1,100,1,0,125,1,0,89,110,1,0, + 88,124,1,0,100,2,0,79,125,1,0,124,1,0,83,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,105,182,1,0,0,233,128,0,0,0, + 41,3,114,39,0,0,0,114,41,0,0,0,114,40,0,0, + 0,41,2,114,35,0,0,0,114,42,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,218,10,95,99, + 97,108,99,95,109,111,100,101,93,1,0,0,115,12,0,0, + 0,0,2,3,1,19,1,13,1,11,3,10,1,114,97,0, + 0,0,218,9,118,101,114,98,111,115,105,116,121,114,29,0, + 0,0,99,1,0,0,0,1,0,0,0,3,0,0,0,4, + 0,0,0,71,0,0,0,115,75,0,0,0,116,0,0,106, + 1,0,106,2,0,124,1,0,107,5,0,114,71,0,124,0, + 0,106,3,0,100,6,0,131,1,0,115,43,0,100,3,0, + 124,0,0,23,125,0,0,116,4,0,124,0,0,106,5,0, + 124,2,0,140,0,0,100,4,0,116,0,0,106,6,0,131, + 1,1,1,100,5,0,83,41,7,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,250,1,35,250,7,105,109,112, + 111,114,116,32,122,2,35,32,114,54,0,0,0,78,41,2, + 114,99,0,0,0,114,100,0,0,0,41,7,114,7,0,0, + 0,114,67,0,0,0,218,7,118,101,114,98,111,115,101,114, + 9,0,0,0,218,5,112,114,105,110,116,114,47,0,0,0, + 218,6,115,116,100,101,114,114,41,3,114,75,0,0,0,114, + 98,0,0,0,218,4,97,114,103,115,114,4,0,0,0,114, + 4,0,0,0,114,5,0,0,0,218,16,95,118,101,114,98, + 111,115,101,95,109,101,115,115,97,103,101,105,1,0,0,115, + 8,0,0,0,0,2,18,1,15,1,10,1,114,105,0,0, + 0,99,1,0,0,0,0,0,0,0,3,0,0,0,11,0, + 0,0,3,0,0,0,115,84,0,0,0,100,1,0,135,0, + 0,102,1,0,100,2,0,100,3,0,134,1,0,125,1,0, + 121,13,0,116,0,0,106,1,0,125,2,0,87,110,30,0, + 4,116,2,0,107,10,0,114,66,0,1,1,1,100,4,0, + 100,5,0,132,0,0,125,2,0,89,110,1,0,88,124,2, + 0,124,1,0,136,0,0,131,2,0,1,124,1,0,83,41, + 6,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,78, + 99,2,0,0,0,0,0,0,0,4,0,0,0,5,0,0, + 0,31,0,0,0,115,89,0,0,0,124,1,0,100,0,0, + 107,8,0,114,24,0,124,0,0,106,0,0,125,1,0,110, + 46,0,124,0,0,106,0,0,124,1,0,107,3,0,114,70, + 0,116,1,0,100,1,0,124,0,0,106,0,0,124,1,0, + 102,2,0,22,100,2,0,124,1,0,131,1,1,130,1,0, + 136,0,0,124,0,0,124,1,0,124,2,0,124,3,0,142, + 2,0,83,41,3,78,122,30,108,111,97,100,101,114,32,102, + 111,114,32,37,115,32,99,97,110,110,111,116,32,104,97,110, + 100,108,101,32,37,115,218,4,110,97,109,101,41,2,114,106, + 0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114, + 41,4,218,4,115,101,108,102,114,106,0,0,0,114,104,0, + 0,0,90,6,107,119,97,114,103,115,41,1,218,6,109,101, + 116,104,111,100,114,4,0,0,0,114,5,0,0,0,218,19, + 95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,112, + 112,101,114,121,1,0,0,115,12,0,0,0,0,1,12,1, + 12,1,15,1,6,1,25,1,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,99,2,0,0,0,0,0,0,0,3,0,0,0,7, + 0,0,0,83,0,0,0,115,92,0,0,0,120,66,0,100, + 1,0,100,2,0,100,3,0,100,4,0,103,4,0,68,93, + 46,0,125,2,0,116,0,0,124,1,0,124,2,0,131,2, + 0,114,19,0,116,1,0,124,0,0,124,2,0,116,2,0, + 124,1,0,124,2,0,131,2,0,131,3,0,1,113,19,0, + 87,124,0,0,106,3,0,106,4,0,124,1,0,106,3,0, + 131,1,0,1,100,0,0,83,41,5,78,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,90,3,110,101,119,90,3, + 111,108,100,114,52,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,218,5,95,119,114,97,112,132,1, + 0,0,115,8,0,0,0,0,1,25,1,15,1,29,1,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,41,3,218,10,95, + 98,111,111,116,115,116,114,97,112,114,120,0,0,0,218,9, + 78,97,109,101,69,114,114,111,114,41,3,114,109,0,0,0, + 114,110,0,0,0,114,120,0,0,0,114,4,0,0,0,41, + 1,114,109,0,0,0,114,5,0,0,0,218,11,95,99,104, + 101,99,107,95,110,97,109,101,113,1,0,0,115,14,0,0, + 0,0,8,21,7,3,1,13,1,13,2,17,5,13,1,114, + 123,0,0,0,99,2,0,0,0,0,0,0,0,5,0,0, + 0,4,0,0,0,67,0,0,0,115,84,0,0,0,124,0, + 0,106,0,0,124,1,0,131,1,0,92,2,0,125,2,0, + 125,3,0,124,2,0,100,1,0,107,8,0,114,80,0,116, + 1,0,124,3,0,131,1,0,114,80,0,100,2,0,125,4, + 0,116,2,0,106,3,0,124,4,0,106,4,0,124,3,0, + 100,3,0,25,131,1,0,116,5,0,131,2,0,1,124,2, + 0,83,41,4,122,155,84,114,121,32,116,111,32,102,105,110, + 100,32,97,32,108,111,97,100,101,114,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,98,121,32,100,101,108,101,103,97,116,105,110, + 103,32,116,111,10,32,32,32,32,115,101,108,102,46,102,105, + 110,100,95,108,111,97,100,101,114,40,41,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,32,105,110,32,102, + 97,118,111,114,32,111,102,32,102,105,110,100,101,114,46,102, + 105,110,100,95,115,112,101,99,40,41,46,10,10,32,32,32, + 32,78,122,44,78,111,116,32,105,109,112,111,114,116,105,110, + 103,32,100,105,114,101,99,116,111,114,121,32,123,125,58,32, + 109,105,115,115,105,110,103,32,95,95,105,110,105,116,95,95, + 114,59,0,0,0,41,6,218,11,102,105,110,100,95,108,111, + 97,100,101,114,114,31,0,0,0,114,60,0,0,0,114,61, + 0,0,0,114,47,0,0,0,218,13,73,109,112,111,114,116, + 87,97,114,110,105,110,103,41,5,114,108,0,0,0,218,8, + 102,117,108,108,110,97,109,101,218,6,108,111,97,100,101,114, + 218,8,112,111,114,116,105,111,110,115,218,3,109,115,103,114, 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,17, - 115,111,117,114,99,101,95,102,114,111,109,95,99,97,99,104, - 101,29,1,0,0,115,44,0,0,0,0,9,18,1,12,1, - 18,1,18,1,12,1,9,1,15,1,15,1,12,1,9,1, - 15,1,12,1,22,1,15,1,9,1,12,1,22,1,12,1, - 9,1,12,1,19,1,114,85,0,0,0,99,1,0,0,0, - 0,0,0,0,5,0,0,0,12,0,0,0,67,0,0,0, - 115,164,0,0,0,116,0,0,124,0,0,131,1,0,100,1, - 0,107,2,0,114,22,0,100,2,0,83,124,0,0,106,1, - 0,100,3,0,131,1,0,92,3,0,125,1,0,125,2,0, - 125,3,0,124,1,0,12,115,81,0,124,3,0,106,2,0, - 131,0,0,100,7,0,100,8,0,133,2,0,25,100,6,0, - 107,3,0,114,85,0,124,0,0,83,121,16,0,116,3,0, - 124,0,0,131,1,0,125,4,0,87,110,40,0,4,116,4, - 0,116,5,0,102,2,0,107,10,0,114,143,0,1,1,1, - 124,0,0,100,2,0,100,9,0,133,2,0,25,125,4,0, - 89,110,1,0,88,116,6,0,124,4,0,131,1,0,114,160, - 0,124,4,0,83,124,0,0,83,41,10,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,59,0,0,0,78,114, - 58,0,0,0,114,80,0,0,0,114,29,0,0,0,90,2, - 112,121,233,253,255,255,255,233,255,255,255,255,114,87,0,0, - 0,41,7,114,31,0,0,0,114,32,0,0,0,218,5,108, - 111,119,101,114,114,85,0,0,0,114,66,0,0,0,114,71, - 0,0,0,114,44,0,0,0,41,5,218,13,98,121,116,101, - 99,111,100,101,95,112,97,116,104,114,78,0,0,0,114,36, - 0,0,0,90,9,101,120,116,101,110,115,105,111,110,218,11, - 115,111,117,114,99,101,95,112,97,116,104,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,218,15,95,103,101,116, - 95,115,111,117,114,99,101,102,105,108,101,62,1,0,0,115, - 20,0,0,0,0,7,18,1,4,1,24,1,35,1,4,1, - 3,1,16,1,19,1,21,1,114,91,0,0,0,99,1,0, - 0,0,0,0,0,0,1,0,0,0,11,0,0,0,67,0, - 0,0,115,92,0,0,0,124,0,0,106,0,0,116,1,0, - 116,2,0,131,1,0,131,1,0,114,59,0,121,14,0,116, - 3,0,124,0,0,131,1,0,83,87,113,88,0,4,116,4, - 0,107,10,0,114,55,0,1,1,1,89,113,88,0,88,110, - 29,0,124,0,0,106,0,0,116,1,0,116,5,0,131,1, - 0,131,1,0,114,84,0,124,0,0,83,100,0,0,83,100, - 0,0,83,41,1,78,41,6,218,8,101,110,100,115,119,105, - 116,104,218,5,116,117,112,108,101,114,84,0,0,0,114,79, - 0,0,0,114,66,0,0,0,114,74,0,0,0,41,1,218, - 8,102,105,108,101,110,97,109,101,114,4,0,0,0,114,4, - 0,0,0,114,5,0,0,0,218,11,95,103,101,116,95,99, - 97,99,104,101,100,81,1,0,0,115,16,0,0,0,0,1, - 21,1,3,1,14,1,13,1,8,1,21,1,4,2,114,95, - 0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,0, - 11,0,0,0,67,0,0,0,115,60,0,0,0,121,19,0, - 116,0,0,124,0,0,131,1,0,106,1,0,125,1,0,87, - 110,24,0,4,116,2,0,107,10,0,114,45,0,1,1,1, - 100,1,0,125,1,0,89,110,1,0,88,124,1,0,100,2, - 0,79,125,1,0,124,1,0,83,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, - 105,182,1,0,0,233,128,0,0,0,41,3,114,39,0,0, - 0,114,41,0,0,0,114,40,0,0,0,41,2,114,35,0, - 0,0,114,42,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,10,95,99,97,108,99,95,109,111, - 100,101,93,1,0,0,115,12,0,0,0,0,2,3,1,19, - 1,13,1,11,3,10,1,114,97,0,0,0,218,9,118,101, - 114,98,111,115,105,116,121,114,29,0,0,0,99,1,0,0, - 0,1,0,0,0,3,0,0,0,4,0,0,0,71,0,0, - 0,115,75,0,0,0,116,0,0,106,1,0,106,2,0,124, - 1,0,107,5,0,114,71,0,124,0,0,106,3,0,100,6, - 0,131,1,0,115,43,0,100,3,0,124,0,0,23,125,0, - 0,116,4,0,124,0,0,106,5,0,124,2,0,140,0,0, - 100,4,0,116,0,0,106,6,0,131,1,1,1,100,5,0, - 83,41,7,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,250,1,35,250,7,105,109,112,111,114,116,32,122,2, - 35,32,114,54,0,0,0,78,41,2,114,99,0,0,0,114, - 100,0,0,0,41,7,114,7,0,0,0,114,67,0,0,0, - 218,7,118,101,114,98,111,115,101,114,9,0,0,0,218,5, - 112,114,105,110,116,114,47,0,0,0,218,6,115,116,100,101, - 114,114,41,3,114,75,0,0,0,114,98,0,0,0,218,4, - 97,114,103,115,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101, - 115,115,97,103,101,105,1,0,0,115,8,0,0,0,0,2, - 18,1,15,1,10,1,114,105,0,0,0,99,1,0,0,0, - 0,0,0,0,3,0,0,0,11,0,0,0,3,0,0,0, - 115,84,0,0,0,100,1,0,135,0,0,102,1,0,100,2, - 0,100,3,0,134,1,0,125,1,0,121,13,0,116,0,0, - 106,1,0,125,2,0,87,110,30,0,4,116,2,0,107,10, - 0,114,66,0,1,1,1,100,4,0,100,5,0,132,0,0, - 125,2,0,89,110,1,0,88,124,2,0,124,1,0,136,0, - 0,131,2,0,1,124,1,0,83,41,6,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,78,99,2,0,0,0,0, - 0,0,0,4,0,0,0,5,0,0,0,31,0,0,0,115, - 80,0,0,0,124,1,0,100,0,0,107,8,0,114,24,0, - 124,0,0,106,0,0,125,1,0,110,37,0,124,0,0,106, - 0,0,124,1,0,107,3,0,114,61,0,116,1,0,100,1, - 0,124,1,0,22,100,2,0,124,1,0,131,1,1,130,1, - 0,136,0,0,124,0,0,124,1,0,124,2,0,124,3,0, - 142,2,0,83,41,3,78,122,23,108,111,97,100,101,114,32, - 99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,115, - 218,4,110,97,109,101,41,2,114,106,0,0,0,218,11,73, - 109,112,111,114,116,69,114,114,111,114,41,4,218,4,115,101, - 108,102,114,106,0,0,0,114,104,0,0,0,90,6,107,119, - 97,114,103,115,41,1,218,6,109,101,116,104,111,100,114,4, - 0,0,0,114,5,0,0,0,218,19,95,99,104,101,99,107, - 95,110,97,109,101,95,119,114,97,112,112,101,114,121,1,0, - 0,115,10,0,0,0,0,1,12,1,12,1,15,1,22,1, - 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,99,2,0,0,0,0, - 0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,115, - 92,0,0,0,120,66,0,100,1,0,100,2,0,100,3,0, - 100,4,0,103,4,0,68,93,46,0,125,2,0,116,0,0, - 124,1,0,124,2,0,131,2,0,114,19,0,116,1,0,124, - 0,0,124,2,0,116,2,0,124,1,0,124,2,0,131,2, - 0,131,3,0,1,113,19,0,87,124,0,0,106,3,0,106, - 4,0,124,1,0,106,3,0,131,1,0,1,100,0,0,83, - 41,5,78,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,90,3,110,101,119,90,3,111,108,100,114,52,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, - 5,95,119,114,97,112,131,1,0,0,115,8,0,0,0,0, - 1,25,1,15,1,29,1,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,41,3,218,10,95,98,111,111,116,115,116,114,97, - 112,114,120,0,0,0,218,9,78,97,109,101,69,114,114,111, - 114,41,3,114,109,0,0,0,114,110,0,0,0,114,120,0, - 0,0,114,4,0,0,0,41,1,114,109,0,0,0,114,5, - 0,0,0,218,11,95,99,104,101,99,107,95,110,97,109,101, - 113,1,0,0,115,14,0,0,0,0,8,21,6,3,1,13, - 1,13,2,17,5,13,1,114,123,0,0,0,99,2,0,0, - 0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0, - 0,115,84,0,0,0,124,0,0,106,0,0,124,1,0,131, - 1,0,92,2,0,125,2,0,125,3,0,124,2,0,100,1, - 0,107,8,0,114,80,0,116,1,0,124,3,0,131,1,0, - 114,80,0,100,2,0,125,4,0,116,2,0,106,3,0,124, - 4,0,106,4,0,124,3,0,100,3,0,25,131,1,0,116, - 5,0,131,2,0,1,124,2,0,83,41,4,122,155,84,114, - 121,32,116,111,32,102,105,110,100,32,97,32,108,111,97,100, - 101,114,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,98,121,32,100, - 101,108,101,103,97,116,105,110,103,32,116,111,10,32,32,32, - 32,115,101,108,102,46,102,105,110,100,95,108,111,97,100,101, - 114,40,41,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,32,105,110,32,102,97,118,111,114,32,111,102,32, - 102,105,110,100,101,114,46,102,105,110,100,95,115,112,101,99, - 40,41,46,10,10,32,32,32,32,78,122,44,78,111,116,32, - 105,109,112,111,114,116,105,110,103,32,100,105,114,101,99,116, - 111,114,121,32,123,125,58,32,109,105,115,115,105,110,103,32, - 95,95,105,110,105,116,95,95,114,59,0,0,0,41,6,218, - 11,102,105,110,100,95,108,111,97,100,101,114,114,31,0,0, - 0,114,60,0,0,0,114,61,0,0,0,114,47,0,0,0, - 218,13,73,109,112,111,114,116,87,97,114,110,105,110,103,41, - 5,114,108,0,0,0,218,8,102,117,108,108,110,97,109,101, - 218,6,108,111,97,100,101,114,218,8,112,111,114,116,105,111, - 110,115,218,3,109,115,103,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,17,95,102,105,110,100,95,109,111, - 100,117,108,101,95,115,104,105,109,140,1,0,0,115,10,0, - 0,0,0,10,21,1,24,1,6,1,29,1,114,130,0,0, - 0,99,4,0,0,0,0,0,0,0,11,0,0,0,19,0, - 0,0,67,0,0,0,115,228,1,0,0,105,0,0,125,4, - 0,124,2,0,100,1,0,107,9,0,114,31,0,124,2,0, - 124,4,0,100,2,0,60,110,6,0,100,3,0,125,2,0, - 124,3,0,100,1,0,107,9,0,114,59,0,124,3,0,124, - 4,0,100,4,0,60,124,0,0,100,1,0,100,5,0,133, - 2,0,25,125,5,0,124,0,0,100,5,0,100,6,0,133, - 2,0,25,125,6,0,124,0,0,100,6,0,100,7,0,133, - 2,0,25,125,7,0,124,5,0,116,0,0,107,3,0,114, - 165,0,100,8,0,106,1,0,124,2,0,124,5,0,131,2, - 0,125,8,0,116,2,0,124,8,0,131,1,0,1,116,3, - 0,124,8,0,124,4,0,141,1,0,130,1,0,110,113,0, - 116,4,0,124,6,0,131,1,0,100,5,0,107,3,0,114, - 223,0,100,9,0,106,1,0,124,2,0,131,1,0,125,8, - 0,116,2,0,124,8,0,131,1,0,1,116,5,0,124,8, - 0,131,1,0,130,1,0,110,55,0,116,4,0,124,7,0, - 131,1,0,100,5,0,107,3,0,114,22,1,100,10,0,106, - 1,0,124,2,0,131,1,0,125,8,0,116,2,0,124,8, - 0,131,1,0,1,116,5,0,124,8,0,131,1,0,130,1, - 0,124,1,0,100,1,0,107,9,0,114,214,1,121,20,0, - 116,6,0,124,1,0,100,11,0,25,131,1,0,125,9,0, - 87,110,18,0,4,116,7,0,107,10,0,114,74,1,1,1, - 1,89,110,59,0,88,116,8,0,124,6,0,131,1,0,124, - 9,0,107,3,0,114,133,1,100,12,0,106,1,0,124,2, - 0,131,1,0,125,8,0,116,2,0,124,8,0,131,1,0, - 1,116,3,0,124,8,0,124,4,0,141,1,0,130,1,0, - 121,18,0,124,1,0,100,13,0,25,100,14,0,64,125,10, - 0,87,110,18,0,4,116,7,0,107,10,0,114,171,1,1, - 1,1,89,110,43,0,88,116,8,0,124,7,0,131,1,0, - 124,10,0,107,3,0,114,214,1,116,3,0,100,12,0,106, - 1,0,124,2,0,131,1,0,124,4,0,141,1,0,130,1, - 0,124,0,0,100,7,0,100,1,0,133,2,0,25,83,41, - 15,97,122,1,0,0,86,97,108,105,100,97,116,101,32,116, - 104,101,32,104,101,97,100,101,114,32,111,102,32,116,104,101, - 32,112,97,115,115,101,100,45,105,110,32,98,121,116,101,99, - 111,100,101,32,97,103,97,105,110,115,116,32,115,111,117,114, - 99,101,95,115,116,97,116,115,32,40,105,102,10,32,32,32, - 32,103,105,118,101,110,41,32,97,110,100,32,114,101,116,117, - 114,110,105,110,103,32,116,104,101,32,98,121,116,101,99,111, - 100,101,32,116,104,97,116,32,99,97,110,32,98,101,32,99, - 111,109,112,105,108,101,100,32,98,121,32,99,111,109,112,105, - 108,101,40,41,46,10,10,32,32,32,32,65,108,108,32,111, - 116,104,101,114,32,97,114,103,117,109,101,110,116,115,32,97, - 114,101,32,117,115,101,100,32,116,111,32,101,110,104,97,110, - 99,101,32,101,114,114,111,114,32,114,101,112,111,114,116,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,116,104,101,32,98,121,116,101,99,111,100, - 101,32,105,115,10,32,32,32,32,102,111,117,110,100,32,116, - 111,32,98,101,32,115,116,97,108,101,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,10,32,32,32,32, - 116,114,117,110,99,97,116,101,100,46,10,10,32,32,32,32, - 78,114,106,0,0,0,122,10,60,98,121,116,101,99,111,100, - 101,62,114,35,0,0,0,114,12,0,0,0,233,8,0,0, - 0,233,12,0,0,0,122,30,98,97,100,32,109,97,103,105, - 99,32,110,117,109,98,101,114,32,105,110,32,123,33,114,125, - 58,32,123,33,114,125,122,43,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,116,105,109,101,115,116,97,109,112,32,105,110,32,123, - 33,114,125,122,48,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,115, - 105,122,101,32,111,102,32,115,111,117,114,99,101,32,105,110, - 32,123,33,114,125,218,5,109,116,105,109,101,122,26,98,121, - 116,101,99,111,100,101,32,105,115,32,115,116,97,108,101,32, - 102,111,114,32,123,33,114,125,218,4,115,105,122,101,108,3, - 0,0,0,255,127,255,127,3,0,41,9,218,12,77,65,71, - 73,67,95,78,85,77,66,69,82,114,47,0,0,0,114,105, - 0,0,0,114,107,0,0,0,114,31,0,0,0,218,8,69, - 79,70,69,114,114,111,114,114,14,0,0,0,218,8,75,101, - 121,69,114,114,111,114,114,19,0,0,0,41,11,114,53,0, - 0,0,218,12,115,111,117,114,99,101,95,115,116,97,116,115, - 114,106,0,0,0,114,35,0,0,0,90,11,101,120,99,95, - 100,101,116,97,105,108,115,90,5,109,97,103,105,99,90,13, - 114,97,119,95,116,105,109,101,115,116,97,109,112,90,8,114, - 97,119,95,115,105,122,101,114,75,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,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,25,95,118,97,108,105,100,97,116, - 101,95,98,121,116,101,99,111,100,101,95,104,101,97,100,101, - 114,157,1,0,0,115,76,0,0,0,0,11,6,1,12,1, - 13,3,6,1,12,1,10,1,16,1,16,1,16,1,12,1, - 18,1,10,1,18,1,18,1,15,1,10,1,15,1,18,1, - 15,1,10,1,12,1,12,1,3,1,20,1,13,1,5,2, - 18,1,15,1,10,1,15,1,3,1,18,1,13,1,5,2, - 18,1,15,1,9,1,114,141,0,0,0,99,4,0,0,0, - 0,0,0,0,5,0,0,0,6,0,0,0,67,0,0,0, - 115,112,0,0,0,116,0,0,106,1,0,124,0,0,131,1, - 0,125,4,0,116,2,0,124,4,0,116,3,0,131,2,0, - 114,75,0,116,4,0,100,1,0,124,2,0,131,2,0,1, - 124,3,0,100,2,0,107,9,0,114,71,0,116,5,0,106, - 6,0,124,4,0,124,3,0,131,2,0,1,124,4,0,83, - 116,7,0,100,3,0,106,8,0,124,2,0,131,1,0,100, - 4,0,124,1,0,100,5,0,124,2,0,131,1,2,130,1, - 0,100,2,0,83,41,6,122,60,67,111,109,112,105,108,101, - 32,98,121,116,101,99,111,100,101,32,97,115,32,114,101,116, - 117,114,110,101,100,32,98,121,32,95,118,97,108,105,100,97, - 116,101,95,98,121,116,101,99,111,100,101,95,104,101,97,100, - 101,114,40,41,46,122,21,99,111,100,101,32,111,98,106,101, - 99,116,32,102,114,111,109,32,123,33,114,125,78,122,23,78, - 111,110,45,99,111,100,101,32,111,98,106,101,99,116,32,105, - 110,32,123,33,114,125,114,106,0,0,0,114,35,0,0,0, - 41,9,218,7,109,97,114,115,104,97,108,90,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,105,0,0,0,218, - 4,95,105,109,112,90,16,95,102,105,120,95,99,111,95,102, - 105,108,101,110,97,109,101,114,107,0,0,0,114,47,0,0, - 0,41,5,114,53,0,0,0,114,106,0,0,0,114,89,0, - 0,0,114,90,0,0,0,218,4,99,111,100,101,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,17,95,99, - 111,109,112,105,108,101,95,98,121,116,101,99,111,100,101,212, - 1,0,0,115,16,0,0,0,0,2,15,1,15,1,13,1, - 12,1,16,1,4,2,18,1,114,147,0,0,0,114,59,0, - 0,0,99,3,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,67,0,0,0,115,76,0,0,0,116,0,0,116, - 1,0,131,1,0,125,3,0,124,3,0,106,2,0,116,3, - 0,124,1,0,131,1,0,131,1,0,1,124,3,0,106,2, - 0,116,3,0,124,2,0,131,1,0,131,1,0,1,124,3, - 0,106,2,0,116,4,0,106,5,0,124,0,0,131,1,0, - 131,1,0,1,124,3,0,83,41,1,122,80,67,111,109,112, - 105,108,101,32,97,32,99,111,100,101,32,111,98,106,101,99, - 116,32,105,110,116,111,32,98,121,116,101,99,111,100,101,32, - 102,111,114,32,119,114,105,116,105,110,103,32,111,117,116,32, - 116,111,32,97,32,98,121,116,101,45,99,111,109,112,105,108, - 101,100,10,32,32,32,32,102,105,108,101,46,41,6,218,9, - 98,121,116,101,97,114,114,97,121,114,135,0,0,0,218,6, - 101,120,116,101,110,100,114,17,0,0,0,114,142,0,0,0, - 90,5,100,117,109,112,115,41,4,114,146,0,0,0,114,133, - 0,0,0,114,140,0,0,0,114,53,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,17,95,99, - 111,100,101,95,116,111,95,98,121,116,101,99,111,100,101,224, - 1,0,0,115,10,0,0,0,0,3,12,1,19,1,19,1, - 22,1,114,150,0,0,0,99,1,0,0,0,0,0,0,0, - 5,0,0,0,4,0,0,0,67,0,0,0,115,89,0,0, - 0,100,1,0,100,2,0,108,0,0,125,1,0,116,1,0, - 106,2,0,124,0,0,131,1,0,106,3,0,125,2,0,124, - 1,0,106,4,0,124,2,0,131,1,0,125,3,0,116,1, - 0,106,5,0,100,2,0,100,3,0,131,2,0,125,4,0, - 124,4,0,106,6,0,124,0,0,106,6,0,124,3,0,100, - 1,0,25,131,1,0,131,1,0,83,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,59,0,0,0,78,84,41,7, - 218,8,116,111,107,101,110,105,122,101,114,49,0,0,0,90, - 7,66,121,116,101,115,73,79,90,8,114,101,97,100,108,105, - 110,101,90,15,100,101,116,101,99,116,95,101,110,99,111,100, - 105,110,103,90,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,151,0,0,0,90,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,90,15,110,101, - 119,108,105,110,101,95,100,101,99,111,100,101,114,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,13,100,101, - 99,111,100,101,95,115,111,117,114,99,101,234,1,0,0,115, - 10,0,0,0,0,5,12,1,18,1,15,1,18,1,114,155, - 0,0,0,114,127,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,99,2,0,0,0,2,0,0,0,9,0,0, - 0,19,0,0,0,67,0,0,0,115,89,1,0,0,124,1, - 0,100,1,0,107,8,0,114,73,0,100,2,0,125,1,0, - 116,0,0,124,2,0,100,3,0,131,2,0,114,73,0,121, - 19,0,124,2,0,106,1,0,124,0,0,131,1,0,125,1, - 0,87,110,18,0,4,116,2,0,107,10,0,114,72,0,1, - 1,1,89,110,1,0,88,116,3,0,106,4,0,124,0,0, - 124,2,0,100,4,0,124,1,0,131,2,1,125,4,0,100, - 5,0,124,4,0,95,5,0,124,2,0,100,1,0,107,8, - 0,114,194,0,120,73,0,116,6,0,131,0,0,68,93,58, - 0,92,2,0,125,5,0,125,6,0,124,1,0,106,7,0, - 116,8,0,124,6,0,131,1,0,131,1,0,114,128,0,124, - 5,0,124,0,0,124,1,0,131,2,0,125,2,0,124,2, - 0,124,4,0,95,9,0,80,113,128,0,87,100,1,0,83, - 124,3,0,116,10,0,107,8,0,114,23,1,116,0,0,124, - 2,0,100,6,0,131,2,0,114,32,1,121,19,0,124,2, - 0,106,11,0,124,0,0,131,1,0,125,7,0,87,110,18, - 0,4,116,2,0,107,10,0,114,4,1,1,1,1,89,113, - 32,1,88,124,7,0,114,32,1,103,0,0,124,4,0,95, - 12,0,110,9,0,124,3,0,124,4,0,95,12,0,124,4, - 0,106,12,0,103,0,0,107,2,0,114,85,1,124,1,0, - 114,85,1,116,13,0,124,1,0,131,1,0,100,7,0,25, - 125,8,0,124,4,0,106,12,0,106,14,0,124,8,0,131, - 1,0,1,124,4,0,83,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,218,6,111,114,105,103,105,110,84,218,10, - 105,115,95,112,97,99,107,97,103,101,114,59,0,0,0,41, - 15,114,115,0,0,0,114,157,0,0,0,114,107,0,0,0, - 114,121,0,0,0,218,10,77,111,100,117,108,101,83,112,101, - 99,90,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,92,0, - 0,0,114,93,0,0,0,114,127,0,0,0,218,9,95,80, - 79,80,85,76,65,84,69,114,159,0,0,0,114,156,0,0, - 0,114,38,0,0,0,218,6,97,112,112,101,110,100,41,9, - 114,106,0,0,0,90,8,108,111,99,97,116,105,111,110,114, - 127,0,0,0,114,156,0,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,159,0,0,0,90,7,100,105, - 114,110,97,109,101,114,4,0,0,0,114,4,0,0,0,114, - 5,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,251,1,0, - 0,115,60,0,0,0,0,12,12,4,6,1,15,2,3,1, - 19,1,13,1,5,8,24,1,9,3,12,1,22,1,21,1, - 15,1,9,1,5,2,4,3,12,2,15,1,3,1,19,1, - 13,1,5,2,6,1,12,2,9,1,15,1,6,1,16,1, - 16,2,114,167,0,0,0,99,0,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,64,0,0,0,115,121,0,0, - 0,101,0,0,90,1,0,100,0,0,90,2,0,100,1,0, - 90,3,0,100,2,0,90,4,0,100,3,0,90,5,0,100, - 4,0,90,6,0,101,7,0,100,5,0,100,6,0,132,0, - 0,131,1,0,90,8,0,101,7,0,100,7,0,100,8,0, - 132,0,0,131,1,0,90,9,0,101,7,0,100,9,0,100, - 9,0,100,10,0,100,11,0,132,2,0,131,1,0,90,10, - 0,101,7,0,100,9,0,100,12,0,100,13,0,132,1,0, - 131,1,0,90,11,0,100,9,0,83,41,14,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,70,99,2,0,0,0,0,0,0,0,2,0,0, - 0,11,0,0,0,67,0,0,0,115,67,0,0,0,121,23, - 0,116,0,0,106,1,0,116,0,0,106,2,0,124,1,0, - 131,2,0,83,87,110,37,0,4,116,3,0,107,10,0,114, - 62,0,1,1,1,116,0,0,106,1,0,116,0,0,106,4, - 0,124,1,0,131,2,0,83,89,110,1,0,88,100,0,0, - 83,41,1,78,41,5,218,7,95,119,105,110,114,101,103,90, - 7,79,112,101,110,75,101,121,90,17,72,75,69,89,95,67, - 85,82,82,69,78,84,95,85,83,69,82,114,40,0,0,0, - 90,18,72,75,69,89,95,76,79,67,65,76,95,77,65,67, - 72,73,78,69,41,2,218,3,99,108,115,218,3,107,101,121, - 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, - 14,95,111,112,101,110,95,114,101,103,105,115,116,114,121,73, - 2,0,0,115,8,0,0,0,0,2,3,1,23,1,13,1, - 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,99,2,0,0,0,0,0,0,0,6, - 0,0,0,16,0,0,0,67,0,0,0,115,143,0,0,0, - 124,0,0,106,0,0,114,21,0,124,0,0,106,1,0,125, - 2,0,110,9,0,124,0,0,106,2,0,125,2,0,124,2, - 0,106,3,0,100,1,0,124,1,0,100,2,0,116,4,0, - 106,5,0,100,0,0,100,3,0,133,2,0,25,131,0,2, - 125,3,0,121,47,0,124,0,0,106,6,0,124,3,0,131, - 1,0,143,25,0,125,4,0,116,7,0,106,8,0,124,4, - 0,100,4,0,131,2,0,125,5,0,87,100,0,0,81,82, - 88,87,110,22,0,4,116,9,0,107,10,0,114,138,0,1, - 1,1,100,0,0,83,89,110,1,0,88,124,5,0,83,41, - 5,78,114,126,0,0,0,90,11,115,121,115,95,118,101,114, - 115,105,111,110,114,80,0,0,0,114,30,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,114, - 47,0,0,0,114,7,0,0,0,218,7,118,101,114,115,105, - 111,110,114,172,0,0,0,114,169,0,0,0,90,10,81,117, - 101,114,121,86,97,108,117,101,114,40,0,0,0,41,6,114, - 170,0,0,0,114,126,0,0,0,90,12,114,101,103,105,115, - 116,114,121,95,107,101,121,114,171,0,0,0,90,4,104,107, - 101,121,218,8,102,105,108,101,112,97,116,104,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,218,16,95,115,101, - 97,114,99,104,95,114,101,103,105,115,116,114,121,80,2,0, - 0,115,22,0,0,0,0,2,9,1,12,2,9,1,15,1, - 22,1,3,1,18,1,29,1,13,1,9,1,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,78,99,4,0,0,0,0,0,0,0,8,0, - 0,0,14,0,0,0,67,0,0,0,115,158,0,0,0,124, - 0,0,106,0,0,124,1,0,131,1,0,125,4,0,124,4, - 0,100,0,0,107,8,0,114,31,0,100,0,0,83,121,14, - 0,116,1,0,124,4,0,131,1,0,1,87,110,22,0,4, - 116,2,0,107,10,0,114,69,0,1,1,1,100,0,0,83, - 89,110,1,0,88,120,81,0,116,3,0,131,0,0,68,93, - 70,0,92,2,0,125,5,0,125,6,0,124,4,0,106,4, - 0,116,5,0,124,6,0,131,1,0,131,1,0,114,80,0, - 116,6,0,106,7,0,124,1,0,124,5,0,124,1,0,124, - 4,0,131,2,0,100,1,0,124,4,0,131,2,1,125,7, - 0,124,7,0,83,113,80,0,87,100,0,0,83,41,2,78, - 114,158,0,0,0,41,8,114,178,0,0,0,114,39,0,0, - 0,114,40,0,0,0,114,161,0,0,0,114,92,0,0,0, - 114,93,0,0,0,114,121,0,0,0,218,16,115,112,101,99, - 95,102,114,111,109,95,108,111,97,100,101,114,41,8,114,170, - 0,0,0,114,126,0,0,0,114,35,0,0,0,218,6,116, - 97,114,103,101,116,114,177,0,0,0,114,127,0,0,0,114, - 166,0,0,0,114,164,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,5,0,0,0,218,9,102,105,110,100,95,115, - 112,101,99,95,2,0,0,115,26,0,0,0,0,2,15,1, - 12,1,4,1,3,1,14,1,13,1,9,1,22,1,21,1, - 9,1,15,1,9,1,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,99,3,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,67,0,0,0,115,45,0,0, - 0,124,0,0,106,0,0,124,1,0,124,2,0,131,2,0, - 125,3,0,124,3,0,100,1,0,107,9,0,114,37,0,124, - 3,0,106,1,0,83,100,1,0,83,100,1,0,83,41,2, - 122,108,70,105,110,100,32,109,111,100,117,108,101,32,110,97, - 109,101,100,32,105,110,32,116,104,101,32,114,101,103,105,115, - 116,114,121,46,10,10,32,32,32,32,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,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,41, - 2,114,181,0,0,0,114,127,0,0,0,41,4,114,170,0, - 0,0,114,126,0,0,0,114,35,0,0,0,114,164,0,0, + 95,102,105,110,100,95,109,111,100,117,108,101,95,115,104,105, + 109,141,1,0,0,115,10,0,0,0,0,10,21,1,24,1, + 6,1,29,1,114,130,0,0,0,99,4,0,0,0,0,0, + 0,0,11,0,0,0,19,0,0,0,67,0,0,0,115,228, + 1,0,0,105,0,0,125,4,0,124,2,0,100,1,0,107, + 9,0,114,31,0,124,2,0,124,4,0,100,2,0,60,110, + 6,0,100,3,0,125,2,0,124,3,0,100,1,0,107,9, + 0,114,59,0,124,3,0,124,4,0,100,4,0,60,124,0, + 0,100,1,0,100,5,0,133,2,0,25,125,5,0,124,0, + 0,100,5,0,100,6,0,133,2,0,25,125,6,0,124,0, + 0,100,6,0,100,7,0,133,2,0,25,125,7,0,124,5, + 0,116,0,0,107,3,0,114,165,0,100,8,0,106,1,0, + 124,2,0,124,5,0,131,2,0,125,8,0,116,2,0,124, + 8,0,131,1,0,1,116,3,0,124,8,0,124,4,0,141, + 1,0,130,1,0,110,113,0,116,4,0,124,6,0,131,1, + 0,100,5,0,107,3,0,114,223,0,100,9,0,106,1,0, + 124,2,0,131,1,0,125,8,0,116,2,0,124,8,0,131, + 1,0,1,116,5,0,124,8,0,131,1,0,130,1,0,110, + 55,0,116,4,0,124,7,0,131,1,0,100,5,0,107,3, + 0,114,22,1,100,10,0,106,1,0,124,2,0,131,1,0, + 125,8,0,116,2,0,124,8,0,131,1,0,1,116,5,0, + 124,8,0,131,1,0,130,1,0,124,1,0,100,1,0,107, + 9,0,114,214,1,121,20,0,116,6,0,124,1,0,100,11, + 0,25,131,1,0,125,9,0,87,110,18,0,4,116,7,0, + 107,10,0,114,74,1,1,1,1,89,110,59,0,88,116,8, + 0,124,6,0,131,1,0,124,9,0,107,3,0,114,133,1, + 100,12,0,106,1,0,124,2,0,131,1,0,125,8,0,116, + 2,0,124,8,0,131,1,0,1,116,3,0,124,8,0,124, + 4,0,141,1,0,130,1,0,121,18,0,124,1,0,100,13, + 0,25,100,14,0,64,125,10,0,87,110,18,0,4,116,7, + 0,107,10,0,114,171,1,1,1,1,89,110,43,0,88,116, + 8,0,124,7,0,131,1,0,124,10,0,107,3,0,114,214, + 1,116,3,0,100,12,0,106,1,0,124,2,0,131,1,0, + 124,4,0,141,1,0,130,1,0,124,0,0,100,7,0,100, + 1,0,133,2,0,25,83,41,15,97,122,1,0,0,86,97, + 108,105,100,97,116,101,32,116,104,101,32,104,101,97,100,101, + 114,32,111,102,32,116,104,101,32,112,97,115,115,101,100,45, + 105,110,32,98,121,116,101,99,111,100,101,32,97,103,97,105, + 110,115,116,32,115,111,117,114,99,101,95,115,116,97,116,115, + 32,40,105,102,10,32,32,32,32,103,105,118,101,110,41,32, + 97,110,100,32,114,101,116,117,114,110,105,110,103,32,116,104, + 101,32,98,121,116,101,99,111,100,101,32,116,104,97,116,32, + 99,97,110,32,98,101,32,99,111,109,112,105,108,101,100,32, + 98,121,32,99,111,109,112,105,108,101,40,41,46,10,10,32, + 32,32,32,65,108,108,32,111,116,104,101,114,32,97,114,103, + 117,109,101,110,116,115,32,97,114,101,32,117,115,101,100,32, + 116,111,32,101,110,104,97,110,99,101,32,101,114,114,111,114, + 32,114,101,112,111,114,116,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,116,104,101, + 32,98,121,116,101,99,111,100,101,32,105,115,10,32,32,32, + 32,102,111,117,110,100,32,116,111,32,98,101,32,115,116,97, + 108,101,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,10,32,32,32,32,116,114,117,110,99,97,116,101, + 100,46,10,10,32,32,32,32,78,114,106,0,0,0,122,10, + 60,98,121,116,101,99,111,100,101,62,114,35,0,0,0,114, + 12,0,0,0,233,8,0,0,0,233,12,0,0,0,122,30, + 98,97,100,32,109,97,103,105,99,32,110,117,109,98,101,114, + 32,105,110,32,123,33,114,125,58,32,123,33,114,125,122,43, + 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,116,105,109,101,115,116, + 97,109,112,32,105,110,32,123,33,114,125,122,48,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,115,105,122,101,32,111,102,32,115, + 111,117,114,99,101,32,105,110,32,123,33,114,125,218,5,109, + 116,105,109,101,122,26,98,121,116,101,99,111,100,101,32,105, + 115,32,115,116,97,108,101,32,102,111,114,32,123,33,114,125, + 218,4,115,105,122,101,108,3,0,0,0,255,127,255,127,3, + 0,41,9,218,12,77,65,71,73,67,95,78,85,77,66,69, + 82,114,47,0,0,0,114,105,0,0,0,114,107,0,0,0, + 114,31,0,0,0,218,8,69,79,70,69,114,114,111,114,114, + 14,0,0,0,218,8,75,101,121,69,114,114,111,114,114,19, + 0,0,0,41,11,114,53,0,0,0,218,12,115,111,117,114, + 99,101,95,115,116,97,116,115,114,106,0,0,0,114,35,0, + 0,0,90,11,101,120,99,95,100,101,116,97,105,108,115,90, + 5,109,97,103,105,99,90,13,114,97,119,95,116,105,109,101, + 115,116,97,109,112,90,8,114,97,119,95,115,105,122,101,114, + 75,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, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,25, + 95,118,97,108,105,100,97,116,101,95,98,121,116,101,99,111, + 100,101,95,104,101,97,100,101,114,158,1,0,0,115,76,0, + 0,0,0,11,6,1,12,1,13,3,6,1,12,1,10,1, + 16,1,16,1,16,1,12,1,18,1,10,1,18,1,18,1, + 15,1,10,1,15,1,18,1,15,1,10,1,12,1,12,1, + 3,1,20,1,13,1,5,2,18,1,15,1,10,1,15,1, + 3,1,18,1,13,1,5,2,18,1,15,1,9,1,114,141, + 0,0,0,99,4,0,0,0,0,0,0,0,5,0,0,0, + 6,0,0,0,67,0,0,0,115,112,0,0,0,116,0,0, + 106,1,0,124,0,0,131,1,0,125,4,0,116,2,0,124, + 4,0,116,3,0,131,2,0,114,75,0,116,4,0,100,1, + 0,124,2,0,131,2,0,1,124,3,0,100,2,0,107,9, + 0,114,71,0,116,5,0,106,6,0,124,4,0,124,3,0, + 131,2,0,1,124,4,0,83,116,7,0,100,3,0,106,8, + 0,124,2,0,131,1,0,100,4,0,124,1,0,100,5,0, + 124,2,0,131,1,2,130,1,0,100,2,0,83,41,6,122, + 60,67,111,109,112,105,108,101,32,98,121,116,101,99,111,100, + 101,32,97,115,32,114,101,116,117,114,110,101,100,32,98,121, + 32,95,118,97,108,105,100,97,116,101,95,98,121,116,101,99, + 111,100,101,95,104,101,97,100,101,114,40,41,46,122,21,99, + 111,100,101,32,111,98,106,101,99,116,32,102,114,111,109,32, + 123,33,114,125,78,122,23,78,111,110,45,99,111,100,101,32, + 111,98,106,101,99,116,32,105,110,32,123,33,114,125,114,106, + 0,0,0,114,35,0,0,0,41,9,218,7,109,97,114,115, + 104,97,108,90,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,105,0,0,0,218,4,95,105,109,112,90,16,95, + 102,105,120,95,99,111,95,102,105,108,101,110,97,109,101,114, + 107,0,0,0,114,47,0,0,0,41,5,114,53,0,0,0, + 114,106,0,0,0,114,89,0,0,0,114,90,0,0,0,218, + 4,99,111,100,101,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,17,95,99,111,109,112,105,108,101,95,98, + 121,116,101,99,111,100,101,213,1,0,0,115,16,0,0,0, + 0,2,15,1,15,1,13,1,12,1,16,1,4,2,18,1, + 114,147,0,0,0,114,59,0,0,0,99,3,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,115, + 76,0,0,0,116,0,0,116,1,0,131,1,0,125,3,0, + 124,3,0,106,2,0,116,3,0,124,1,0,131,1,0,131, + 1,0,1,124,3,0,106,2,0,116,3,0,124,2,0,131, + 1,0,131,1,0,1,124,3,0,106,2,0,116,4,0,106, + 5,0,124,0,0,131,1,0,131,1,0,1,124,3,0,83, + 41,1,122,80,67,111,109,112,105,108,101,32,97,32,99,111, + 100,101,32,111,98,106,101,99,116,32,105,110,116,111,32,98, + 121,116,101,99,111,100,101,32,102,111,114,32,119,114,105,116, + 105,110,103,32,111,117,116,32,116,111,32,97,32,98,121,116, + 101,45,99,111,109,112,105,108,101,100,10,32,32,32,32,102, + 105,108,101,46,41,6,218,9,98,121,116,101,97,114,114,97, + 121,114,135,0,0,0,218,6,101,120,116,101,110,100,114,17, + 0,0,0,114,142,0,0,0,90,5,100,117,109,112,115,41, + 4,114,146,0,0,0,114,133,0,0,0,114,140,0,0,0, + 114,53,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,17,95,99,111,100,101,95,116,111,95,98, + 121,116,101,99,111,100,101,225,1,0,0,115,10,0,0,0, + 0,3,12,1,19,1,19,1,22,1,114,150,0,0,0,99, + 1,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0, + 67,0,0,0,115,89,0,0,0,100,1,0,100,2,0,108, + 0,0,125,1,0,116,1,0,106,2,0,124,0,0,131,1, + 0,106,3,0,125,2,0,124,1,0,106,4,0,124,2,0, + 131,1,0,125,3,0,116,1,0,106,5,0,100,2,0,100, + 3,0,131,2,0,125,4,0,124,4,0,106,6,0,124,0, + 0,106,6,0,124,3,0,100,1,0,25,131,1,0,131,1, + 0,83,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, + 59,0,0,0,78,84,41,7,218,8,116,111,107,101,110,105, + 122,101,114,49,0,0,0,90,7,66,121,116,101,115,73,79, + 90,8,114,101,97,100,108,105,110,101,90,15,100,101,116,101, + 99,116,95,101,110,99,111,100,105,110,103,90,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,151, + 0,0,0,90,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,90,15,110,101,119,108,105,110,101,95,100,101, + 99,111,100,101,114,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,13,100,101,99,111,100,101,95,115,111,117, + 114,99,101,235,1,0,0,115,10,0,0,0,0,5,12,1, + 18,1,15,1,18,1,114,155,0,0,0,114,127,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,99,2,0,0, + 0,2,0,0,0,9,0,0,0,19,0,0,0,67,0,0, + 0,115,89,1,0,0,124,1,0,100,1,0,107,8,0,114, + 73,0,100,2,0,125,1,0,116,0,0,124,2,0,100,3, + 0,131,2,0,114,73,0,121,19,0,124,2,0,106,1,0, + 124,0,0,131,1,0,125,1,0,87,110,18,0,4,116,2, + 0,107,10,0,114,72,0,1,1,1,89,110,1,0,88,116, + 3,0,106,4,0,124,0,0,124,2,0,100,4,0,124,1, + 0,131,2,1,125,4,0,100,5,0,124,4,0,95,5,0, + 124,2,0,100,1,0,107,8,0,114,194,0,120,73,0,116, + 6,0,131,0,0,68,93,58,0,92,2,0,125,5,0,125, + 6,0,124,1,0,106,7,0,116,8,0,124,6,0,131,1, + 0,131,1,0,114,128,0,124,5,0,124,0,0,124,1,0, + 131,2,0,125,2,0,124,2,0,124,4,0,95,9,0,80, + 113,128,0,87,100,1,0,83,124,3,0,116,10,0,107,8, + 0,114,23,1,116,0,0,124,2,0,100,6,0,131,2,0, + 114,32,1,121,19,0,124,2,0,106,11,0,124,0,0,131, + 1,0,125,7,0,87,110,18,0,4,116,2,0,107,10,0, + 114,4,1,1,1,1,89,113,32,1,88,124,7,0,114,32, + 1,103,0,0,124,4,0,95,12,0,110,9,0,124,3,0, + 124,4,0,95,12,0,124,4,0,106,12,0,103,0,0,107, + 2,0,114,85,1,124,1,0,114,85,1,116,13,0,124,1, + 0,131,1,0,100,7,0,25,125,8,0,124,4,0,106,12, + 0,106,14,0,124,8,0,131,1,0,1,124,4,0,83,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,218,6,111, + 114,105,103,105,110,84,218,10,105,115,95,112,97,99,107,97, + 103,101,114,59,0,0,0,41,15,114,115,0,0,0,114,157, + 0,0,0,114,107,0,0,0,114,121,0,0,0,218,10,77, + 111,100,117,108,101,83,112,101,99,90,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,92,0,0,0,114,93,0,0,0,114, + 127,0,0,0,218,9,95,80,79,80,85,76,65,84,69,114, + 159,0,0,0,114,156,0,0,0,114,38,0,0,0,218,6, + 97,112,112,101,110,100,41,9,114,106,0,0,0,90,8,108, + 111,99,97,116,105,111,110,114,127,0,0,0,114,156,0,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, + 159,0,0,0,90,7,100,105,114,110,97,109,101,114,4,0, + 0,0,114,4,0,0,0,114,5,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,252,1,0,0,115,60,0,0,0,0,12, + 12,4,6,1,15,2,3,1,19,1,13,1,5,8,24,1, + 9,3,12,1,22,1,21,1,15,1,9,1,5,2,4,3, + 12,2,15,1,3,1,19,1,13,1,5,2,6,1,12,2, + 9,1,15,1,6,1,16,1,16,2,114,167,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 64,0,0,0,115,121,0,0,0,101,0,0,90,1,0,100, + 0,0,90,2,0,100,1,0,90,3,0,100,2,0,90,4, + 0,100,3,0,90,5,0,100,4,0,90,6,0,101,7,0, + 100,5,0,100,6,0,132,0,0,131,1,0,90,8,0,101, + 7,0,100,7,0,100,8,0,132,0,0,131,1,0,90,9, + 0,101,7,0,100,9,0,100,9,0,100,10,0,100,11,0, + 132,2,0,131,1,0,90,10,0,101,7,0,100,9,0,100, + 12,0,100,13,0,132,1,0,131,1,0,90,11,0,100,9, + 0,83,41,14,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,70,99,2,0,0, + 0,0,0,0,0,2,0,0,0,11,0,0,0,67,0,0, + 0,115,67,0,0,0,121,23,0,116,0,0,106,1,0,116, + 0,0,106,2,0,124,1,0,131,2,0,83,87,110,37,0, + 4,116,3,0,107,10,0,114,62,0,1,1,1,116,0,0, + 106,1,0,116,0,0,106,4,0,124,1,0,131,2,0,83, + 89,110,1,0,88,100,0,0,83,41,1,78,41,5,218,7, + 95,119,105,110,114,101,103,90,7,79,112,101,110,75,101,121, + 90,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85, + 83,69,82,114,40,0,0,0,90,18,72,75,69,89,95,76, + 79,67,65,76,95,77,65,67,72,73,78,69,41,2,218,3, + 99,108,115,218,3,107,101,121,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,218,14,95,111,112,101,110,95,114, + 101,103,105,115,116,114,121,74,2,0,0,115,8,0,0,0, + 0,2,3,1,23,1,13,1,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,99,2, + 0,0,0,0,0,0,0,6,0,0,0,16,0,0,0,67, + 0,0,0,115,143,0,0,0,124,0,0,106,0,0,114,21, + 0,124,0,0,106,1,0,125,2,0,110,9,0,124,0,0, + 106,2,0,125,2,0,124,2,0,106,3,0,100,1,0,124, + 1,0,100,2,0,116,4,0,106,5,0,100,0,0,100,3, + 0,133,2,0,25,131,0,2,125,3,0,121,47,0,124,0, + 0,106,6,0,124,3,0,131,1,0,143,25,0,125,4,0, + 116,7,0,106,8,0,124,4,0,100,4,0,131,2,0,125, + 5,0,87,100,0,0,81,82,88,87,110,22,0,4,116,9, + 0,107,10,0,114,138,0,1,1,1,100,0,0,83,89,110, + 1,0,88,124,5,0,83,41,5,78,114,126,0,0,0,90, + 11,115,121,115,95,118,101,114,115,105,111,110,114,80,0,0, + 0,114,30,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,114,47,0,0,0,114,7,0,0, + 0,218,7,118,101,114,115,105,111,110,114,172,0,0,0,114, + 169,0,0,0,90,10,81,117,101,114,121,86,97,108,117,101, + 114,40,0,0,0,41,6,114,170,0,0,0,114,126,0,0, + 0,90,12,114,101,103,105,115,116,114,121,95,107,101,121,114, + 171,0,0,0,90,4,104,107,101,121,218,8,102,105,108,101, + 112,97,116,104,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,103, + 105,115,116,114,121,81,2,0,0,115,22,0,0,0,0,2, + 9,1,12,2,9,1,15,1,22,1,3,1,18,1,29,1, + 13,1,9,1,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,78,99,4,0, + 0,0,0,0,0,0,8,0,0,0,14,0,0,0,67,0, + 0,0,115,158,0,0,0,124,0,0,106,0,0,124,1,0, + 131,1,0,125,4,0,124,4,0,100,0,0,107,8,0,114, + 31,0,100,0,0,83,121,14,0,116,1,0,124,4,0,131, + 1,0,1,87,110,22,0,4,116,2,0,107,10,0,114,69, + 0,1,1,1,100,0,0,83,89,110,1,0,88,120,81,0, + 116,3,0,131,0,0,68,93,70,0,92,2,0,125,5,0, + 125,6,0,124,4,0,106,4,0,116,5,0,124,6,0,131, + 1,0,131,1,0,114,80,0,116,6,0,106,7,0,124,1, + 0,124,5,0,124,1,0,124,4,0,131,2,0,100,1,0, + 124,4,0,131,2,1,125,7,0,124,7,0,83,113,80,0, + 87,100,0,0,83,41,2,78,114,158,0,0,0,41,8,114, + 178,0,0,0,114,39,0,0,0,114,40,0,0,0,114,161, + 0,0,0,114,92,0,0,0,114,93,0,0,0,114,121,0, + 0,0,218,16,115,112,101,99,95,102,114,111,109,95,108,111, + 97,100,101,114,41,8,114,170,0,0,0,114,126,0,0,0, + 114,35,0,0,0,218,6,116,97,114,103,101,116,114,177,0, + 0,0,114,127,0,0,0,114,166,0,0,0,114,164,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 218,11,102,105,110,100,95,109,111,100,117,108,101,111,2,0, - 0,115,8,0,0,0,0,7,18,1,12,1,7,2,122,33, + 218,9,102,105,110,100,95,115,112,101,99,96,2,0,0,115, + 26,0,0,0,0,2,15,1,12,1,4,1,3,1,14,1, + 13,1,9,1,22,1,21,1,9,1,15,1,9,1,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,109,111,100,117,108, - 101,41,12,114,112,0,0,0,114,111,0,0,0,114,113,0, - 0,0,114,114,0,0,0,114,175,0,0,0,114,174,0,0, - 0,114,173,0,0,0,218,11,99,108,97,115,115,109,101,116, - 104,111,100,114,172,0,0,0,114,178,0,0,0,114,181,0, - 0,0,114,182,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,114,168,0,0,0, - 61,2,0,0,115,20,0,0,0,12,2,6,3,6,3,6, - 2,6,2,18,7,18,15,3,1,21,15,3,1,114,168,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,64,0,0,0,115,70,0,0,0,101,0,0,90, - 1,0,100,0,0,90,2,0,100,1,0,90,3,0,100,2, - 0,100,3,0,132,0,0,90,4,0,100,4,0,100,5,0, - 132,0,0,90,5,0,100,6,0,100,7,0,132,0,0,90, - 6,0,100,8,0,100,9,0,132,0,0,90,7,0,100,10, - 0,83,41,11,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,5,0,0,0,3,0,0,0,67,0,0,0,115,88,0, - 0,0,116,0,0,124,0,0,106,1,0,124,1,0,131,1, - 0,131,1,0,100,1,0,25,125,2,0,124,2,0,106,2, - 0,100,2,0,100,1,0,131,2,0,100,3,0,25,125,3, - 0,124,1,0,106,3,0,100,2,0,131,1,0,100,4,0, - 25,125,4,0,124,3,0,100,5,0,107,2,0,111,87,0, - 124,4,0,100,5,0,107,3,0,83,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,29,0,0,0, - 114,58,0,0,0,114,59,0,0,0,114,56,0,0,0,218, - 8,95,95,105,110,105,116,95,95,41,4,114,38,0,0,0, - 114,157,0,0,0,114,34,0,0,0,114,32,0,0,0,41, - 5,114,108,0,0,0,114,126,0,0,0,114,94,0,0,0, - 90,13,102,105,108,101,110,97,109,101,95,98,97,115,101,90, - 9,116,97,105,108,95,110,97,109,101,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,159,0,0,0,130,2, - 0,0,115,8,0,0,0,0,3,25,1,22,1,19,1,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,99,2,0,0,0,0,0, - 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4, - 0,0,0,100,1,0,83,41,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,4,0,0,0,41,2,114,108,0, - 0,0,114,164,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,13,99,114,101,97,116,101,95,109, - 111,100,117,108,101,138,2,0,0,115,0,0,0,0,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,99,2,0,0,0, - 0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,0, - 115,80,0,0,0,124,0,0,106,0,0,124,1,0,106,1, - 0,131,1,0,125,2,0,124,2,0,100,1,0,107,8,0, - 114,54,0,116,2,0,100,2,0,106,3,0,124,1,0,106, - 1,0,131,1,0,131,1,0,130,1,0,116,4,0,106,5, - 0,116,6,0,124,2,0,124,1,0,106,7,0,131,3,0, - 1,100,1,0,83,41,3,122,19,69,120,101,99,117,116,101, - 32,116,104,101,32,109,111,100,117,108,101,46,78,122,52,99, - 97,110,110,111,116,32,108,111,97,100,32,109,111,100,117,108, - 101,32,123,33,114,125,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,8,218,8,103,101,116,95,99,111,100,101,114, - 112,0,0,0,114,107,0,0,0,114,47,0,0,0,114,121, - 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,118,0,0,0,41,3,114,108,0,0,0, - 218,6,109,111,100,117,108,101,114,146,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,11,101,120, - 101,99,95,109,111,100,117,108,101,141,2,0,0,115,10,0, - 0,0,0,2,18,1,12,1,9,1,15,1,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,99,2,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,67,0,0,0,115,16,0,0, - 0,116,0,0,106,1,0,124,0,0,124,1,0,131,2,0, - 83,41,1,78,41,2,114,121,0,0,0,218,17,95,108,111, - 97,100,95,109,111,100,117,108,101,95,115,104,105,109,41,2, - 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,218,11,108,111,97,100,95, - 109,111,100,117,108,101,149,2,0,0,115,2,0,0,0,0, - 1,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,78,41,8,114, - 112,0,0,0,114,111,0,0,0,114,113,0,0,0,114,114, - 0,0,0,114,159,0,0,0,114,186,0,0,0,114,191,0, - 0,0,114,193,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,114,184,0,0,0, - 125,2,0,0,115,10,0,0,0,12,3,6,2,12,8,12, - 3,12,8,114,184,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,64,0,0,0,115,106,0, - 0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,1, - 0,100,2,0,132,0,0,90,3,0,100,3,0,100,4,0, - 132,0,0,90,4,0,100,5,0,100,6,0,132,0,0,90, - 5,0,100,7,0,100,8,0,132,0,0,90,6,0,100,9, - 0,100,10,0,132,0,0,90,7,0,100,11,0,100,18,0, - 100,13,0,100,14,0,132,0,1,90,8,0,100,15,0,100, - 16,0,132,0,0,90,9,0,100,17,0,83,41,19,218,12, - 83,111,117,114,99,101,76,111,97,100,101,114,99,2,0,0, - 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, - 0,115,10,0,0,0,116,0,0,130,1,0,100,1,0,83, - 41,2,122,178,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,44,32, - 119,104,101,114,101,32,112,97,116,104,32,105,115,32,97,32, - 115,116,114,46,10,10,32,32,32,32,32,32,32,32,82,97, - 105,115,101,115,32,73,79,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,78,41,1,218,7,73,79,69,114,114, - 111,114,41,2,114,108,0,0,0,114,35,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,218,10,112, - 97,116,104,95,109,116,105,109,101,155,2,0,0,115,2,0, - 0,0,0,6,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,99,2,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, - 0,0,115,19,0,0,0,124,0,0,106,0,0,124,1,0, - 131,1,0,100,1,0,105,1,0,83,41,2,97,170,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,32,112,97,116, - 104,10,32,32,32,32,32,32,32,32,116,111,32,98,121,32, - 116,104,101,32,112,97,116,104,32,40,115,116,114,41,46,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,73,79,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,133,0,0,0, - 41,1,114,196,0,0,0,41,2,114,108,0,0,0,114,35, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,218,10,112,97,116,104,95,115,116,97,116,115,163,2, - 0,0,115,2,0,0,0,0,11,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,99,4,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,67,0,0,0,115,16,0,0,0,124,0,0,106, - 0,0,124,2,0,124,3,0,131,2,0,83,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,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,108,0,0,0,114,90,0,0,0,90,10,99,97, - 99,104,101,95,112,97,116,104,114,53,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,218,15,95,99, - 97,99,104,101,95,98,121,116,101,99,111,100,101,176,2,0, - 0,115,2,0,0,0,0,8,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,99,3,0,0,0,0,0,0,0,3, - 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0, - 100,1,0,83,41,2,122,150,79,112,116,105,111,110,97,108, + 105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99, + 3,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 67,0,0,0,115,45,0,0,0,124,0,0,106,0,0,124, + 1,0,124,2,0,131,2,0,125,3,0,124,3,0,100,1, + 0,107,9,0,114,37,0,124,3,0,106,1,0,83,100,1, + 0,83,100,1,0,83,41,2,122,108,70,105,110,100,32,109, + 111,100,117,108,101,32,110,97,109,101,100,32,105,110,32,116, + 104,101,32,114,101,103,105,115,116,114,121,46,10,10,32,32, + 32,32,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,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,41,2,114,181,0,0,0,114,127, + 0,0,0,41,4,114,170,0,0,0,114,126,0,0,0,114, + 35,0,0,0,114,164,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,5,0,0,0,218,11,102,105,110,100,95,109, + 111,100,117,108,101,112,2,0,0,115,8,0,0,0,0,7, + 18,1,12,1,7,2,122,33,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,109,111,100,117,108,101,41,12,114,112,0,0,0, + 114,111,0,0,0,114,113,0,0,0,114,114,0,0,0,114, + 175,0,0,0,114,174,0,0,0,114,173,0,0,0,218,11, + 99,108,97,115,115,109,101,116,104,111,100,114,172,0,0,0, + 114,178,0,0,0,114,181,0,0,0,114,182,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,168,0,0,0,62,2,0,0,115,20,0,0, + 0,12,2,6,3,6,3,6,2,6,2,18,7,18,15,3, + 1,21,15,3,1,114,168,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115, + 70,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0, + 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90, + 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6, + 0,100,7,0,132,0,0,90,6,0,100,8,0,100,9,0, + 132,0,0,90,7,0,100,10,0,83,41,11,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,5,0,0,0,3,0,0, + 0,67,0,0,0,115,88,0,0,0,116,0,0,124,0,0, + 106,1,0,124,1,0,131,1,0,131,1,0,100,1,0,25, + 125,2,0,124,2,0,106,2,0,100,2,0,100,1,0,131, + 2,0,100,3,0,25,125,3,0,124,1,0,106,3,0,100, + 2,0,131,1,0,100,4,0,25,125,4,0,124,3,0,100, + 5,0,107,2,0,111,87,0,124,4,0,100,5,0,107,3, + 0,83,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,29,0,0,0,114,58,0,0,0,114,59,0, + 0,0,114,56,0,0,0,218,8,95,95,105,110,105,116,95, + 95,41,4,114,38,0,0,0,114,157,0,0,0,114,34,0, + 0,0,114,32,0,0,0,41,5,114,108,0,0,0,114,126, + 0,0,0,114,94,0,0,0,90,13,102,105,108,101,110,97, + 109,101,95,98,97,115,101,90,9,116,97,105,108,95,110,97, + 109,101,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,114,159,0,0,0,131,2,0,0,115,8,0,0,0,0, + 3,25,1,22,1,19,1,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,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0, + 0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,41, + 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,4, + 0,0,0,41,2,114,108,0,0,0,114,164,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,13, + 99,114,101,97,116,101,95,109,111,100,117,108,101,139,2,0, + 0,115,0,0,0,0,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,99,2,0,0,0,0,0,0,0,3,0,0,0, + 4,0,0,0,67,0,0,0,115,80,0,0,0,124,0,0, + 106,0,0,124,1,0,106,1,0,131,1,0,125,2,0,124, + 2,0,100,1,0,107,8,0,114,54,0,116,2,0,100,2, + 0,106,3,0,124,1,0,106,1,0,131,1,0,131,1,0, + 130,1,0,116,4,0,106,5,0,116,6,0,124,2,0,124, + 1,0,106,7,0,131,3,0,1,100,1,0,83,41,3,122, + 19,69,120,101,99,117,116,101,32,116,104,101,32,109,111,100, + 117,108,101,46,78,122,52,99,97,110,110,111,116,32,108,111, + 97,100,32,109,111,100,117,108,101,32,123,33,114,125,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,8,218,8,103, + 101,116,95,99,111,100,101,114,112,0,0,0,114,107,0,0, + 0,114,47,0,0,0,114,121,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,118,0,0, + 0,41,3,114,108,0,0,0,218,6,109,111,100,117,108,101, + 114,146,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,11,101,120,101,99,95,109,111,100,117,108, + 101,142,2,0,0,115,10,0,0,0,0,2,18,1,12,1, + 9,1,15,1,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,99, + 2,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 67,0,0,0,115,16,0,0,0,116,0,0,106,1,0,124, + 0,0,124,1,0,131,2,0,83,41,1,78,41,2,114,121, + 0,0,0,218,17,95,108,111,97,100,95,109,111,100,117,108, + 101,95,115,104,105,109,41,2,114,108,0,0,0,114,126,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, + 0,218,11,108,111,97,100,95,109,111,100,117,108,101,150,2, + 0,0,115,2,0,0,0,0,1,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,78,41,8,114,112,0,0,0,114,111,0,0, + 0,114,113,0,0,0,114,114,0,0,0,114,159,0,0,0, + 114,186,0,0,0,114,191,0,0,0,114,193,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,184,0,0,0,126,2,0,0,115,10,0,0, + 0,12,3,6,2,12,8,12,3,12,8,114,184,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,64,0,0,0,115,106,0,0,0,101,0,0,90,1,0, + 100,0,0,90,2,0,100,1,0,100,2,0,132,0,0,90, + 3,0,100,3,0,100,4,0,132,0,0,90,4,0,100,5, + 0,100,6,0,132,0,0,90,5,0,100,7,0,100,8,0, + 132,0,0,90,6,0,100,9,0,100,10,0,132,0,0,90, + 7,0,100,11,0,100,18,0,100,13,0,100,14,0,132,0, + 1,90,8,0,100,15,0,100,16,0,132,0,0,90,9,0, + 100,17,0,83,41,19,218,12,83,111,117,114,99,101,76,111, + 97,100,101,114,99,2,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,115,10,0,0,0,116,0, + 0,130,1,0,100,1,0,83,41,2,122,178,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,44,32,119,104,101,114,101,32,112,97, + 116,104,32,105,115,32,97,32,115,116,114,46,10,10,32,32, + 32,32,32,32,32,32,82,97,105,115,101,115,32,73,79,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,78,41, + 1,218,7,73,79,69,114,114,111,114,41,2,114,108,0,0, + 0,114,35,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,218,10,112,97,116,104,95,109,116,105,109, + 101,156,2,0,0,115,2,0,0,0,0,6,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,99,2,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,67,0,0,0,115,19,0,0,0,124, + 0,0,106,0,0,124,1,0,131,1,0,100,1,0,105,1, + 0,83,41,2,97,170,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,32,112,97,116,104,10,32,32,32,32,32,32, + 32,32,116,111,32,98,121,32,116,104,101,32,112,97,116,104, + 32,40,115,116,114,41,46,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,73,79,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,133,0,0,0,41,1,114,196,0,0,0,41, + 2,114,108,0,0,0,114,35,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,218,10,112,97,116,104, + 95,115,116,97,116,115,164,2,0,0,115,2,0,0,0,0, + 11,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,99,4,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,115, + 16,0,0,0,124,0,0,106,0,0,124,2,0,124,3,0, + 131,2,0,83,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, @@ -1167,544 +1145,572 @@ const unsigned char _Py_M__importlib_external[] = { 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, - 4,0,0,0,41,3,114,108,0,0,0,114,35,0,0,0, + 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,108,0,0,0,114, + 90,0,0,0,90,10,99,97,99,104,101,95,112,97,116,104, 114,53,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,198,0,0,0,186,2,0,0,115,0,0, - 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,99,2,0,0,0,0,0, - 0,0,5,0,0,0,16,0,0,0,67,0,0,0,115,105, - 0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,125, - 2,0,121,19,0,124,0,0,106,1,0,124,2,0,131,1, - 0,125,3,0,87,110,58,0,4,116,2,0,107,10,0,114, - 94,0,1,125,4,0,1,122,26,0,116,3,0,100,1,0, - 100,2,0,124,1,0,131,1,1,124,4,0,130,2,0,87, - 89,100,3,0,100,3,0,125,4,0,126,4,0,88,110,1, - 0,88,116,4,0,124,3,0,131,1,0,83,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,106,0, - 0,0,78,41,5,114,157,0,0,0,218,8,103,101,116,95, - 100,97,116,97,114,40,0,0,0,114,107,0,0,0,114,155, - 0,0,0,41,5,114,108,0,0,0,114,126,0,0,0,114, - 35,0,0,0,114,153,0,0,0,218,3,101,120,99,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,218,10,103, - 101,116,95,115,111,117,114,99,101,193,2,0,0,115,14,0, - 0,0,0,2,15,1,3,1,19,1,18,1,9,1,31,1, - 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,218,9,95,111,112,116,105, - 109,105,122,101,114,29,0,0,0,99,3,0,0,0,1,0, - 0,0,4,0,0,0,9,0,0,0,67,0,0,0,115,34, - 0,0,0,116,0,0,106,1,0,116,2,0,124,1,0,124, - 2,0,100,1,0,100,2,0,100,3,0,100,4,0,124,3, - 0,131,4,2,83,41,5,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,189,0,0,0, - 218,12,100,111,110,116,95,105,110,104,101,114,105,116,84,114, - 68,0,0,0,41,3,114,121,0,0,0,114,188,0,0,0, - 218,7,99,111,109,112,105,108,101,41,4,114,108,0,0,0, - 114,53,0,0,0,114,35,0,0,0,114,203,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,14, - 115,111,117,114,99,101,95,116,111,95,99,111,100,101,203,2, - 0,0,115,4,0,0,0,0,5,21,1,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,99,2,0,0,0,0,0,0, - 0,10,0,0,0,43,0,0,0,67,0,0,0,115,174,1, - 0,0,124,0,0,106,0,0,124,1,0,131,1,0,125,2, - 0,100,1,0,125,3,0,121,16,0,116,1,0,124,2,0, - 131,1,0,125,4,0,87,110,24,0,4,116,2,0,107,10, - 0,114,63,0,1,1,1,100,1,0,125,4,0,89,110,202, - 0,88,121,19,0,124,0,0,106,3,0,124,2,0,131,1, - 0,125,5,0,87,110,18,0,4,116,4,0,107,10,0,114, - 103,0,1,1,1,89,110,162,0,88,116,5,0,124,5,0, - 100,2,0,25,131,1,0,125,3,0,121,19,0,124,0,0, - 106,6,0,124,4,0,131,1,0,125,6,0,87,110,18,0, - 4,116,7,0,107,10,0,114,159,0,1,1,1,89,110,106, - 0,88,121,34,0,116,8,0,124,6,0,100,3,0,124,5, - 0,100,4,0,124,1,0,100,5,0,124,4,0,131,1,3, - 125,7,0,87,110,24,0,4,116,9,0,116,10,0,102,2, - 0,107,10,0,114,220,0,1,1,1,89,110,45,0,88,116, - 11,0,100,6,0,124,4,0,124,2,0,131,3,0,1,116, - 12,0,124,7,0,100,4,0,124,1,0,100,7,0,124,4, - 0,100,8,0,124,2,0,131,1,3,83,124,0,0,106,6, - 0,124,2,0,131,1,0,125,8,0,124,0,0,106,13,0, - 124,8,0,124,2,0,131,2,0,125,9,0,116,11,0,100, - 9,0,124,2,0,131,2,0,1,116,14,0,106,15,0,12, - 114,170,1,124,4,0,100,1,0,107,9,0,114,170,1,124, - 3,0,100,1,0,107,9,0,114,170,1,116,16,0,124,9, - 0,124,3,0,116,17,0,124,8,0,131,1,0,131,3,0, - 125,6,0,121,36,0,124,0,0,106,18,0,124,2,0,124, - 4,0,124,6,0,131,3,0,1,116,11,0,100,10,0,124, - 4,0,131,2,0,1,87,110,18,0,4,116,2,0,107,10, - 0,114,169,1,1,1,1,89,110,1,0,88,124,9,0,83, - 41,11,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,114,133,0,0,0,114,138,0,0,0,114,106,0, - 0,0,114,35,0,0,0,122,13,123,125,32,109,97,116,99, - 104,101,115,32,123,125,114,89,0,0,0,114,90,0,0,0, - 122,19,99,111,100,101,32,111,98,106,101,99,116,32,102,114, - 111,109,32,123,125,122,10,119,114,111,116,101,32,123,33,114, - 125,41,19,114,157,0,0,0,114,79,0,0,0,114,66,0, - 0,0,114,197,0,0,0,114,195,0,0,0,114,14,0,0, - 0,114,200,0,0,0,114,40,0,0,0,114,141,0,0,0, - 114,107,0,0,0,114,136,0,0,0,114,105,0,0,0,114, - 147,0,0,0,114,206,0,0,0,114,7,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,150,0,0,0,114,31,0,0,0,114,199,0, - 0,0,41,10,114,108,0,0,0,114,126,0,0,0,114,90, - 0,0,0,114,139,0,0,0,114,89,0,0,0,218,2,115, - 116,114,53,0,0,0,218,10,98,121,116,101,115,95,100,97, - 116,97,114,153,0,0,0,90,11,99,111,100,101,95,111,98, - 106,101,99,116,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,114,187,0,0,0,211,2,0,0,115,78,0,0, - 0,0,7,15,1,6,1,3,1,16,1,13,1,11,2,3, - 1,19,1,13,1,5,2,16,1,3,1,19,1,13,1,5, - 2,3,1,9,1,12,1,13,1,19,1,5,2,9,1,7, - 1,15,1,6,1,7,1,15,1,18,1,13,1,22,1,12, - 1,9,1,15,1,3,1,19,1,17,1,13,1,5,1,122, - 21,83,111,117,114,99,101,76,111,97,100,101,114,46,103,101, - 116,95,99,111,100,101,78,114,87,0,0,0,41,10,114,112, - 0,0,0,114,111,0,0,0,114,113,0,0,0,114,196,0, - 0,0,114,197,0,0,0,114,199,0,0,0,114,198,0,0, - 0,114,202,0,0,0,114,206,0,0,0,114,187,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,194,0,0,0,153,2,0,0,115,14,0, - 0,0,12,2,12,8,12,13,12,10,12,7,12,10,18,8, - 114,194,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,0,0,0,0,115,112,0,0,0,101, - 0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,3, - 0,100,2,0,100,3,0,132,0,0,90,4,0,100,4,0, - 100,5,0,132,0,0,90,5,0,100,6,0,100,7,0,132, - 0,0,90,6,0,101,7,0,135,0,0,102,1,0,100,8, - 0,100,9,0,134,0,0,131,1,0,90,8,0,101,7,0, - 100,10,0,100,11,0,132,0,0,131,1,0,90,9,0,100, - 12,0,100,13,0,132,0,0,90,10,0,135,0,0,83,41, - 14,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,3, - 0,0,0,2,0,0,0,67,0,0,0,115,22,0,0,0, - 124,1,0,124,0,0,95,0,0,124,2,0,124,0,0,95, - 1,0,100,1,0,83,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,41,2,114,106,0,0,0,114,35,0, - 0,0,41,3,114,108,0,0,0,114,126,0,0,0,114,35, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,114,185,0,0,0,12,3,0,0,115,4,0,0,0, - 0,3,9,1,122,19,70,105,108,101,76,111,97,100,101,114, - 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0, - 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,34, - 0,0,0,124,0,0,106,0,0,124,1,0,106,0,0,107, - 2,0,111,33,0,124,0,0,106,1,0,124,1,0,106,1, - 0,107,2,0,83,41,1,78,41,2,218,9,95,95,99,108, - 97,115,115,95,95,114,118,0,0,0,41,2,114,108,0,0, - 0,218,5,111,116,104,101,114,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,218,6,95,95,101,113,95,95,18, - 3,0,0,115,4,0,0,0,0,1,18,1,122,17,70,105, - 108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,99, - 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 67,0,0,0,115,26,0,0,0,116,0,0,124,0,0,106, - 1,0,131,1,0,116,0,0,124,0,0,106,2,0,131,1, - 0,65,83,41,1,78,41,3,218,4,104,97,115,104,114,106, - 0,0,0,114,35,0,0,0,41,1,114,108,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,8, - 95,95,104,97,115,104,95,95,22,3,0,0,115,2,0,0, - 0,0,1,122,19,70,105,108,101,76,111,97,100,101,114,46, - 95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,3,0,0,0,115,22,0, - 0,0,116,0,0,116,1,0,124,0,0,131,2,0,106,2, - 0,124,1,0,131,1,0,83,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,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,210,0,0,0,114,193, - 0,0,0,41,2,114,108,0,0,0,114,126,0,0,0,41, - 1,114,211,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,193,0,0,0,25,3,0,0,115,2,0,0,0,0,10, - 122,22,70,105,108,101,76,111,97,100,101,114,46,108,111,97, - 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,1,0,0,0,67,0,0,0,115,7,0, - 0,0,124,0,0,106,0,0,83,41,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,41,1,114,35,0,0,0,41,2, - 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,157,0,0,0,37,3, - 0,0,115,2,0,0,0,0,3,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,99,2,0,0,0,0,0,0,0,3,0,0,0,9, - 0,0,0,67,0,0,0,115,42,0,0,0,116,0,0,106, - 1,0,124,1,0,100,1,0,131,2,0,143,17,0,125,2, - 0,124,2,0,106,2,0,131,0,0,83,87,100,2,0,81, - 82,88,100,2,0,83,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,218,1,114,78,41,3,114,49,0,0,0,114,50,0,0, - 0,90,4,114,101,97,100,41,3,114,108,0,0,0,114,35, - 0,0,0,114,54,0,0,0,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,114,200,0,0,0,42,3,0,0, - 115,4,0,0,0,0,2,21,1,122,19,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,100,97,116,97,41,11, - 114,112,0,0,0,114,111,0,0,0,114,113,0,0,0,114, - 114,0,0,0,114,185,0,0,0,114,213,0,0,0,114,215, - 0,0,0,114,123,0,0,0,114,193,0,0,0,114,157,0, - 0,0,114,200,0,0,0,114,4,0,0,0,114,4,0,0, - 0,41,1,114,211,0,0,0,114,5,0,0,0,114,210,0, - 0,0,7,3,0,0,115,14,0,0,0,12,3,6,2,12, - 6,12,4,12,3,24,12,18,5,114,210,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,64, - 0,0,0,115,64,0,0,0,101,0,0,90,1,0,100,0, - 0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,0, - 132,0,0,90,4,0,100,4,0,100,5,0,132,0,0,90, - 5,0,100,6,0,100,7,0,100,8,0,100,9,0,132,0, - 1,90,6,0,100,10,0,83,41,11,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,3,0,0,0,5,0,0,0,67,0,0, - 0,115,34,0,0,0,116,0,0,124,1,0,131,1,0,125, - 2,0,124,2,0,106,1,0,100,1,0,124,2,0,106,2, - 0,100,2,0,105,2,0,83,41,3,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,114,133,0, - 0,0,114,134,0,0,0,41,3,114,39,0,0,0,218,8, - 115,116,95,109,116,105,109,101,90,7,115,116,95,115,105,122, - 101,41,3,114,108,0,0,0,114,35,0,0,0,114,208,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,114,197,0,0,0,52,3,0,0,115,4,0,0,0,0, - 2,12,1,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, - 99,4,0,0,0,0,0,0,0,5,0,0,0,5,0,0, - 0,67,0,0,0,115,34,0,0,0,116,0,0,124,1,0, - 131,1,0,125,4,0,124,0,0,106,1,0,124,2,0,124, - 3,0,100,1,0,124,4,0,131,2,1,83,41,2,78,218, - 5,95,109,111,100,101,41,2,114,97,0,0,0,114,198,0, - 0,0,41,5,114,108,0,0,0,114,90,0,0,0,114,89, - 0,0,0,114,53,0,0,0,114,42,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,114,199,0,0, - 0,57,3,0,0,115,4,0,0,0,0,2,12,1,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, - 114,220,0,0,0,105,182,1,0,0,99,3,0,0,0,1, - 0,0,0,9,0,0,0,17,0,0,0,67,0,0,0,115, - 53,1,0,0,116,0,0,124,1,0,131,1,0,92,2,0, - 125,4,0,125,5,0,103,0,0,125,6,0,120,54,0,124, - 4,0,114,80,0,116,1,0,124,4,0,131,1,0,12,114, - 80,0,116,0,0,124,4,0,131,1,0,92,2,0,125,4, - 0,125,7,0,124,6,0,106,2,0,124,7,0,131,1,0, - 1,113,27,0,87,120,132,0,116,3,0,124,6,0,131,1, - 0,68,93,118,0,125,7,0,116,4,0,124,4,0,124,7, - 0,131,2,0,125,4,0,121,17,0,116,5,0,106,6,0, - 124,4,0,131,1,0,1,87,113,94,0,4,116,7,0,107, - 10,0,114,155,0,1,1,1,119,94,0,89,113,94,0,4, - 116,8,0,107,10,0,114,211,0,1,125,8,0,1,122,25, - 0,116,9,0,100,1,0,124,4,0,124,8,0,131,3,0, - 1,100,2,0,83,87,89,100,2,0,100,2,0,125,8,0, - 126,8,0,88,113,94,0,88,113,94,0,87,121,33,0,116, - 10,0,124,1,0,124,2,0,124,3,0,131,3,0,1,116, - 9,0,100,3,0,124,1,0,131,2,0,1,87,110,53,0, - 4,116,8,0,107,10,0,114,48,1,1,125,8,0,1,122, - 21,0,116,9,0,100,1,0,124,1,0,124,8,0,131,3, - 0,1,87,89,100,2,0,100,2,0,125,8,0,126,8,0, - 88,110,1,0,88,100,2,0,83,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,11,114,38,0,0,0,114,46,0,0,0, - 114,163,0,0,0,114,33,0,0,0,114,28,0,0,0,114, - 3,0,0,0,90,5,109,107,100,105,114,218,15,70,105,108, - 101,69,120,105,115,116,115,69,114,114,111,114,114,40,0,0, - 0,114,105,0,0,0,114,55,0,0,0,41,9,114,108,0, - 0,0,114,35,0,0,0,114,53,0,0,0,114,220,0,0, - 0,218,6,112,97,114,101,110,116,114,94,0,0,0,114,27, - 0,0,0,114,23,0,0,0,114,201,0,0,0,114,4,0, + 5,0,0,0,218,15,95,99,97,99,104,101,95,98,121,116, + 101,99,111,100,101,177,2,0,0,115,2,0,0,0,0,8, + 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,99,3, + 0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,67, + 0,0,0,115,4,0,0,0,100,1,0,83,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,4,0,0,0,41,3,114,108, + 0,0,0,114,35,0,0,0,114,53,0,0,0,114,4,0, 0,0,114,4,0,0,0,114,5,0,0,0,114,198,0,0, - 0,62,3,0,0,115,38,0,0,0,0,2,18,1,6,2, - 22,1,18,1,17,2,19,1,15,1,3,1,17,1,13,2, - 7,1,18,3,16,1,27,1,3,1,16,1,17,1,18,2, - 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,78,41,7,114,112, - 0,0,0,114,111,0,0,0,114,113,0,0,0,114,114,0, - 0,0,114,197,0,0,0,114,199,0,0,0,114,198,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,5,0,0,0,114,218,0,0,0,48,3,0,0,115,8, - 0,0,0,12,2,6,2,12,5,12,5,114,218,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,64,0,0,0,115,46,0,0,0,101,0,0,90,1,0, - 100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,100, - 3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,0, - 0,90,5,0,100,6,0,83,41,7,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,5,0,0,0,6,0,0,0, - 67,0,0,0,115,76,0,0,0,124,0,0,106,0,0,124, - 1,0,131,1,0,125,2,0,124,0,0,106,1,0,124,2, - 0,131,1,0,125,3,0,116,2,0,124,3,0,100,1,0, - 124,1,0,100,2,0,124,2,0,131,1,2,125,4,0,116, - 3,0,124,4,0,100,1,0,124,1,0,100,3,0,124,2, - 0,131,1,2,83,41,4,78,114,106,0,0,0,114,35,0, - 0,0,114,89,0,0,0,41,4,114,157,0,0,0,114,200, - 0,0,0,114,141,0,0,0,114,147,0,0,0,41,5,114, - 108,0,0,0,114,126,0,0,0,114,35,0,0,0,114,53, - 0,0,0,114,209,0,0,0,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,114,187,0,0,0,95,3,0,0, - 115,8,0,0,0,0,1,15,1,15,1,24,1,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,99,2,0,0, - 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, - 0,115,4,0,0,0,100,1,0,83,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,4,0,0,0,41,2,114,108,0, - 0,0,114,126,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,114,202,0,0,0,101,3,0,0,115, - 2,0,0,0,0,2,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,78,41,6,114,112,0,0,0,114, - 111,0,0,0,114,113,0,0,0,114,114,0,0,0,114,187, - 0,0,0,114,202,0,0,0,114,4,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,114,223,0,0, - 0,91,3,0,0,115,6,0,0,0,12,2,6,2,12,6, - 114,223,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,64,0,0,0,115,130,0,0,0,101, - 0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,3, - 0,100,2,0,100,3,0,132,0,0,90,4,0,100,4,0, - 100,5,0,132,0,0,90,5,0,100,6,0,100,7,0,132, - 0,0,90,6,0,101,7,0,100,8,0,100,9,0,132,0, - 0,131,1,0,90,8,0,100,10,0,100,11,0,132,0,0, - 90,9,0,100,12,0,100,13,0,132,0,0,90,10,0,100, - 14,0,100,15,0,132,0,0,90,11,0,101,7,0,100,16, - 0,100,17,0,132,0,0,131,1,0,90,12,0,100,18,0, - 83,41,19,218,19,69,120,116,101,110,115,105,111,110,70,105, - 108,101,76,111,97,100,101,114,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, - 3,0,0,0,2,0,0,0,67,0,0,0,115,22,0,0, - 0,124,1,0,124,0,0,95,0,0,124,2,0,124,0,0, - 95,1,0,100,0,0,83,41,1,78,41,2,114,106,0,0, - 0,114,35,0,0,0,41,3,114,108,0,0,0,114,106,0, - 0,0,114,35,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,114,185,0,0,0,118,3,0,0,115, - 4,0,0,0,0,1,9,1,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,99,2,0,0,0,0,0,0,0,2, - 0,0,0,2,0,0,0,67,0,0,0,115,34,0,0,0, - 124,0,0,106,0,0,124,1,0,106,0,0,107,2,0,111, - 33,0,124,0,0,106,1,0,124,1,0,106,1,0,107,2, - 0,83,41,1,78,41,2,114,211,0,0,0,114,118,0,0, - 0,41,2,114,108,0,0,0,114,212,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,5,0,0,0,114,213,0,0, - 0,122,3,0,0,115,4,0,0,0,0,1,18,1,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,99,1,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115, - 26,0,0,0,116,0,0,124,0,0,106,1,0,131,1,0, - 116,0,0,124,0,0,106,2,0,131,1,0,65,83,41,1, - 78,41,3,114,214,0,0,0,114,106,0,0,0,114,35,0, - 0,0,41,1,114,108,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,5,0,0,0,114,215,0,0,0,126,3,0, - 0,115,2,0,0,0,0,1,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,99,2,0,0,0,0,0,0,0,4, - 0,0,0,11,0,0,0,67,0,0,0,115,184,0,0,0, - 116,0,0,106,1,0,124,1,0,131,1,0,143,32,0,1, - 116,0,0,106,2,0,116,3,0,106,4,0,124,1,0,124, - 0,0,106,5,0,131,3,0,125,2,0,87,100,1,0,81, - 82,88,116,6,0,100,2,0,124,0,0,106,5,0,131,2, - 0,1,124,0,0,106,7,0,124,1,0,131,1,0,125,3, - 0,124,3,0,114,128,0,116,8,0,124,2,0,100,3,0, - 131,2,0,12,114,128,0,116,9,0,124,0,0,106,5,0, - 131,1,0,100,4,0,25,103,1,0,124,2,0,95,10,0, - 124,0,0,124,2,0,95,11,0,124,2,0,106,12,0,124, - 2,0,95,13,0,124,3,0,115,180,0,124,2,0,106,13, - 0,106,14,0,100,5,0,131,1,0,100,4,0,25,124,2, - 0,95,13,0,124,2,0,83,41,6,122,25,76,111,97,100, - 32,97,110,32,101,120,116,101,110,115,105,111,110,32,109,111, - 100,117,108,101,46,78,122,33,101,120,116,101,110,115,105,111, - 110,32,109,111,100,117,108,101,32,108,111,97,100,101,100,32, - 102,114,111,109,32,123,33,114,125,218,8,95,95,112,97,116, - 104,95,95,114,59,0,0,0,114,58,0,0,0,41,15,114, - 121,0,0,0,90,13,95,77,97,110,97,103,101,82,101,108, - 111,97,100,114,188,0,0,0,114,145,0,0,0,90,12,108, - 111,97,100,95,100,121,110,97,109,105,99,114,35,0,0,0, - 114,105,0,0,0,114,159,0,0,0,114,115,0,0,0,114, - 38,0,0,0,114,225,0,0,0,218,10,95,95,108,111,97, - 100,101,114,95,95,114,112,0,0,0,218,11,95,95,112,97, - 99,107,97,103,101,95,95,114,32,0,0,0,41,4,114,108, - 0,0,0,114,126,0,0,0,114,190,0,0,0,114,159,0, + 0,187,2,0,0,115,0,0,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,99,2,0,0,0,0,0,0,0,5,0,0,0,16,0, + 0,0,67,0,0,0,115,105,0,0,0,124,0,0,106,0, + 0,124,1,0,131,1,0,125,2,0,121,19,0,124,0,0, + 106,1,0,124,2,0,131,1,0,125,3,0,87,110,58,0, + 4,116,2,0,107,10,0,114,94,0,1,125,4,0,1,122, + 26,0,116,3,0,100,1,0,100,2,0,124,1,0,131,1, + 1,124,4,0,130,2,0,87,89,100,3,0,100,3,0,125, + 4,0,126,4,0,88,110,1,0,88,116,4,0,124,3,0, + 131,1,0,83,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,106,0,0,0,78,41,5,114,157,0, + 0,0,218,8,103,101,116,95,100,97,116,97,114,40,0,0, + 0,114,107,0,0,0,114,155,0,0,0,41,5,114,108,0, + 0,0,114,126,0,0,0,114,35,0,0,0,114,153,0,0, + 0,218,3,101,120,99,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,218,10,103,101,116,95,115,111,117,114,99, + 101,194,2,0,0,115,14,0,0,0,0,2,15,1,3,1, + 19,1,18,1,9,1,31,1,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,218,9,95,111,112,116,105,109,105,122,101,114,29,0,0, + 0,99,3,0,0,0,1,0,0,0,4,0,0,0,9,0, + 0,0,67,0,0,0,115,34,0,0,0,116,0,0,106,1, + 0,116,2,0,124,1,0,124,2,0,100,1,0,100,2,0, + 100,3,0,100,4,0,124,3,0,131,4,2,83,41,5,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,189,0,0,0,218,12,100,111,110,116,95,105, + 110,104,101,114,105,116,84,114,68,0,0,0,41,3,114,121, + 0,0,0,114,188,0,0,0,218,7,99,111,109,112,105,108, + 101,41,4,114,108,0,0,0,114,53,0,0,0,114,35,0, + 0,0,114,203,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,218,14,115,111,117,114,99,101,95,116, + 111,95,99,111,100,101,204,2,0,0,115,4,0,0,0,0, + 5,21,1,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, + 99,2,0,0,0,0,0,0,0,10,0,0,0,43,0,0, + 0,67,0,0,0,115,174,1,0,0,124,0,0,106,0,0, + 124,1,0,131,1,0,125,2,0,100,1,0,125,3,0,121, + 16,0,116,1,0,124,2,0,131,1,0,125,4,0,87,110, + 24,0,4,116,2,0,107,10,0,114,63,0,1,1,1,100, + 1,0,125,4,0,89,110,202,0,88,121,19,0,124,0,0, + 106,3,0,124,2,0,131,1,0,125,5,0,87,110,18,0, + 4,116,4,0,107,10,0,114,103,0,1,1,1,89,110,162, + 0,88,116,5,0,124,5,0,100,2,0,25,131,1,0,125, + 3,0,121,19,0,124,0,0,106,6,0,124,4,0,131,1, + 0,125,6,0,87,110,18,0,4,116,7,0,107,10,0,114, + 159,0,1,1,1,89,110,106,0,88,121,34,0,116,8,0, + 124,6,0,100,3,0,124,5,0,100,4,0,124,1,0,100, + 5,0,124,4,0,131,1,3,125,7,0,87,110,24,0,4, + 116,9,0,116,10,0,102,2,0,107,10,0,114,220,0,1, + 1,1,89,110,45,0,88,116,11,0,100,6,0,124,4,0, + 124,2,0,131,3,0,1,116,12,0,124,7,0,100,4,0, + 124,1,0,100,7,0,124,4,0,100,8,0,124,2,0,131, + 1,3,83,124,0,0,106,6,0,124,2,0,131,1,0,125, + 8,0,124,0,0,106,13,0,124,8,0,124,2,0,131,2, + 0,125,9,0,116,11,0,100,9,0,124,2,0,131,2,0, + 1,116,14,0,106,15,0,12,114,170,1,124,4,0,100,1, + 0,107,9,0,114,170,1,124,3,0,100,1,0,107,9,0, + 114,170,1,116,16,0,124,9,0,124,3,0,116,17,0,124, + 8,0,131,1,0,131,3,0,125,6,0,121,36,0,124,0, + 0,106,18,0,124,2,0,124,4,0,124,6,0,131,3,0, + 1,116,11,0,100,10,0,124,4,0,131,2,0,1,87,110, + 18,0,4,116,2,0,107,10,0,114,169,1,1,1,1,89, + 110,1,0,88,124,9,0,83,41,11,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,114,133,0,0,0, + 114,138,0,0,0,114,106,0,0,0,114,35,0,0,0,122, + 13,123,125,32,109,97,116,99,104,101,115,32,123,125,114,89, + 0,0,0,114,90,0,0,0,122,19,99,111,100,101,32,111, + 98,106,101,99,116,32,102,114,111,109,32,123,125,122,10,119, + 114,111,116,101,32,123,33,114,125,41,19,114,157,0,0,0, + 114,79,0,0,0,114,66,0,0,0,114,197,0,0,0,114, + 195,0,0,0,114,14,0,0,0,114,200,0,0,0,114,40, + 0,0,0,114,141,0,0,0,114,107,0,0,0,114,136,0, + 0,0,114,105,0,0,0,114,147,0,0,0,114,206,0,0, + 0,114,7,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,150,0,0,0, + 114,31,0,0,0,114,199,0,0,0,41,10,114,108,0,0, + 0,114,126,0,0,0,114,90,0,0,0,114,139,0,0,0, + 114,89,0,0,0,218,2,115,116,114,53,0,0,0,218,10, + 98,121,116,101,115,95,100,97,116,97,114,153,0,0,0,90, + 11,99,111,100,101,95,111,98,106,101,99,116,114,4,0,0, + 0,114,4,0,0,0,114,5,0,0,0,114,187,0,0,0, + 212,2,0,0,115,78,0,0,0,0,7,15,1,6,1,3, + 1,16,1,13,1,11,2,3,1,19,1,13,1,5,2,16, + 1,3,1,19,1,13,1,5,2,3,1,9,1,12,1,13, + 1,19,1,5,2,9,1,7,1,15,1,6,1,7,1,15, + 1,18,1,13,1,22,1,12,1,9,1,15,1,3,1,19, + 1,17,1,13,1,5,1,122,21,83,111,117,114,99,101,76, + 111,97,100,101,114,46,103,101,116,95,99,111,100,101,78,114, + 87,0,0,0,41,10,114,112,0,0,0,114,111,0,0,0, + 114,113,0,0,0,114,196,0,0,0,114,197,0,0,0,114, + 199,0,0,0,114,198,0,0,0,114,202,0,0,0,114,206, + 0,0,0,114,187,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,5,0,0,0,114,194,0,0, + 0,154,2,0,0,115,14,0,0,0,12,2,12,8,12,13, + 12,10,12,7,12,10,18,8,114,194,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, + 0,0,115,112,0,0,0,101,0,0,90,1,0,100,0,0, + 90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,132, + 0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,5, + 0,100,6,0,100,7,0,132,0,0,90,6,0,101,7,0, + 135,0,0,102,1,0,100,8,0,100,9,0,134,0,0,131, + 1,0,90,8,0,101,7,0,100,10,0,100,11,0,132,0, + 0,131,1,0,90,9,0,100,12,0,100,13,0,132,0,0, + 90,10,0,135,0,0,83,41,14,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,3,0,0,0,2,0,0,0,67, + 0,0,0,115,22,0,0,0,124,1,0,124,0,0,95,0, + 0,124,2,0,124,0,0,95,1,0,100,1,0,83,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,41,2, + 114,106,0,0,0,114,35,0,0,0,41,3,114,108,0,0, + 0,114,126,0,0,0,114,35,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,185,0,0,0,13, + 3,0,0,115,4,0,0,0,0,3,9,1,122,19,70,105, + 108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,95, + 95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0, + 0,0,67,0,0,0,115,34,0,0,0,124,0,0,106,0, + 0,124,1,0,106,0,0,107,2,0,111,33,0,124,0,0, + 106,1,0,124,1,0,106,1,0,107,2,0,83,41,1,78, + 41,2,218,9,95,95,99,108,97,115,115,95,95,114,118,0, + 0,0,41,2,114,108,0,0,0,218,5,111,116,104,101,114, + 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,218, + 6,95,95,101,113,95,95,19,3,0,0,115,4,0,0,0, + 0,1,18,1,122,17,70,105,108,101,76,111,97,100,101,114, + 46,95,95,101,113,95,95,99,1,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,67,0,0,0,115,26,0,0, + 0,116,0,0,124,0,0,106,1,0,131,1,0,116,0,0, + 124,0,0,106,2,0,131,1,0,65,83,41,1,78,41,3, + 218,4,104,97,115,104,114,106,0,0,0,114,35,0,0,0, + 41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,218,8,95,95,104,97,115,104,95,95, + 23,3,0,0,115,2,0,0,0,0,1,122,19,70,105,108, + 101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,95, + 99,2,0,0,0,0,0,0,0,2,0,0,0,3,0,0, + 0,3,0,0,0,115,22,0,0,0,116,0,0,116,1,0, + 124,0,0,131,2,0,106,2,0,124,1,0,131,1,0,83, + 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,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,210,0,0,0,114,193,0,0,0,41,2,114,108,0, + 0,0,114,126,0,0,0,41,1,114,211,0,0,0,114,4, + 0,0,0,114,5,0,0,0,114,193,0,0,0,26,3,0, + 0,115,2,0,0,0,0,10,122,22,70,105,108,101,76,111, + 97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, + 0,67,0,0,0,115,7,0,0,0,124,0,0,106,0,0, + 83,41,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,41, + 1,114,35,0,0,0,41,2,114,108,0,0,0,114,126,0, 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,114,193,0,0,0,129,3,0,0,115,24,0,0,0,0, - 5,16,1,12,1,22,1,16,1,15,1,22,1,25,1,9, - 1,12,1,6,1,25,1,122,31,69,120,116,101,110,115,105, - 111,110,70,105,108,101,76,111,97,100,101,114,46,108,111,97, - 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,4,0,0,0,3,0,0,0,115,48,0, - 0,0,116,0,0,124,0,0,106,1,0,131,1,0,100,1, - 0,25,137,0,0,116,2,0,135,0,0,102,1,0,100,2, - 0,100,3,0,134,0,0,116,3,0,68,131,1,0,131,1, - 0,83,41,4,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,29,0,0,0,99,1,0,0, - 0,0,0,0,0,2,0,0,0,4,0,0,0,51,0,0, - 0,115,31,0,0,0,124,0,0,93,21,0,125,1,0,136, - 0,0,100,0,0,124,1,0,23,107,2,0,86,1,113,3, - 0,100,1,0,83,41,2,114,185,0,0,0,78,114,4,0, - 0,0,41,2,114,22,0,0,0,218,6,115,117,102,102,105, - 120,41,1,218,9,102,105,108,101,95,110,97,109,101,114,4, - 0,0,0,114,5,0,0,0,250,9,60,103,101,110,101,120, - 112,114,62,150,3,0,0,115,2,0,0,0,6,1,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,41,4,114,38,0,0,0,114,35,0,0,0,218,3,97, - 110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,85, - 70,70,73,88,69,83,41,2,114,108,0,0,0,114,126,0, - 0,0,114,4,0,0,0,41,1,114,229,0,0,0,114,5, - 0,0,0,114,159,0,0,0,147,3,0,0,115,6,0,0, - 0,0,2,19,1,18,1,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,99,2,0,0,0,0,0,0,0, - 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, - 0,100,1,0,83,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,4,0,0,0,41,2, - 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,187,0,0,0,153,3, - 0,0,115,2,0,0,0,0,2,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,99,2,0,0,0,0,0,0,0, - 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, - 0,100,1,0,83,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, - 4,0,0,0,41,2,114,108,0,0,0,114,126,0,0,0, + 0,114,157,0,0,0,38,3,0,0,115,2,0,0,0,0, + 3,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,99,2,0,0,0,0, + 0,0,0,3,0,0,0,9,0,0,0,67,0,0,0,115, + 42,0,0,0,116,0,0,106,1,0,124,1,0,100,1,0, + 131,2,0,143,17,0,125,2,0,124,2,0,106,2,0,131, + 0,0,83,87,100,2,0,81,82,88,100,2,0,83,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,218,1,114,78,41,3,114, + 49,0,0,0,114,50,0,0,0,90,4,114,101,97,100,41, + 3,114,108,0,0,0,114,35,0,0,0,114,54,0,0,0, 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 202,0,0,0,157,3,0,0,115,2,0,0,0,0,2,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,99, - 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, - 67,0,0,0,115,7,0,0,0,124,0,0,106,0,0,83, - 41,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,41,1, - 114,35,0,0,0,41,2,114,108,0,0,0,114,126,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,157,0,0,0,161,3,0,0,115,2,0,0,0,0,3, - 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,78,41,13,114,112,0,0,0,114,111,0,0,0,114, - 113,0,0,0,114,114,0,0,0,114,185,0,0,0,114,213, - 0,0,0,114,215,0,0,0,114,123,0,0,0,114,193,0, - 0,0,114,159,0,0,0,114,187,0,0,0,114,202,0,0, - 0,114,157,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,114,224,0,0,0,110, - 3,0,0,115,18,0,0,0,12,6,6,2,12,4,12,4, - 12,3,18,18,12,6,12,4,12,4,114,224,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 64,0,0,0,115,130,0,0,0,101,0,0,90,1,0,100, - 0,0,90,2,0,100,1,0,90,3,0,100,2,0,100,3, - 0,132,0,0,90,4,0,100,4,0,100,5,0,132,0,0, - 90,5,0,100,6,0,100,7,0,132,0,0,90,6,0,100, - 8,0,100,9,0,132,0,0,90,7,0,100,10,0,100,11, - 0,132,0,0,90,8,0,100,12,0,100,13,0,132,0,0, - 90,9,0,100,14,0,100,15,0,132,0,0,90,10,0,100, - 16,0,100,17,0,132,0,0,90,11,0,100,18,0,100,19, - 0,132,0,0,90,12,0,100,20,0,83,41,21,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,99,4,0,0,0,0,0,0, - 0,4,0,0,0,2,0,0,0,67,0,0,0,115,52,0, - 0,0,124,1,0,124,0,0,95,0,0,124,2,0,124,0, - 0,95,1,0,116,2,0,124,0,0,106,3,0,131,0,0, - 131,1,0,124,0,0,95,4,0,124,3,0,124,0,0,95, - 5,0,100,0,0,83,41,1,78,41,6,218,5,95,110,97, - 109,101,218,5,95,112,97,116,104,114,93,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,12,95,112,97,116,104,95,102,105,110,100,101, - 114,41,4,114,108,0,0,0,114,106,0,0,0,114,35,0, - 0,0,218,11,112,97,116,104,95,102,105,110,100,101,114,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,185, - 0,0,0,174,3,0,0,115,8,0,0,0,0,1,9,1, - 9,1,21,1,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,99,1,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0, - 0,0,115,53,0,0,0,124,0,0,106,0,0,106,1,0, - 100,1,0,131,1,0,92,3,0,125,1,0,125,2,0,125, - 3,0,124,2,0,100,2,0,107,2,0,114,43,0,100,6, - 0,83,124,1,0,100,5,0,102,2,0,83,41,7,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,58, - 0,0,0,114,30,0,0,0,114,7,0,0,0,114,35,0, - 0,0,114,225,0,0,0,41,2,122,3,115,121,115,122,4, - 112,97,116,104,41,2,114,234,0,0,0,114,32,0,0,0, + 200,0,0,0,43,3,0,0,115,4,0,0,0,0,2,21, + 1,122,19,70,105,108,101,76,111,97,100,101,114,46,103,101, + 116,95,100,97,116,97,41,11,114,112,0,0,0,114,111,0, + 0,0,114,113,0,0,0,114,114,0,0,0,114,185,0,0, + 0,114,213,0,0,0,114,215,0,0,0,114,123,0,0,0, + 114,193,0,0,0,114,157,0,0,0,114,200,0,0,0,114, + 4,0,0,0,114,4,0,0,0,41,1,114,211,0,0,0, + 114,5,0,0,0,114,210,0,0,0,8,3,0,0,115,14, + 0,0,0,12,3,6,2,12,6,12,4,12,3,24,12,18, + 5,114,210,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,64,0,0,0,115,64,0,0,0, + 101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,90, + 3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,4, + 0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,0, + 100,8,0,100,9,0,132,0,1,90,6,0,100,10,0,83, + 41,11,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,3,0,0, + 0,5,0,0,0,67,0,0,0,115,34,0,0,0,116,0, + 0,124,1,0,131,1,0,125,2,0,124,2,0,106,1,0, + 100,1,0,124,2,0,106,2,0,100,2,0,105,2,0,83, + 41,3,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,114,133,0,0,0,114,134,0,0,0,41, + 3,114,39,0,0,0,218,8,115,116,95,109,116,105,109,101, + 90,7,115,116,95,115,105,122,101,41,3,114,108,0,0,0, + 114,35,0,0,0,114,208,0,0,0,114,4,0,0,0,114, + 4,0,0,0,114,5,0,0,0,114,197,0,0,0,53,3, + 0,0,115,4,0,0,0,0,2,12,1,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,99,4,0,0,0,0,0,0, + 0,5,0,0,0,5,0,0,0,67,0,0,0,115,34,0, + 0,0,116,0,0,124,1,0,131,1,0,125,4,0,124,0, + 0,106,1,0,124,2,0,124,3,0,100,1,0,124,4,0, + 131,2,1,83,41,2,78,218,5,95,109,111,100,101,41,2, + 114,97,0,0,0,114,198,0,0,0,41,5,114,108,0,0, + 0,114,90,0,0,0,114,89,0,0,0,114,53,0,0,0, + 114,42,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,199,0,0,0,58,3,0,0,115,4,0, + 0,0,0,2,12,1,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,114,220,0,0,0,105,182,1, + 0,0,99,3,0,0,0,1,0,0,0,9,0,0,0,17, + 0,0,0,67,0,0,0,115,53,1,0,0,116,0,0,124, + 1,0,131,1,0,92,2,0,125,4,0,125,5,0,103,0, + 0,125,6,0,120,54,0,124,4,0,114,80,0,116,1,0, + 124,4,0,131,1,0,12,114,80,0,116,0,0,124,4,0, + 131,1,0,92,2,0,125,4,0,125,7,0,124,6,0,106, + 2,0,124,7,0,131,1,0,1,113,27,0,87,120,132,0, + 116,3,0,124,6,0,131,1,0,68,93,118,0,125,7,0, + 116,4,0,124,4,0,124,7,0,131,2,0,125,4,0,121, + 17,0,116,5,0,106,6,0,124,4,0,131,1,0,1,87, + 113,94,0,4,116,7,0,107,10,0,114,155,0,1,1,1, + 119,94,0,89,113,94,0,4,116,8,0,107,10,0,114,211, + 0,1,125,8,0,1,122,25,0,116,9,0,100,1,0,124, + 4,0,124,8,0,131,3,0,1,100,2,0,83,87,89,100, + 2,0,100,2,0,125,8,0,126,8,0,88,113,94,0,88, + 113,94,0,87,121,33,0,116,10,0,124,1,0,124,2,0, + 124,3,0,131,3,0,1,116,9,0,100,3,0,124,1,0, + 131,2,0,1,87,110,53,0,4,116,8,0,107,10,0,114, + 48,1,1,125,8,0,1,122,21,0,116,9,0,100,1,0, + 124,1,0,124,8,0,131,3,0,1,87,89,100,2,0,100, + 2,0,125,8,0,126,8,0,88,110,1,0,88,100,2,0, + 83,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,11,114,38, + 0,0,0,114,46,0,0,0,114,163,0,0,0,114,33,0, + 0,0,114,28,0,0,0,114,3,0,0,0,90,5,109,107, + 100,105,114,218,15,70,105,108,101,69,120,105,115,116,115,69, + 114,114,111,114,114,40,0,0,0,114,105,0,0,0,114,55, + 0,0,0,41,9,114,108,0,0,0,114,35,0,0,0,114, + 53,0,0,0,114,220,0,0,0,218,6,112,97,114,101,110, + 116,114,94,0,0,0,114,27,0,0,0,114,23,0,0,0, + 114,201,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,198,0,0,0,63,3,0,0,115,38,0, + 0,0,0,2,18,1,6,2,22,1,18,1,17,2,19,1, + 15,1,3,1,17,1,13,2,7,1,18,3,16,1,27,1, + 3,1,16,1,17,1,18,2,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,78,41,7,114,112,0,0,0,114,111,0,0,0, + 114,113,0,0,0,114,114,0,0,0,114,197,0,0,0,114, + 199,0,0,0,114,198,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,218,0, + 0,0,49,3,0,0,115,8,0,0,0,12,2,6,2,12, + 5,12,5,114,218,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,64,0,0,0,115,46,0, + 0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,1, + 0,90,3,0,100,2,0,100,3,0,132,0,0,90,4,0, + 100,4,0,100,5,0,132,0,0,90,5,0,100,6,0,83, + 41,7,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, + 5,0,0,0,6,0,0,0,67,0,0,0,115,76,0,0, + 0,124,0,0,106,0,0,124,1,0,131,1,0,125,2,0, + 124,0,0,106,1,0,124,2,0,131,1,0,125,3,0,116, + 2,0,124,3,0,100,1,0,124,1,0,100,2,0,124,2, + 0,131,1,2,125,4,0,116,3,0,124,4,0,100,1,0, + 124,1,0,100,3,0,124,2,0,131,1,2,83,41,4,78, + 114,106,0,0,0,114,35,0,0,0,114,89,0,0,0,41, + 4,114,157,0,0,0,114,200,0,0,0,114,141,0,0,0, + 114,147,0,0,0,41,5,114,108,0,0,0,114,126,0,0, + 0,114,35,0,0,0,114,53,0,0,0,114,209,0,0,0, + 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, + 187,0,0,0,96,3,0,0,115,8,0,0,0,0,1,15, + 1,15,1,24,1,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,99,2,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, + 0,83,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,4, + 0,0,0,41,2,114,108,0,0,0,114,126,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,202, + 0,0,0,102,3,0,0,115,2,0,0,0,0,2,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,78, + 41,6,114,112,0,0,0,114,111,0,0,0,114,113,0,0, + 0,114,114,0,0,0,114,187,0,0,0,114,202,0,0,0, + 114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,223,0,0,0,92,3,0,0,115,6,0, + 0,0,12,2,6,2,12,6,114,223,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,0, + 0,0,115,136,0,0,0,101,0,0,90,1,0,100,0,0, + 90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,132, + 0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,5, + 0,100,6,0,100,7,0,132,0,0,90,6,0,100,8,0, + 100,9,0,132,0,0,90,7,0,100,10,0,100,11,0,132, + 0,0,90,8,0,100,12,0,100,13,0,132,0,0,90,9, + 0,100,14,0,100,15,0,132,0,0,90,10,0,100,16,0, + 100,17,0,132,0,0,90,11,0,101,12,0,100,18,0,100, + 19,0,132,0,0,131,1,0,90,13,0,100,20,0,83,41, + 21,218,19,69,120,116,101,110,115,105,111,110,70,105,108,101, + 76,111,97,100,101,114,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,3,0, + 0,0,2,0,0,0,67,0,0,0,115,22,0,0,0,124, + 1,0,124,0,0,95,0,0,124,2,0,124,0,0,95,1, + 0,100,0,0,83,41,1,78,41,2,114,106,0,0,0,114, + 35,0,0,0,41,3,114,108,0,0,0,114,106,0,0,0, + 114,35,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,185,0,0,0,119,3,0,0,115,4,0, + 0,0,0,1,9,1,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,99,2,0,0,0,0,0,0,0,2,0,0, + 0,2,0,0,0,67,0,0,0,115,34,0,0,0,124,0, + 0,106,0,0,124,1,0,106,0,0,107,2,0,111,33,0, + 124,0,0,106,1,0,124,1,0,106,1,0,107,2,0,83, + 41,1,78,41,2,114,211,0,0,0,114,118,0,0,0,41, + 2,114,108,0,0,0,114,212,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,5,0,0,0,114,213,0,0,0,123, + 3,0,0,115,4,0,0,0,0,1,18,1,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,99,1,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,67,0,0,0,115,26,0, + 0,0,116,0,0,124,0,0,106,1,0,131,1,0,116,0, + 0,124,0,0,106,2,0,131,1,0,65,83,41,1,78,41, + 3,114,214,0,0,0,114,106,0,0,0,114,35,0,0,0, + 41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,5,0,0,0,114,215,0,0,0,127,3,0,0,115, + 2,0,0,0,0,1,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,99,2,0,0,0,0,0,0,0,3,0,0, + 0,4,0,0,0,67,0,0,0,115,47,0,0,0,116,0, + 0,106,1,0,116,2,0,106,3,0,124,1,0,131,2,0, + 125,2,0,116,4,0,100,1,0,124,1,0,106,5,0,124, + 0,0,106,6,0,131,3,0,1,124,2,0,83,41,2,122, + 38,67,114,101,97,116,101,32,97,110,32,117,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,121,0,0,0,114,188,0,0,0,114,145,0,0,0, + 90,14,99,114,101,97,116,101,95,100,121,110,97,109,105,99, + 114,105,0,0,0,114,106,0,0,0,114,35,0,0,0,41, + 3,114,108,0,0,0,114,164,0,0,0,114,190,0,0,0, + 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, + 186,0,0,0,130,3,0,0,115,10,0,0,0,0,2,6, + 1,15,1,6,1,16,1,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,99,2,0,0,0,0, + 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115, + 45,0,0,0,116,0,0,106,1,0,116,2,0,106,3,0, + 124,1,0,131,2,0,1,116,4,0,100,1,0,124,0,0, + 106,5,0,124,0,0,106,6,0,131,3,0,1,100,2,0, + 83,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,121,0,0,0,114,188,0,0,0,114,145,0,0,0,90, + 12,101,120,101,99,95,100,121,110,97,109,105,99,114,105,0, + 0,0,114,106,0,0,0,114,35,0,0,0,41,2,114,108, + 0,0,0,114,190,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,114,191,0,0,0,138,3,0,0, + 115,6,0,0,0,0,2,19,1,6,1,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,99,2,0,0, + 0,0,0,0,0,2,0,0,0,4,0,0,0,3,0,0, + 0,115,48,0,0,0,116,0,0,124,0,0,106,1,0,131, + 1,0,100,1,0,25,137,0,0,116,2,0,135,0,0,102, + 1,0,100,2,0,100,3,0,134,0,0,116,3,0,68,131, + 1,0,131,1,0,83,41,4,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,29,0,0,0, + 99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,0, + 0,51,0,0,0,115,31,0,0,0,124,0,0,93,21,0, + 125,1,0,136,0,0,100,0,0,124,1,0,23,107,2,0, + 86,1,113,3,0,100,1,0,83,41,2,114,185,0,0,0, + 78,114,4,0,0,0,41,2,114,22,0,0,0,218,6,115, + 117,102,102,105,120,41,1,218,9,102,105,108,101,95,110,97, + 109,101,114,4,0,0,0,114,5,0,0,0,250,9,60,103, + 101,110,101,120,112,114,62,147,3,0,0,115,2,0,0,0, + 6,1,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,41,4,114,38,0,0,0,114,35,0,0, + 0,218,3,97,110,121,218,18,69,88,84,69,78,83,73,79, + 78,95,83,85,70,70,73,88,69,83,41,2,114,108,0,0, + 0,114,126,0,0,0,114,4,0,0,0,41,1,114,226,0, + 0,0,114,5,0,0,0,114,159,0,0,0,144,3,0,0, + 115,6,0,0,0,0,2,19,1,18,1,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,99,2,0,0,0, + 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, + 115,4,0,0,0,100,1,0,83,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,4,0, + 0,0,41,2,114,108,0,0,0,114,126,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,187,0, + 0,0,150,3,0,0,115,2,0,0,0,0,2,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,99,2,0,0,0, + 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, + 115,4,0,0,0,100,1,0,83,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,4,0,0,0,41,2,114,108,0,0,0,114, + 126,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,202,0,0,0,154,3,0,0,115,2,0,0, + 0,0,2,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,99,2,0,0,0,0,0,0,0,2,0,0,0, + 1,0,0,0,67,0,0,0,115,7,0,0,0,124,0,0, + 106,0,0,83,41,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,41,1,114,35,0,0,0,41,2,114,108,0,0,0, + 114,126,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,157,0,0,0,158,3,0,0,115,2,0, + 0,0,0,3,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,78,41,14,114,112,0,0,0,114,111, + 0,0,0,114,113,0,0,0,114,114,0,0,0,114,185,0, + 0,0,114,213,0,0,0,114,215,0,0,0,114,186,0,0, + 0,114,191,0,0,0,114,159,0,0,0,114,187,0,0,0, + 114,202,0,0,0,114,123,0,0,0,114,157,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,224,0,0,0,111,3,0,0,115,20,0,0, + 0,12,6,6,2,12,4,12,4,12,3,12,8,12,6,12, + 6,12,4,12,4,114,224,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115, + 130,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0, + 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90, + 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6, + 0,100,7,0,132,0,0,90,6,0,100,8,0,100,9,0, + 132,0,0,90,7,0,100,10,0,100,11,0,132,0,0,90, + 8,0,100,12,0,100,13,0,132,0,0,90,9,0,100,14, + 0,100,15,0,132,0,0,90,10,0,100,16,0,100,17,0, + 132,0,0,90,11,0,100,18,0,100,19,0,132,0,0,90, + 12,0,100,20,0,83,41,21,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,99,4,0,0,0,0,0,0,0,4,0,0,0, + 2,0,0,0,67,0,0,0,115,52,0,0,0,124,1,0, + 124,0,0,95,0,0,124,2,0,124,0,0,95,1,0,116, + 2,0,124,0,0,106,3,0,131,0,0,131,1,0,124,0, + 0,95,4,0,124,3,0,124,0,0,95,5,0,100,0,0, + 83,41,1,78,41,6,218,5,95,110,97,109,101,218,5,95, + 112,97,116,104,114,93,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,12, + 95,112,97,116,104,95,102,105,110,100,101,114,41,4,114,108, + 0,0,0,114,106,0,0,0,114,35,0,0,0,218,11,112, + 97,116,104,95,102,105,110,100,101,114,114,4,0,0,0,114, + 4,0,0,0,114,5,0,0,0,114,185,0,0,0,171,3, + 0,0,115,8,0,0,0,0,1,9,1,9,1,21,1,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,99,1,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,67,0,0,0,115,53,0, + 0,0,124,0,0,106,0,0,106,1,0,100,1,0,131,1, + 0,92,3,0,125,1,0,125,2,0,125,3,0,124,2,0, + 100,2,0,107,2,0,114,43,0,100,6,0,83,124,1,0, + 100,5,0,102,2,0,83,41,7,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,58,0,0,0,114,30, + 0,0,0,114,7,0,0,0,114,35,0,0,0,90,8,95, + 95,112,97,116,104,95,95,41,2,122,3,115,121,115,122,4, + 112,97,116,104,41,2,114,231,0,0,0,114,32,0,0,0, 41,4,114,108,0,0,0,114,222,0,0,0,218,3,100,111, 116,90,2,109,101,114,4,0,0,0,114,4,0,0,0,114, 5,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,180,3,0, + 110,116,95,112,97,116,104,95,110,97,109,101,115,177,3,0, 0,115,8,0,0,0,0,2,27,1,12,2,4,3,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, @@ -1712,13 +1718,13 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0, 124,0,0,106,0,0,131,0,0,92,2,0,125,1,0,125, 2,0,116,1,0,116,2,0,106,3,0,124,1,0,25,124, - 2,0,131,2,0,83,41,1,78,41,4,114,241,0,0,0, + 2,0,131,2,0,83,41,1,78,41,4,114,238,0,0,0, 114,117,0,0,0,114,7,0,0,0,218,7,109,111,100,117, 108,101,115,41,3,114,108,0,0,0,90,18,112,97,114,101, 110,116,95,109,111,100,117,108,101,95,110,97,109,101,90,14, 112,97,116,104,95,97,116,116,114,95,110,97,109,101,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,236,0, - 0,0,190,3,0,0,115,4,0,0,0,0,1,18,1,122, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,233,0, + 0,0,187,3,0,0,115,4,0,0,0,0,1,18,1,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, 99,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0, @@ -1730,65 +1736,65 @@ const unsigned char _Py_M__importlib_external[] = { 5,0,100,0,0,107,8,0,114,102,0,124,2,0,106,6, 0,114,102,0,124,2,0,106,6,0,124,0,0,95,7,0, 124,1,0,124,0,0,95,2,0,124,0,0,106,7,0,83, - 41,1,78,41,8,114,93,0,0,0,114,236,0,0,0,114, - 237,0,0,0,114,238,0,0,0,114,234,0,0,0,114,127, - 0,0,0,114,156,0,0,0,114,235,0,0,0,41,3,114, + 41,1,78,41,8,114,93,0,0,0,114,233,0,0,0,114, + 234,0,0,0,114,235,0,0,0,114,231,0,0,0,114,127, + 0,0,0,114,156,0,0,0,114,232,0,0,0,41,3,114, 108,0,0,0,90,11,112,97,114,101,110,116,95,112,97,116, 104,114,164,0,0,0,114,4,0,0,0,114,4,0,0,0, 114,5,0,0,0,218,12,95,114,101,99,97,108,99,117,108, - 97,116,101,194,3,0,0,115,16,0,0,0,0,2,18,1, + 97,116,101,191,3,0,0,115,16,0,0,0,0,2,18,1, 15,1,21,3,27,1,9,1,12,1,9,1,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,99,1,0,0,0,0,0, 0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,16, 0,0,0,116,0,0,124,0,0,106,1,0,131,0,0,131, - 1,0,83,41,1,78,41,2,218,4,105,116,101,114,114,243, + 1,0,83,41,1,78,41,2,218,4,105,116,101,114,114,240, 0,0,0,41,1,114,108,0,0,0,114,4,0,0,0,114, 4,0,0,0,114,5,0,0,0,218,8,95,95,105,116,101, - 114,95,95,207,3,0,0,115,2,0,0,0,0,1,122,23, + 114,95,95,204,3,0,0,115,2,0,0,0,0,1,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,99,1,0,0,0,0,0,0,0, 1,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0, 0,116,0,0,124,0,0,106,1,0,131,0,0,131,1,0, - 83,41,1,78,41,2,114,31,0,0,0,114,243,0,0,0, + 83,41,1,78,41,2,114,31,0,0,0,114,240,0,0,0, 41,1,114,108,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,5,0,0,0,218,7,95,95,108,101,110,95,95,210, + 0,114,5,0,0,0,218,7,95,95,108,101,110,95,95,207, 3,0,0,115,2,0,0,0,0,1,122,22,95,78,97,109, 101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,110, 95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,2, 0,0,0,67,0,0,0,115,16,0,0,0,100,1,0,106, 0,0,124,0,0,106,1,0,131,1,0,83,41,2,78,122, 20,95,78,97,109,101,115,112,97,99,101,80,97,116,104,40, - 123,33,114,125,41,41,2,114,47,0,0,0,114,235,0,0, + 123,33,114,125,41,41,2,114,47,0,0,0,114,232,0,0, 0,41,1,114,108,0,0,0,114,4,0,0,0,114,4,0, 0,0,114,5,0,0,0,218,8,95,95,114,101,112,114,95, - 95,213,3,0,0,115,2,0,0,0,0,1,122,23,95,78, + 95,210,3,0,0,115,2,0,0,0,0,1,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,99,2,0,0,0,0,0,0,0,2,0, 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,124, 1,0,124,0,0,106,0,0,131,0,0,107,6,0,83,41, - 1,78,41,1,114,243,0,0,0,41,2,114,108,0,0,0, + 1,78,41,1,114,240,0,0,0,41,2,114,108,0,0,0, 218,4,105,116,101,109,114,4,0,0,0,114,4,0,0,0, 114,5,0,0,0,218,12,95,95,99,111,110,116,97,105,110, - 115,95,95,216,3,0,0,115,2,0,0,0,0,1,122,27, + 115,95,95,213,3,0,0,115,2,0,0,0,0,1,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,99,2,0,0,0, 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0, 115,20,0,0,0,124,0,0,106,0,0,106,1,0,124,1, - 0,131,1,0,1,100,0,0,83,41,1,78,41,2,114,235, + 0,131,1,0,1,100,0,0,83,41,1,78,41,2,114,232, 0,0,0,114,163,0,0,0,41,2,114,108,0,0,0,114, - 248,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,114,163,0,0,0,219,3,0,0,115,2,0,0, + 245,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, + 0,0,0,114,163,0,0,0,216,3,0,0,115,2,0,0, 0,0,1,122,21,95,78,97,109,101,115,112,97,99,101,80, 97,116,104,46,97,112,112,101,110,100,78,41,13,114,112,0, 0,0,114,111,0,0,0,114,113,0,0,0,114,114,0,0, - 0,114,185,0,0,0,114,241,0,0,0,114,236,0,0,0, - 114,243,0,0,0,114,245,0,0,0,114,246,0,0,0,114, - 247,0,0,0,114,249,0,0,0,114,163,0,0,0,114,4, + 0,114,185,0,0,0,114,238,0,0,0,114,233,0,0,0, + 114,240,0,0,0,114,242,0,0,0,114,243,0,0,0,114, + 244,0,0,0,114,246,0,0,0,114,163,0,0,0,114,4, 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,114,233,0,0,0,167,3,0,0,115,20,0,0,0, + 0,0,114,230,0,0,0,164,3,0,0,115,20,0,0,0, 12,5,6,2,12,6,12,10,12,4,12,13,12,3,12,3, - 12,3,12,3,114,233,0,0,0,99,0,0,0,0,0,0, + 12,3,12,3,114,230,0,0,0,99,0,0,0,0,0,0, 0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,118, 0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,100, 1,0,100,2,0,132,0,0,90,3,0,101,4,0,100,3, @@ -1802,10 +1808,10 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0, 0,0,115,25,0,0,0,116,0,0,124,1,0,124,2,0, 124,3,0,131,3,0,124,0,0,95,1,0,100,0,0,83, - 41,1,78,41,2,114,233,0,0,0,114,235,0,0,0,41, + 41,1,78,41,2,114,230,0,0,0,114,232,0,0,0,41, 4,114,108,0,0,0,114,106,0,0,0,114,35,0,0,0, - 114,239,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,185,0,0,0,225,3,0,0,115,2,0, + 114,236,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,114,185,0,0,0,222,3,0,0,115,2,0, 0,0,0,1,122,25,95,78,97,109,101,115,112,97,99,101, 76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,99, 2,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0, @@ -1822,14 +1828,14 @@ const unsigned char _Py_M__importlib_external[] = { 110,97,109,101,115,112,97,99,101,41,62,41,2,114,47,0, 0,0,114,112,0,0,0,41,2,114,170,0,0,0,114,190, 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, - 0,0,218,11,109,111,100,117,108,101,95,114,101,112,114,228, + 0,0,218,11,109,111,100,117,108,101,95,114,101,112,114,225, 3,0,0,115,2,0,0,0,0,7,122,28,95,78,97,109, 101,115,112,97,99,101,76,111,97,100,101,114,46,109,111,100, 117,108,101,95,114,101,112,114,99,2,0,0,0,0,0,0, 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, 0,0,100,1,0,83,41,2,78,84,114,4,0,0,0,41, 2,114,108,0,0,0,114,126,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,114,159,0,0,0,237, + 114,4,0,0,0,114,5,0,0,0,114,159,0,0,0,234, 3,0,0,115,2,0,0,0,0,1,122,27,95,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,99,2,0,0,0,0,0,0,0, @@ -1837,7 +1843,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,100,1,0,83,41,2,78,114,30,0,0,0,114,4,0, 0,0,41,2,114,108,0,0,0,114,126,0,0,0,114,4, 0,0,0,114,4,0,0,0,114,5,0,0,0,114,202,0, - 0,0,240,3,0,0,115,2,0,0,0,0,1,122,27,95, + 0,0,237,3,0,0,115,2,0,0,0,0,1,122,27,95, 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,99,2,0,0,0,0, 0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,115, @@ -1846,7 +1852,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,122,8,60,115,116,114,105,110,103,62,114,189,0,0, 0,114,204,0,0,0,84,41,1,114,205,0,0,0,41,2, 114,108,0,0,0,114,126,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,187,0,0,0,243,3, + 4,0,0,0,114,5,0,0,0,114,187,0,0,0,240,3, 0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101, 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95, 99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,0, @@ -1856,14 +1862,14 @@ const unsigned char _Py_M__importlib_external[] = { 109,111,100,117,108,101,32,99,114,101,97,116,105,111,110,46, 78,114,4,0,0,0,41,2,114,108,0,0,0,114,164,0, 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,114,186,0,0,0,246,3,0,0,115,0,0,0,0,122, + 0,114,186,0,0,0,243,3,0,0,115,0,0,0,0,122, 30,95,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,99, 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, 67,0,0,0,115,4,0,0,0,100,0,0,83,41,1,78, 114,4,0,0,0,41,2,114,108,0,0,0,114,190,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,191,0,0,0,249,3,0,0,115,2,0,0,0,0,1, + 114,191,0,0,0,246,3,0,0,115,2,0,0,0,0,1, 122,28,95,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,99,2, 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67, @@ -1878,20 +1884,20 @@ const unsigned char _Py_M__importlib_external[] = { 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,105,0,0,0,114,235,0, + 104,32,123,33,114,125,41,4,114,105,0,0,0,114,232,0, 0,0,114,121,0,0,0,114,192,0,0,0,41,2,114,108, 0,0,0,114,126,0,0,0,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,114,193,0,0,0,252,3,0,0, + 0,0,114,5,0,0,0,114,193,0,0,0,249,3,0,0, 115,4,0,0,0,0,7,16,1,122,28,95,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,78,41,12,114,112,0,0,0,114, 111,0,0,0,114,113,0,0,0,114,185,0,0,0,114,183, - 0,0,0,114,251,0,0,0,114,159,0,0,0,114,202,0, + 0,0,0,114,248,0,0,0,114,159,0,0,0,114,202,0, 0,0,114,187,0,0,0,114,186,0,0,0,114,191,0,0, 0,114,193,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,5,0,0,0,114,250,0,0,0,224, + 114,4,0,0,0,114,5,0,0,0,114,247,0,0,0,221, 3,0,0,115,16,0,0,0,12,1,12,3,18,9,12,3, - 12,3,12,3,12,3,12,3,114,250,0,0,0,99,0,0, + 12,3,12,3,12,3,12,3,114,247,0,0,0,99,0,0, 0,0,0,0,0,0,0,0,0,0,5,0,0,0,64,0, 0,0,115,160,0,0,0,101,0,0,90,1,0,100,0,0, 90,2,0,100,1,0,90,3,0,101,4,0,100,2,0,100, @@ -1925,9 +1931,9 @@ const unsigned char _Py_M__importlib_external[] = { 97,116,101,95,99,97,99,104,101,115,78,41,5,114,7,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,6,118,97,108,117,101,115,114, - 115,0,0,0,114,253,0,0,0,41,2,114,170,0,0,0, + 115,0,0,0,114,250,0,0,0,41,2,114,170,0,0,0, 218,6,102,105,110,100,101,114,114,4,0,0,0,114,4,0, - 0,0,114,5,0,0,0,114,253,0,0,0,13,4,0,0, + 0,0,114,5,0,0,0,114,250,0,0,0,10,4,0,0, 115,6,0,0,0,0,4,22,1,15,1,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,99,2,0,0,0,0,0, @@ -1953,7 +1959,7 @@ const unsigned char _Py_M__importlib_external[] = { 107,0,0,0,41,3,114,170,0,0,0,114,35,0,0,0, 90,4,104,111,111,107,114,4,0,0,0,114,4,0,0,0, 114,5,0,0,0,218,11,95,112,97,116,104,95,104,111,111, - 107,115,21,4,0,0,115,16,0,0,0,0,7,25,1,16, + 107,115,18,4,0,0,115,16,0,0,0,0,7,25,1,16, 1,16,1,3,1,14,1,13,1,12,2,122,22,80,97,116, 104,70,105,110,100,101,114,46,95,112,97,116,104,95,104,111, 111,107,115,99,2,0,0,0,0,0,0,0,3,0,0,0, @@ -1981,11 +1987,11 @@ const unsigned char _Py_M__importlib_external[] = { 111,110,101,46,10,10,32,32,32,32,32,32,32,32,114,30, 0,0,0,78,41,7,114,3,0,0,0,114,45,0,0,0, 218,17,70,105,108,101,78,111,116,70,111,117,110,100,69,114, - 114,111,114,114,7,0,0,0,114,254,0,0,0,114,137,0, - 0,0,114,2,1,0,0,41,3,114,170,0,0,0,114,35, - 0,0,0,114,0,1,0,0,114,4,0,0,0,114,4,0, + 114,111,114,114,7,0,0,0,114,251,0,0,0,114,137,0, + 0,0,114,255,0,0,0,41,3,114,170,0,0,0,114,35, + 0,0,0,114,253,0,0,0,114,4,0,0,0,114,4,0, 0,0,114,5,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,38,4,0, + 109,112,111,114,116,101,114,95,99,97,99,104,101,35,4,0, 0,115,22,0,0,0,0,8,12,1,3,1,16,1,13,3, 9,1,3,1,17,1,13,1,15,1,18,1,122,31,80,97, 116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,105, @@ -2002,10 +2008,10 @@ const unsigned char _Py_M__importlib_external[] = { 78,114,124,0,0,0,41,7,114,115,0,0,0,114,124,0, 0,0,114,182,0,0,0,114,121,0,0,0,114,179,0,0, 0,114,160,0,0,0,114,156,0,0,0,41,6,114,170,0, - 0,0,114,126,0,0,0,114,0,1,0,0,114,127,0,0, + 0,0,114,126,0,0,0,114,253,0,0,0,114,127,0,0, 0,114,128,0,0,0,114,164,0,0,0,114,4,0,0,0, 114,4,0,0,0,114,5,0,0,0,218,16,95,108,101,103, - 97,99,121,95,103,101,116,95,115,112,101,99,60,4,0,0, + 97,99,121,95,103,101,116,95,115,112,101,99,57,4,0,0, 115,18,0,0,0,0,4,15,1,24,2,15,1,6,1,12, 1,16,1,18,1,9,1,122,27,80,97,116,104,70,105,110, 100,101,114,46,95,108,101,103,97,99,121,95,103,101,116,95, @@ -2033,15 +2039,15 @@ const unsigned char _Py_M__importlib_external[] = { 110,97,109,101,46,78,114,181,0,0,0,122,19,115,112,101, 99,32,109,105,115,115,105,110,103,32,108,111,97,100,101,114, 41,13,114,143,0,0,0,114,69,0,0,0,218,5,98,121, - 116,101,115,114,4,1,0,0,114,115,0,0,0,114,181,0, - 0,0,114,5,1,0,0,114,127,0,0,0,114,156,0,0, + 116,101,115,114,1,1,0,0,114,115,0,0,0,114,181,0, + 0,0,114,2,1,0,0,114,127,0,0,0,114,156,0,0, 0,114,107,0,0,0,114,149,0,0,0,114,121,0,0,0, 114,160,0,0,0,41,9,114,170,0,0,0,114,126,0,0, 0,114,35,0,0,0,114,180,0,0,0,218,14,110,97,109, 101,115,112,97,99,101,95,112,97,116,104,90,5,101,110,116, - 114,121,114,0,1,0,0,114,164,0,0,0,114,128,0,0, + 114,121,114,253,0,0,0,114,164,0,0,0,114,128,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 218,9,95,103,101,116,95,115,112,101,99,75,4,0,0,115, + 218,9,95,103,101,116,95,115,112,101,99,72,4,0,0,115, 40,0,0,0,0,5,6,1,13,1,21,1,3,1,15,1, 12,1,15,1,21,2,18,1,12,1,3,1,15,1,4,1, 9,1,12,1,12,5,17,2,18,1,9,1,122,20,80,97, @@ -2064,12 +2070,12 @@ const unsigned char _Py_M__importlib_external[] = { 32,32,32,32,32,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,78,90, 9,110,97,109,101,115,112,97,99,101,41,7,114,7,0,0, - 0,114,35,0,0,0,114,8,1,0,0,114,127,0,0,0, - 114,156,0,0,0,114,158,0,0,0,114,233,0,0,0,41, + 0,114,35,0,0,0,114,5,1,0,0,114,127,0,0,0, + 114,156,0,0,0,114,158,0,0,0,114,230,0,0,0,41, 6,114,170,0,0,0,114,126,0,0,0,114,35,0,0,0, - 114,180,0,0,0,114,164,0,0,0,114,7,1,0,0,114, + 114,180,0,0,0,114,164,0,0,0,114,4,1,0,0,114, 4,0,0,0,114,4,0,0,0,114,5,0,0,0,114,181, - 0,0,0,107,4,0,0,115,26,0,0,0,0,4,12,1, + 0,0,0,104,4,0,0,115,26,0,0,0,0,4,12,1, 9,1,21,1,12,1,4,1,15,1,9,1,6,3,9,1, 24,1,4,2,7,2,122,20,80,97,116,104,70,105,110,100, 101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0, @@ -2091,17 +2097,17 @@ const unsigned char _Py_M__importlib_external[] = { 114,181,0,0,0,114,127,0,0,0,41,4,114,170,0,0, 0,114,126,0,0,0,114,35,0,0,0,114,164,0,0,0, 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 182,0,0,0,129,4,0,0,115,8,0,0,0,0,8,18, + 182,0,0,0,126,4,0,0,115,8,0,0,0,0,8,18, 1,12,1,4,1,122,22,80,97,116,104,70,105,110,100,101, 114,46,102,105,110,100,95,109,111,100,117,108,101,41,12,114, 112,0,0,0,114,111,0,0,0,114,113,0,0,0,114,114, - 0,0,0,114,183,0,0,0,114,253,0,0,0,114,2,1, - 0,0,114,4,1,0,0,114,5,1,0,0,114,8,1,0, + 0,0,0,114,183,0,0,0,114,250,0,0,0,114,255,0, + 0,0,114,1,1,0,0,114,2,1,0,0,114,5,1,0, 0,114,181,0,0,0,114,182,0,0,0,114,4,0,0,0, 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 252,0,0,0,9,4,0,0,115,22,0,0,0,12,2,6, + 249,0,0,0,6,4,0,0,115,22,0,0,0,12,2,6, 2,18,8,18,17,18,22,18,15,3,1,18,31,3,1,21, - 21,3,1,114,252,0,0,0,99,0,0,0,0,0,0,0, + 21,3,1,114,249,0,0,0,99,0,0,0,0,0,0,0, 0,0,0,0,0,3,0,0,0,64,0,0,0,115,133,0, 0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,1, 0,90,3,0,100,2,0,100,3,0,132,0,0,90,4,0, @@ -2146,9 +2152,9 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,3,0,0,0,51,0,0,0,115,27,0,0,0,124, 0,0,93,17,0,125,1,0,124,1,0,136,0,0,102,2, 0,86,1,113,3,0,100,0,0,83,41,1,78,114,4,0, - 0,0,41,2,114,22,0,0,0,114,228,0,0,0,41,1, + 0,0,41,2,114,22,0,0,0,114,225,0,0,0,41,1, 114,127,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 230,0,0,0,158,4,0,0,115,2,0,0,0,6,0,122, + 227,0,0,0,155,4,0,0,115,2,0,0,0,6,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,114,58,0,0,0,114,29,0,0, @@ -2161,7 +2167,7 @@ const unsigned char _Py_M__importlib_external[] = { 111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,108, 111,97,100,101,114,115,114,166,0,0,0,114,4,0,0,0, 41,1,114,127,0,0,0,114,5,0,0,0,114,185,0,0, - 0,152,4,0,0,115,16,0,0,0,0,4,6,1,19,1, + 0,149,4,0,0,115,16,0,0,0,0,4,6,1,19,1, 36,1,9,2,15,1,9,1,12,1,122,19,70,105,108,101, 70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,99, 1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0, @@ -2169,9 +2175,9 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,100,2,0,83,41,4,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,29,0,0,0,78,114, - 87,0,0,0,41,1,114,11,1,0,0,41,1,114,108,0, + 87,0,0,0,41,1,114,8,1,0,0,41,1,114,108,0, 0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,0, - 0,114,253,0,0,0,166,4,0,0,115,2,0,0,0,0, + 0,114,250,0,0,0,163,4,0,0,115,2,0,0,0,0, 2,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,99, 2,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, @@ -2195,7 +2201,7 @@ const unsigned char _Py_M__importlib_external[] = { 114,181,0,0,0,114,127,0,0,0,114,156,0,0,0,41, 3,114,108,0,0,0,114,126,0,0,0,114,164,0,0,0, 114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,114, - 124,0,0,0,172,4,0,0,115,8,0,0,0,0,7,15, + 124,0,0,0,169,4,0,0,115,8,0,0,0,0,7,15, 1,12,1,10,1,122,22,70,105,108,101,70,105,110,100,101, 114,46,102,105,110,100,95,108,111,97,100,101,114,99,6,0, 0,0,0,0,0,0,7,0,0,0,7,0,0,0,67,0, @@ -2206,7 +2212,7 @@ const unsigned char _Py_M__importlib_external[] = { 0,0,0,41,7,114,108,0,0,0,114,165,0,0,0,114, 126,0,0,0,114,35,0,0,0,90,4,115,109,115,108,114, 180,0,0,0,114,127,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,5,0,0,0,114,8,1,0,0,184,4,0, + 0,0,0,114,5,0,0,0,114,5,1,0,0,181,4,0, 0,115,6,0,0,0,0,1,15,1,18,1,122,20,70,105, 108,101,70,105,110,100,101,114,46,95,103,101,116,95,115,112, 101,99,78,99,3,0,0,0,0,0,0,0,14,0,0,0, @@ -2256,21 +2262,21 @@ const unsigned char _Py_M__importlib_external[] = { 99,101,32,102,111,114,32,123,125,114,87,0,0,0,41,23, 114,32,0,0,0,114,39,0,0,0,114,35,0,0,0,114, 3,0,0,0,114,45,0,0,0,114,219,0,0,0,114,40, - 0,0,0,114,11,1,0,0,218,11,95,102,105,108,108,95, - 99,97,99,104,101,114,6,0,0,0,114,14,1,0,0,114, - 88,0,0,0,114,13,1,0,0,114,28,0,0,0,114,10, - 1,0,0,114,44,0,0,0,114,8,1,0,0,114,46,0, + 0,0,0,114,8,1,0,0,218,11,95,102,105,108,108,95, + 99,97,99,104,101,114,6,0,0,0,114,11,1,0,0,114, + 88,0,0,0,114,10,1,0,0,114,28,0,0,0,114,7, + 1,0,0,114,44,0,0,0,114,5,1,0,0,114,46,0, 0,0,114,105,0,0,0,114,47,0,0,0,114,121,0,0, 0,114,160,0,0,0,114,156,0,0,0,41,14,114,108,0, 0,0,114,126,0,0,0,114,180,0,0,0,90,12,105,115, 95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,108, 95,109,111,100,117,108,101,114,133,0,0,0,90,5,99,97, 99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,108, - 101,90,9,98,97,115,101,95,112,97,116,104,114,228,0,0, + 101,90,9,98,97,115,101,95,112,97,116,104,114,225,0,0, 0,114,165,0,0,0,90,13,105,110,105,116,95,102,105,108, 101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,104, 114,164,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 5,0,0,0,114,181,0,0,0,189,4,0,0,115,68,0, + 5,0,0,0,114,181,0,0,0,186,4,0,0,115,68,0, 0,0,0,3,6,1,19,1,3,1,34,1,13,1,11,1, 15,1,10,1,9,2,9,1,9,1,15,2,9,1,6,2, 12,1,18,1,22,1,10,1,15,1,12,1,32,4,12,2, @@ -2307,24 +2313,24 @@ const unsigned char _Py_M__importlib_external[] = { 114,4,0,0,0,41,1,114,88,0,0,0,41,2,114,22, 0,0,0,90,2,102,110,114,4,0,0,0,114,4,0,0, 0,114,5,0,0,0,250,9,60,115,101,116,99,111,109,112, - 62,7,5,0,0,115,2,0,0,0,9,0,122,41,70,105, + 62,4,5,0,0,115,2,0,0,0,9,0,122,41,70,105, 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99, 97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115, 101,116,99,111,109,112,62,78,41,18,114,35,0,0,0,114, 3,0,0,0,90,7,108,105,115,116,100,105,114,114,45,0, - 0,0,114,3,1,0,0,218,15,80,101,114,109,105,115,115, + 0,0,114,0,1,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,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,114,12,1,0,0, - 114,13,1,0,0,114,83,0,0,0,114,47,0,0,0,114, - 88,0,0,0,218,3,97,100,100,114,10,0,0,0,114,14, + 0,114,8,0,0,0,114,9,0,0,0,114,9,1,0,0, + 114,10,1,0,0,114,83,0,0,0,114,47,0,0,0,114, + 88,0,0,0,218,3,97,100,100,114,10,0,0,0,114,11, 1,0,0,41,9,114,108,0,0,0,114,35,0,0,0,90, 8,99,111,110,116,101,110,116,115,90,21,108,111,119,101,114, 95,115,117,102,102,105,120,95,99,111,110,116,101,110,116,115, - 114,248,0,0,0,114,106,0,0,0,114,240,0,0,0,114, - 228,0,0,0,90,8,110,101,119,95,110,97,109,101,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,114,16,1, - 0,0,234,4,0,0,115,34,0,0,0,0,2,9,1,3, + 114,245,0,0,0,114,106,0,0,0,114,237,0,0,0,114, + 225,0,0,0,90,8,110,101,119,95,110,97,109,101,114,4, + 0,0,0,114,4,0,0,0,114,5,0,0,0,114,13,1, + 0,0,231,4,0,0,115,34,0,0,0,0,2,9,1,3, 1,31,1,22,3,11,3,18,1,18,7,9,1,13,1,24, 1,6,1,27,2,6,1,17,1,9,1,18,1,122,22,70, 105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,95, @@ -2360,17 +2366,17 @@ const unsigned char _Py_M__importlib_external[] = { 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,35,0,0,0,41,2, 114,46,0,0,0,114,107,0,0,0,41,1,114,35,0,0, - 0,41,2,114,170,0,0,0,114,15,1,0,0,114,4,0, + 0,41,2,114,170,0,0,0,114,12,1,0,0,114,4,0, 0,0,114,5,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,19,5,0,0,115,6,0,0,0,0,2,12,1,18,1, + 114,16,5,0,0,115,6,0,0,0,0,2,12,1,18,1, 122,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,114,4,0,0,0,41,3,114, - 170,0,0,0,114,15,1,0,0,114,21,1,0,0,114,4, - 0,0,0,41,2,114,170,0,0,0,114,15,1,0,0,114, - 5,0,0,0,218,9,112,97,116,104,95,104,111,111,107,9, + 170,0,0,0,114,12,1,0,0,114,18,1,0,0,114,4, + 0,0,0,41,2,114,170,0,0,0,114,12,1,0,0,114, + 5,0,0,0,218,9,112,97,116,104,95,104,111,111,107,6, 5,0,0,115,4,0,0,0,0,10,21,6,122,20,70,105, 108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111, 111,107,99,1,0,0,0,0,0,0,0,1,0,0,0,2, @@ -2379,17 +2385,17 @@ const unsigned char _Py_M__importlib_external[] = { 16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,125, 41,41,2,114,47,0,0,0,114,35,0,0,0,41,1,114, 108,0,0,0,114,4,0,0,0,114,4,0,0,0,114,5, - 0,0,0,114,247,0,0,0,27,5,0,0,115,2,0,0, + 0,0,0,114,244,0,0,0,24,5,0,0,115,2,0,0, 0,0,1,122,19,70,105,108,101,70,105,110,100,101,114,46, 95,95,114,101,112,114,95,95,41,15,114,112,0,0,0,114, 111,0,0,0,114,113,0,0,0,114,114,0,0,0,114,185, - 0,0,0,114,253,0,0,0,114,130,0,0,0,114,182,0, - 0,0,114,124,0,0,0,114,8,1,0,0,114,181,0,0, - 0,114,16,1,0,0,114,183,0,0,0,114,22,1,0,0, - 114,247,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,114,9,1,0,0,143,4, + 0,0,0,114,250,0,0,0,114,130,0,0,0,114,182,0, + 0,0,114,124,0,0,0,114,5,1,0,0,114,181,0,0, + 0,114,13,1,0,0,114,183,0,0,0,114,19,1,0,0, + 114,244,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 4,0,0,0,114,5,0,0,0,114,6,1,0,0,140,4, 0,0,115,20,0,0,0,12,7,6,2,12,14,12,4,6, - 2,12,12,12,5,15,45,12,31,18,18,114,9,1,0,0, + 2,12,12,12,5,15,45,12,31,18,18,114,6,1,0,0, 99,4,0,0,0,0,0,0,0,6,0,0,0,11,0,0, 0,67,0,0,0,115,195,0,0,0,124,0,0,106,0,0, 100,1,0,131,1,0,125,4,0,124,0,0,106,0,0,100, @@ -2404,187 +2410,187 @@ const unsigned char _Py_M__importlib_external[] = { 2,0,124,0,0,100,4,0,60,124,3,0,124,0,0,100, 5,0,60,87,110,18,0,4,116,5,0,107,10,0,114,190, 0,1,1,1,89,110,1,0,88,100,0,0,83,41,6,78, - 114,226,0,0,0,218,8,95,95,115,112,101,99,95,95,114, - 127,0,0,0,90,8,95,95,102,105,108,101,95,95,90,10, - 95,95,99,97,99,104,101,100,95,95,41,6,218,3,103,101, - 116,114,127,0,0,0,114,223,0,0,0,114,218,0,0,0, - 114,167,0,0,0,218,9,69,120,99,101,112,116,105,111,110, - 41,6,90,2,110,115,114,106,0,0,0,90,8,112,97,116, - 104,110,97,109,101,90,9,99,112,97,116,104,110,97,109,101, - 114,127,0,0,0,114,164,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,5,0,0,0,218,14,95,102,105,120,95, - 117,112,95,109,111,100,117,108,101,33,5,0,0,115,34,0, - 0,0,0,2,15,1,15,1,6,1,6,1,12,1,12,1, - 18,2,15,1,6,1,21,1,3,1,10,1,10,1,10,1, - 14,1,13,2,114,26,1,0,0,99,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,55, - 0,0,0,116,0,0,116,1,0,106,2,0,131,0,0,102, - 2,0,125,0,0,116,3,0,116,4,0,102,2,0,125,1, - 0,116,5,0,116,6,0,102,2,0,125,2,0,124,0,0, - 124,1,0,124,2,0,103,3,0,83,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, - 224,0,0,0,114,145,0,0,0,218,18,101,120,116,101,110, - 115,105,111,110,95,115,117,102,102,105,120,101,115,114,218,0, - 0,0,114,84,0,0,0,114,223,0,0,0,114,74,0,0, - 0,41,3,90,10,101,120,116,101,110,115,105,111,110,115,90, - 6,115,111,117,114,99,101,90,8,98,121,116,101,99,111,100, - 101,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, - 114,161,0,0,0,56,5,0,0,115,8,0,0,0,0,5, - 18,1,12,1,12,1,114,161,0,0,0,99,1,0,0,0, - 0,0,0,0,12,0,0,0,12,0,0,0,67,0,0,0, - 115,70,2,0,0,124,0,0,97,0,0,116,0,0,106,1, - 0,97,1,0,116,0,0,106,2,0,97,2,0,116,1,0, - 106,3,0,116,4,0,25,125,1,0,120,76,0,100,26,0, - 68,93,68,0,125,2,0,124,2,0,116,1,0,106,3,0, - 107,7,0,114,83,0,116,0,0,106,5,0,124,2,0,131, - 1,0,125,3,0,110,13,0,116,1,0,106,3,0,124,2, - 0,25,125,3,0,116,6,0,124,1,0,124,2,0,124,3, - 0,131,3,0,1,113,44,0,87,100,5,0,100,6,0,103, - 1,0,102,2,0,100,7,0,100,8,0,100,6,0,103,2, - 0,102,2,0,102,2,0,125,4,0,120,149,0,124,4,0, - 68,93,129,0,92,2,0,125,5,0,125,6,0,116,7,0, - 100,9,0,100,10,0,132,0,0,124,6,0,68,131,1,0, - 131,1,0,115,199,0,116,8,0,130,1,0,124,6,0,100, - 11,0,25,125,7,0,124,5,0,116,1,0,106,3,0,107, - 6,0,114,241,0,116,1,0,106,3,0,124,5,0,25,125, - 8,0,80,113,156,0,121,20,0,116,0,0,106,5,0,124, - 5,0,131,1,0,125,8,0,80,87,113,156,0,4,116,9, - 0,107,10,0,114,28,1,1,1,1,119,156,0,89,113,156, - 0,88,113,156,0,87,116,9,0,100,12,0,131,1,0,130, - 1,0,116,6,0,124,1,0,100,13,0,124,8,0,131,3, - 0,1,116,6,0,124,1,0,100,14,0,124,7,0,131,3, - 0,1,116,6,0,124,1,0,100,15,0,100,16,0,106,10, - 0,124,6,0,131,1,0,131,3,0,1,121,19,0,116,0, - 0,106,5,0,100,17,0,131,1,0,125,9,0,87,110,24, - 0,4,116,9,0,107,10,0,114,147,1,1,1,1,100,18, - 0,125,9,0,89,110,1,0,88,116,6,0,124,1,0,100, - 17,0,124,9,0,131,3,0,1,116,0,0,106,5,0,100, - 19,0,131,1,0,125,10,0,116,6,0,124,1,0,100,19, - 0,124,10,0,131,3,0,1,124,5,0,100,7,0,107,2, - 0,114,238,1,116,0,0,106,5,0,100,20,0,131,1,0, - 125,11,0,116,6,0,124,1,0,100,21,0,124,11,0,131, - 3,0,1,116,6,0,124,1,0,100,22,0,116,11,0,131, - 0,0,131,3,0,1,116,12,0,106,13,0,116,2,0,106, - 14,0,131,0,0,131,1,0,1,124,5,0,100,7,0,107, - 2,0,114,66,2,116,15,0,106,16,0,100,23,0,131,1, - 0,1,100,24,0,116,12,0,107,6,0,114,66,2,100,25, - 0,116,17,0,95,18,0,100,18,0,83,41,27,122,205,83, - 101,116,117,112,32,116,104,101,32,112,97,116,104,45,98,97, - 115,101,100,32,105,109,112,111,114,116,101,114,115,32,102,111, - 114,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,10, - 32,32,32,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,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,79,116,104,101,114,32,99,111, - 109,112,111,110,101,110,116,115,32,97,114,101,32,101,120,116, - 114,97,99,116,101,100,32,102,114,111,109,32,116,104,101,32, - 99,111,114,101,32,98,111,111,116,115,116,114,97,112,32,109, - 111,100,117,108,101,46,10,10,32,32,32,32,114,49,0,0, - 0,114,60,0,0,0,218,8,98,117,105,108,116,105,110,115, - 114,142,0,0,0,90,5,112,111,115,105,120,250,1,47,218, - 2,110,116,250,1,92,99,1,0,0,0,0,0,0,0,2, - 0,0,0,3,0,0,0,115,0,0,0,115,33,0,0,0, - 124,0,0,93,23,0,125,1,0,116,0,0,124,1,0,131, - 1,0,100,0,0,107,2,0,86,1,113,3,0,100,1,0, - 83,41,2,114,29,0,0,0,78,41,1,114,31,0,0,0, - 41,2,114,22,0,0,0,114,77,0,0,0,114,4,0,0, - 0,114,4,0,0,0,114,5,0,0,0,114,230,0,0,0, - 92,5,0,0,115,2,0,0,0,6,0,122,25,95,115,101, - 116,117,112,46,60,108,111,99,97,108,115,62,46,60,103,101, - 110,101,120,112,114,62,114,59,0,0,0,122,30,105,109,112, - 111,114,116,108,105,98,32,114,101,113,117,105,114,101,115,32, - 112,111,115,105,120,32,111,114,32,110,116,114,3,0,0,0, - 114,25,0,0,0,114,21,0,0,0,114,30,0,0,0,90, - 7,95,116,104,114,101,97,100,78,90,8,95,119,101,97,107, - 114,101,102,90,6,119,105,110,114,101,103,114,169,0,0,0, - 114,6,0,0,0,122,4,46,112,121,119,122,6,95,100,46, - 112,121,100,84,41,4,122,3,95,105,111,122,9,95,119,97, - 114,110,105,110,103,115,122,8,98,117,105,108,116,105,110,115, - 122,7,109,97,114,115,104,97,108,41,19,114,121,0,0,0, - 114,7,0,0,0,114,145,0,0,0,114,242,0,0,0,114, - 112,0,0,0,90,18,95,98,117,105,108,116,105,110,95,102, - 114,111,109,95,110,97,109,101,114,116,0,0,0,218,3,97, - 108,108,218,14,65,115,115,101,114,116,105,111,110,69,114,114, - 111,114,114,107,0,0,0,114,26,0,0,0,114,11,0,0, - 0,114,232,0,0,0,114,149,0,0,0,114,27,1,0,0, - 114,84,0,0,0,114,163,0,0,0,114,168,0,0,0,114, - 173,0,0,0,41,12,218,17,95,98,111,111,116,115,116,114, - 97,112,95,109,111,100,117,108,101,90,11,115,101,108,102,95, - 109,111,100,117,108,101,90,12,98,117,105,108,116,105,110,95, - 110,97,109,101,90,14,98,117,105,108,116,105,110,95,109,111, - 100,117,108,101,90,10,111,115,95,100,101,116,97,105,108,115, - 90,10,98,117,105,108,116,105,110,95,111,115,114,21,0,0, - 0,114,25,0,0,0,90,9,111,115,95,109,111,100,117,108, - 101,90,13,116,104,114,101,97,100,95,109,111,100,117,108,101, - 90,14,119,101,97,107,114,101,102,95,109,111,100,117,108,101, - 90,13,119,105,110,114,101,103,95,109,111,100,117,108,101,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,6, - 95,115,101,116,117,112,67,5,0,0,115,82,0,0,0,0, - 8,6,1,9,1,9,3,13,1,13,1,15,1,18,2,13, - 1,20,3,33,1,19,2,31,1,10,1,15,1,13,1,4, - 2,3,1,15,1,5,1,13,1,12,2,12,1,16,1,16, - 1,25,3,3,1,19,1,13,2,11,1,16,3,15,1,16, - 3,12,1,15,1,16,3,19,1,19,1,12,1,13,1,12, - 1,114,35,1,0,0,99,1,0,0,0,0,0,0,0,2, - 0,0,0,3,0,0,0,67,0,0,0,115,116,0,0,0, - 116,0,0,124,0,0,131,1,0,1,116,1,0,131,0,0, - 125,1,0,116,2,0,106,3,0,106,4,0,116,5,0,106, - 6,0,124,1,0,140,0,0,103,1,0,131,1,0,1,116, - 7,0,106,8,0,100,1,0,107,2,0,114,78,0,116,2, - 0,106,9,0,106,10,0,116,11,0,131,1,0,1,116,2, - 0,106,9,0,106,10,0,116,12,0,131,1,0,1,116,5, - 0,124,0,0,95,5,0,116,13,0,124,0,0,95,13,0, - 100,2,0,83,41,3,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,114,30,1,0,0,78,41,14,114,35,1,0,0,114,161, - 0,0,0,114,7,0,0,0,114,1,1,0,0,114,149,0, - 0,0,114,9,1,0,0,114,22,1,0,0,114,3,0,0, - 0,114,112,0,0,0,218,9,109,101,116,97,95,112,97,116, - 104,114,163,0,0,0,114,168,0,0,0,114,252,0,0,0, - 114,218,0,0,0,41,2,114,34,1,0,0,90,17,115,117, - 112,112,111,114,116,101,100,95,108,111,97,100,101,114,115,114, - 4,0,0,0,114,4,0,0,0,114,5,0,0,0,218,8, - 95,105,110,115,116,97,108,108,135,5,0,0,115,16,0,0, - 0,0,2,10,1,9,1,28,1,15,1,16,1,16,4,9, - 1,114,37,1,0,0,41,3,122,3,119,105,110,114,1,0, - 0,0,114,2,0,0,0,41,57,114,114,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,17,0,0,0,114,19,0, - 0,0,114,28,0,0,0,114,38,0,0,0,114,39,0,0, - 0,114,43,0,0,0,114,44,0,0,0,114,46,0,0,0, - 114,55,0,0,0,218,4,116,121,112,101,218,8,95,95,99, - 111,100,101,95,95,114,144,0,0,0,114,15,0,0,0,114, - 135,0,0,0,114,14,0,0,0,114,18,0,0,0,90,17, - 95,82,65,87,95,77,65,71,73,67,95,78,85,77,66,69, - 82,114,73,0,0,0,114,72,0,0,0,114,84,0,0,0, - 114,74,0,0,0,90,23,68,69,66,85,71,95,66,89,84, - 69,67,79,68,69,95,83,85,70,70,73,88,69,83,90,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,79,0,0,0, - 114,85,0,0,0,114,91,0,0,0,114,95,0,0,0,114, - 97,0,0,0,114,105,0,0,0,114,123,0,0,0,114,130, - 0,0,0,114,141,0,0,0,114,147,0,0,0,114,150,0, - 0,0,114,155,0,0,0,218,6,111,98,106,101,99,116,114, - 162,0,0,0,114,167,0,0,0,114,168,0,0,0,114,184, - 0,0,0,114,194,0,0,0,114,210,0,0,0,114,218,0, - 0,0,114,223,0,0,0,114,232,0,0,0,114,224,0,0, - 0,114,233,0,0,0,114,250,0,0,0,114,252,0,0,0, - 114,9,1,0,0,114,26,1,0,0,114,161,0,0,0,114, - 35,1,0,0,114,37,1,0,0,114,4,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,5,0,0,0,218,8,60, - 109,111,100,117,108,101,62,8,0,0,0,115,100,0,0,0, - 6,17,6,3,12,12,12,5,12,5,12,6,12,12,12,10, - 12,9,12,5,12,7,15,22,15,108,22,1,18,2,6,1, - 6,2,9,2,9,2,10,2,21,44,12,33,12,19,12,12, - 12,12,18,8,12,27,12,17,21,55,21,12,18,10,12,14, - 9,3,12,1,15,65,19,64,19,28,22,110,19,41,25,43, - 25,16,6,3,19,57,19,57,19,41,19,134,19,146,15,23, - 12,11,12,68, + 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95, + 115,112,101,99,95,95,114,127,0,0,0,90,8,95,95,102, + 105,108,101,95,95,90,10,95,95,99,97,99,104,101,100,95, + 95,41,6,218,3,103,101,116,114,127,0,0,0,114,223,0, + 0,0,114,218,0,0,0,114,167,0,0,0,218,9,69,120, + 99,101,112,116,105,111,110,41,6,90,2,110,115,114,106,0, + 0,0,90,8,112,97,116,104,110,97,109,101,90,9,99,112, + 97,116,104,110,97,109,101,114,127,0,0,0,114,164,0,0, + 0,114,4,0,0,0,114,4,0,0,0,114,5,0,0,0, + 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, + 30,5,0,0,115,34,0,0,0,0,2,15,1,15,1,6, + 1,6,1,12,1,12,1,18,2,15,1,6,1,21,1,3, + 1,10,1,10,1,10,1,14,1,13,2,114,24,1,0,0, + 99,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,67,0,0,0,115,55,0,0,0,116,0,0,116,1,0, + 106,2,0,131,0,0,102,2,0,125,0,0,116,3,0,116, + 4,0,102,2,0,125,1,0,116,5,0,116,6,0,102,2, + 0,125,2,0,124,0,0,124,1,0,124,2,0,103,3,0, + 83,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,224,0,0,0,114,145,0,0,0, + 218,18,101,120,116,101,110,115,105,111,110,95,115,117,102,102, + 105,120,101,115,114,218,0,0,0,114,84,0,0,0,114,223, + 0,0,0,114,74,0,0,0,41,3,90,10,101,120,116,101, + 110,115,105,111,110,115,90,6,115,111,117,114,99,101,90,8, + 98,121,116,101,99,111,100,101,114,4,0,0,0,114,4,0, + 0,0,114,5,0,0,0,114,161,0,0,0,53,5,0,0, + 115,8,0,0,0,0,5,18,1,12,1,12,1,114,161,0, + 0,0,99,1,0,0,0,0,0,0,0,12,0,0,0,12, + 0,0,0,67,0,0,0,115,70,2,0,0,124,0,0,97, + 0,0,116,0,0,106,1,0,97,1,0,116,0,0,106,2, + 0,97,2,0,116,1,0,106,3,0,116,4,0,25,125,1, + 0,120,76,0,100,26,0,68,93,68,0,125,2,0,124,2, + 0,116,1,0,106,3,0,107,7,0,114,83,0,116,0,0, + 106,5,0,124,2,0,131,1,0,125,3,0,110,13,0,116, + 1,0,106,3,0,124,2,0,25,125,3,0,116,6,0,124, + 1,0,124,2,0,124,3,0,131,3,0,1,113,44,0,87, + 100,5,0,100,6,0,103,1,0,102,2,0,100,7,0,100, + 8,0,100,6,0,103,2,0,102,2,0,102,2,0,125,4, + 0,120,149,0,124,4,0,68,93,129,0,92,2,0,125,5, + 0,125,6,0,116,7,0,100,9,0,100,10,0,132,0,0, + 124,6,0,68,131,1,0,131,1,0,115,199,0,116,8,0, + 130,1,0,124,6,0,100,11,0,25,125,7,0,124,5,0, + 116,1,0,106,3,0,107,6,0,114,241,0,116,1,0,106, + 3,0,124,5,0,25,125,8,0,80,113,156,0,121,20,0, + 116,0,0,106,5,0,124,5,0,131,1,0,125,8,0,80, + 87,113,156,0,4,116,9,0,107,10,0,114,28,1,1,1, + 1,119,156,0,89,113,156,0,88,113,156,0,87,116,9,0, + 100,12,0,131,1,0,130,1,0,116,6,0,124,1,0,100, + 13,0,124,8,0,131,3,0,1,116,6,0,124,1,0,100, + 14,0,124,7,0,131,3,0,1,116,6,0,124,1,0,100, + 15,0,100,16,0,106,10,0,124,6,0,131,1,0,131,3, + 0,1,121,19,0,116,0,0,106,5,0,100,17,0,131,1, + 0,125,9,0,87,110,24,0,4,116,9,0,107,10,0,114, + 147,1,1,1,1,100,18,0,125,9,0,89,110,1,0,88, + 116,6,0,124,1,0,100,17,0,124,9,0,131,3,0,1, + 116,0,0,106,5,0,100,19,0,131,1,0,125,10,0,116, + 6,0,124,1,0,100,19,0,124,10,0,131,3,0,1,124, + 5,0,100,7,0,107,2,0,114,238,1,116,0,0,106,5, + 0,100,20,0,131,1,0,125,11,0,116,6,0,124,1,0, + 100,21,0,124,11,0,131,3,0,1,116,6,0,124,1,0, + 100,22,0,116,11,0,131,0,0,131,3,0,1,116,12,0, + 106,13,0,116,2,0,106,14,0,131,0,0,131,1,0,1, + 124,5,0,100,7,0,107,2,0,114,66,2,116,15,0,106, + 16,0,100,23,0,131,1,0,1,100,24,0,116,12,0,107, + 6,0,114,66,2,100,25,0,116,17,0,95,18,0,100,18, + 0,83,41,27,122,205,83,101,116,117,112,32,116,104,101,32, + 112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,114, + 116,101,114,115,32,102,111,114,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,10,32,32,32,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,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,79, + 116,104,101,114,32,99,111,109,112,111,110,101,110,116,115,32, + 97,114,101,32,101,120,116,114,97,99,116,101,100,32,102,114, + 111,109,32,116,104,101,32,99,111,114,101,32,98,111,111,116, + 115,116,114,97,112,32,109,111,100,117,108,101,46,10,10,32, + 32,32,32,114,49,0,0,0,114,60,0,0,0,218,8,98, + 117,105,108,116,105,110,115,114,142,0,0,0,90,5,112,111, + 115,105,120,250,1,47,218,2,110,116,250,1,92,99,1,0, + 0,0,0,0,0,0,2,0,0,0,3,0,0,0,115,0, + 0,0,115,33,0,0,0,124,0,0,93,23,0,125,1,0, + 116,0,0,124,1,0,131,1,0,100,0,0,107,2,0,86, + 1,113,3,0,100,1,0,83,41,2,114,29,0,0,0,78, + 41,1,114,31,0,0,0,41,2,114,22,0,0,0,114,77, + 0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0, + 0,0,114,227,0,0,0,89,5,0,0,115,2,0,0,0, + 6,0,122,25,95,115,101,116,117,112,46,60,108,111,99,97, + 108,115,62,46,60,103,101,110,101,120,112,114,62,114,59,0, + 0,0,122,30,105,109,112,111,114,116,108,105,98,32,114,101, + 113,117,105,114,101,115,32,112,111,115,105,120,32,111,114,32, + 110,116,114,3,0,0,0,114,25,0,0,0,114,21,0,0, + 0,114,30,0,0,0,90,7,95,116,104,114,101,97,100,78, + 90,8,95,119,101,97,107,114,101,102,90,6,119,105,110,114, + 101,103,114,169,0,0,0,114,6,0,0,0,122,4,46,112, + 121,119,122,6,95,100,46,112,121,100,84,41,4,122,3,95, + 105,111,122,9,95,119,97,114,110,105,110,103,115,122,8,98, + 117,105,108,116,105,110,115,122,7,109,97,114,115,104,97,108, + 41,19,114,121,0,0,0,114,7,0,0,0,114,145,0,0, + 0,114,239,0,0,0,114,112,0,0,0,90,18,95,98,117, + 105,108,116,105,110,95,102,114,111,109,95,110,97,109,101,114, + 116,0,0,0,218,3,97,108,108,218,14,65,115,115,101,114, + 116,105,111,110,69,114,114,111,114,114,107,0,0,0,114,26, + 0,0,0,114,11,0,0,0,114,229,0,0,0,114,149,0, + 0,0,114,25,1,0,0,114,84,0,0,0,114,163,0,0, + 0,114,168,0,0,0,114,173,0,0,0,41,12,218,17,95, + 98,111,111,116,115,116,114,97,112,95,109,111,100,117,108,101, + 90,11,115,101,108,102,95,109,111,100,117,108,101,90,12,98, + 117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,105, + 108,116,105,110,95,109,111,100,117,108,101,90,10,111,115,95, + 100,101,116,97,105,108,115,90,10,98,117,105,108,116,105,110, + 95,111,115,114,21,0,0,0,114,25,0,0,0,90,9,111, + 115,95,109,111,100,117,108,101,90,13,116,104,114,101,97,100, + 95,109,111,100,117,108,101,90,14,119,101,97,107,114,101,102, + 95,109,111,100,117,108,101,90,13,119,105,110,114,101,103,95, + 109,111,100,117,108,101,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,218,6,95,115,101,116,117,112,64,5,0, + 0,115,82,0,0,0,0,8,6,1,9,1,9,3,13,1, + 13,1,15,1,18,2,13,1,20,3,33,1,19,2,31,1, + 10,1,15,1,13,1,4,2,3,1,15,1,5,1,13,1, + 12,2,12,1,16,1,16,1,25,3,3,1,19,1,13,2, + 11,1,16,3,15,1,16,3,12,1,15,1,16,3,19,1, + 19,1,12,1,13,1,12,1,114,33,1,0,0,99,1,0, + 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, + 0,0,115,116,0,0,0,116,0,0,124,0,0,131,1,0, + 1,116,1,0,131,0,0,125,1,0,116,2,0,106,3,0, + 106,4,0,116,5,0,106,6,0,124,1,0,140,0,0,103, + 1,0,131,1,0,1,116,7,0,106,8,0,100,1,0,107, + 2,0,114,78,0,116,2,0,106,9,0,106,10,0,116,11, + 0,131,1,0,1,116,2,0,106,9,0,106,10,0,116,12, + 0,131,1,0,1,116,5,0,124,0,0,95,5,0,116,13, + 0,124,0,0,95,13,0,100,2,0,83,41,3,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,114,28,1,0,0,78,41,14, + 114,33,1,0,0,114,161,0,0,0,114,7,0,0,0,114, + 254,0,0,0,114,149,0,0,0,114,6,1,0,0,114,19, + 1,0,0,114,3,0,0,0,114,112,0,0,0,218,9,109, + 101,116,97,95,112,97,116,104,114,163,0,0,0,114,168,0, + 0,0,114,249,0,0,0,114,218,0,0,0,41,2,114,32, + 1,0,0,90,17,115,117,112,112,111,114,116,101,100,95,108, + 111,97,100,101,114,115,114,4,0,0,0,114,4,0,0,0, + 114,5,0,0,0,218,8,95,105,110,115,116,97,108,108,132, + 5,0,0,115,16,0,0,0,0,2,10,1,9,1,28,1, + 15,1,16,1,16,4,9,1,114,35,1,0,0,41,3,122, + 3,119,105,110,114,1,0,0,0,114,2,0,0,0,41,57, + 114,114,0,0,0,114,10,0,0,0,114,11,0,0,0,114, + 17,0,0,0,114,19,0,0,0,114,28,0,0,0,114,38, + 0,0,0,114,39,0,0,0,114,43,0,0,0,114,44,0, + 0,0,114,46,0,0,0,114,55,0,0,0,218,4,116,121, + 112,101,218,8,95,95,99,111,100,101,95,95,114,144,0,0, + 0,114,15,0,0,0,114,135,0,0,0,114,14,0,0,0, + 114,18,0,0,0,90,17,95,82,65,87,95,77,65,71,73, + 67,95,78,85,77,66,69,82,114,73,0,0,0,114,72,0, + 0,0,114,84,0,0,0,114,74,0,0,0,90,23,68,69, + 66,85,71,95,66,89,84,69,67,79,68,69,95,83,85,70, + 70,73,88,69,83,90,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,79,0,0,0,114,85,0,0,0,114,91,0,0, + 0,114,95,0,0,0,114,97,0,0,0,114,105,0,0,0, + 114,123,0,0,0,114,130,0,0,0,114,141,0,0,0,114, + 147,0,0,0,114,150,0,0,0,114,155,0,0,0,218,6, + 111,98,106,101,99,116,114,162,0,0,0,114,167,0,0,0, + 114,168,0,0,0,114,184,0,0,0,114,194,0,0,0,114, + 210,0,0,0,114,218,0,0,0,114,223,0,0,0,114,229, + 0,0,0,114,224,0,0,0,114,230,0,0,0,114,247,0, + 0,0,114,249,0,0,0,114,6,1,0,0,114,24,1,0, + 0,114,161,0,0,0,114,33,1,0,0,114,35,1,0,0, + 114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 5,0,0,0,218,8,60,109,111,100,117,108,101,62,8,0, + 0,0,115,100,0,0,0,6,17,6,3,12,12,12,5,12, + 5,12,6,12,12,12,10,12,9,12,5,12,7,15,22,15, + 108,22,1,18,2,6,1,6,2,9,2,9,2,10,2,21, + 44,12,33,12,19,12,12,12,12,18,8,12,28,12,17,21, + 55,21,12,18,10,12,14,9,3,12,1,15,65,19,64,19, + 28,22,110,19,41,25,43,25,16,6,3,25,53,19,57,19, + 41,19,134,19,146,15,23,12,11,12,68, }; diff --git a/Python/pystate.c b/Python/pystate.c index e214f504972..4ac05d66256 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -255,6 +255,9 @@ PyState_FindModule(struct PyModuleDef* module) Py_ssize_t index = module->m_base.m_index; PyInterpreterState *state = PyThreadState_GET()->interp; PyObject *res; + if (module->m_slots) { + return NULL; + } if (index == 0) return NULL; if (state->modules_by_index == NULL) @@ -268,7 +271,13 @@ PyState_FindModule(struct PyModuleDef* module) int _PyState_AddModule(PyObject* module, struct PyModuleDef* def) { - PyInterpreterState *state = PyThreadState_GET()->interp; + PyInterpreterState *state; + if (def->m_slots) { + PyErr_SetString(PyExc_SystemError, + "PyState_AddModule called on module with slots"); + return -1; + } + state = PyThreadState_GET()->interp; if (!def) return -1; if (!state->modules_by_index) { @@ -308,8 +317,14 @@ PyState_AddModule(PyObject* module, struct PyModuleDef* def) int PyState_RemoveModule(struct PyModuleDef* def) { + PyInterpreterState *state; Py_ssize_t index = def->m_base.m_index; - PyInterpreterState *state = PyThreadState_GET()->interp; + if (def->m_slots) { + PyErr_SetString(PyExc_SystemError, + "PyState_RemoveModule called on module with slots"); + return -1; + } + state = PyThreadState_GET()->interp; if (index == 0) { Py_FatalError("PyState_RemoveModule: Module index invalid."); return -1; diff --git a/setup.py b/setup.py index 0f88e78c616..b36de5fedbb 100644 --- a/setup.py +++ b/setup.py @@ -620,6 +620,8 @@ class PyBuildExt(build_ext): exts.append( Extension('_testbuffer', ['_testbuffer.c']) ) # Test loading multiple modules from one compiled file (http://bugs.python.org/issue16421) exts.append( Extension('_testimportmultiple', ['_testimportmultiple.c']) ) + # Test multi-phase extension module init (PEP 489) + exts.append( Extension('_testmultiphase', ['_testmultiphase.c']) ) # profiler (_lsprof is for cProfile.py) exts.append( Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']) ) # static Unicode character database