From 9cb31d671646a5ff0901f79d2d61022621447190 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Wed, 24 Mar 2021 08:26:56 -0700 Subject: [PATCH] bpo-42137: have ModuleType.__repr__ prefer __spec__ over module_repr() (GH-24953) This is to work towards the removal of the use of module_repr() in Python 3.12 (documented as deprecated since 3.4). --- Doc/library/importlib.rst | 14 +- Doc/whatsnew/3.10.rst | 6 + Lib/importlib/_bootstrap.py | 20 +- Lib/test/test_importlib/frozen/test_loader.py | 8 - .../test_importlib/test_namespace_pkgs.py | 3 +- .../2021-03-20-19-54-47.bpo-42137.A8aQvj.rst | 2 + Python/importlib.h | 247 +++++++++--------- 7 files changed, 147 insertions(+), 153 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2021-03-20-19-54-47.bpo-42137.A8aQvj.rst diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst index fee5df84dff..d9b790e4e77 100644 --- a/Doc/library/importlib.rst +++ b/Doc/library/importlib.rst @@ -208,7 +208,7 @@ Functions .. versionadded:: 3.4 .. versionchanged:: 3.7 :exc:`ModuleNotFoundError` is raised when the module being reloaded lacks - a :class:`ModuleSpec`. + a :class:`~importlib.machinery.ModuleSpec`. :mod:`importlib.abc` -- Abstract base classes related to import @@ -1591,9 +1591,9 @@ an :term:`importer`. .. function:: spec_from_loader(name, loader, *, origin=None, is_package=None) - A factory function for creating a :class:`ModuleSpec` instance based - on a loader. The parameters have the same meaning as they do for - ModuleSpec. The function uses available :term:`loader` APIs, such as + A factory function for creating a :class:`~importlib.machinery.ModuleSpec` + instance based on a loader. The parameters have the same meaning as they do + for ModuleSpec. The function uses available :term:`loader` APIs, such as :meth:`InspectLoader.is_package`, to fill in any missing information on the spec. @@ -1601,9 +1601,9 @@ an :term:`importer`. .. function:: spec_from_file_location(name, location, *, loader=None, submodule_search_locations=None) - A factory function for creating a :class:`ModuleSpec` instance based - on the path to a file. Missing information will be filled in on the - spec by making use of loader APIs and by the implication that the + A factory function for creating a :class:`~importlib.machinery.ModuleSpec` + instance based on the path to a file. Missing information will be filled in + on the spec by making use of loader APIs and by the implication that the module will be file-based. .. versionadded:: 3.4 diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index d4335eb11e3..b6791800fb6 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -1004,6 +1004,12 @@ Deprecated :meth:`~importlib.abc.Loader.exec_module` is preferred. (Contributed by Brett Cannon in :issue:`26131`.) +* The import system now uses the ``__spec__`` attribute on modules before + falling back on :meth:`~importlib.abc.Loader.module_repr` for a module's + ``__repr__()`` method. Removal of the use of ``module_repr()`` is scheduled + for Python 3.12. + (Contributed by Brett Cannon in :issue:`42137`.) + * ``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python 3.3, when it was made an alias to :class:`str`. It is now deprecated, scheduled for removal in Python 3.12. diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index e4f893c38c1..5038b46a018 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -275,7 +275,7 @@ def _requires_frozen(fxn): def _load_module_shim(self, fullname): """Load the specified module into sys.modules and return it. - This method is deprecated. Use loader.exec_module instead. + This method is deprecated. Use loader.exec_module() instead. """ msg = ("the load_module() method is deprecated and slated for removal in " @@ -292,24 +292,16 @@ def _load_module_shim(self, fullname): # Module specifications ####################################################### def _module_repr(module): - # The implementation of ModuleType.__repr__(). + """The implementation of ModuleType.__repr__().""" loader = getattr(module, '__loader__', None) - if hasattr(loader, 'module_repr'): - # As soon as BuiltinImporter, FrozenImporter, and NamespaceLoader - # drop their implementations for module_repr. we can add a - # deprecation warning here. + if spec := getattr(module, "__spec__", None): + return _module_repr_from_spec(spec) + elif hasattr(loader, 'module_repr'): try: return loader.module_repr(module) except Exception: pass - try: - spec = module.__spec__ - except AttributeError: - pass - else: - if spec is not None: - return _module_repr_from_spec(spec) - + # Fall through to a catch-all which always succeeds. # We could use module.__class__.__name__ instead of 'module' in the # various repr permutations. try: diff --git a/Lib/test/test_importlib/frozen/test_loader.py b/Lib/test/test_importlib/frozen/test_loader.py index 8eaffa798a5..632246ade08 100644 --- a/Lib/test/test_importlib/frozen/test_loader.py +++ b/Lib/test/test_importlib/frozen/test_loader.py @@ -160,14 +160,6 @@ class LoaderTests(abc.LoaderTests): self.assertEqual(repr_str, "") - def test_module_repr_indirect(self): - with warnings.catch_warnings(): - warnings.simplefilter("ignore", DeprecationWarning) - with util.uncache('__hello__'), captured_stdout(): - module = self.machinery.FrozenImporter.load_module('__hello__') - self.assertEqual(repr(module), - "") - # No way to trigger an error in a frozen module. test_state_after_failure = None diff --git a/Lib/test/test_importlib/test_namespace_pkgs.py b/Lib/test/test_importlib/test_namespace_pkgs.py index a8f95a035e2..ab5847c5553 100644 --- a/Lib/test/test_importlib/test_namespace_pkgs.py +++ b/Lib/test/test_importlib/test_namespace_pkgs.py @@ -82,7 +82,8 @@ class SingleNamespacePackage(NamespacePackageTest): def test_module_repr(self): import foo.one - self.assertEqual(repr(foo), "") + self.assertEqual(foo.__spec__.loader.module_repr(foo), + "") class DynamicPathNamespacePackage(NamespacePackageTest): diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-20-19-54-47.bpo-42137.A8aQvj.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-20-19-54-47.bpo-42137.A8aQvj.rst new file mode 100644 index 00000000000..e13ce49b954 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-03-20-19-54-47.bpo-42137.A8aQvj.rst @@ -0,0 +1,2 @@ +The import system now prefers using ``__spec__`` for ``ModuleType.__repr__`` +over ``module_repr()``. diff --git a/Python/importlib.h b/Python/importlib.h index 90cfa4cc2da..633c642a140 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -492,67 +492,68 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 124,1,116,4,106,5,118,0,114,66,116,4,106,5,124,1, 25,0,125,4,116,6,124,3,124,4,131,2,1,0,116,4, 106,5,124,1,25,0,83,0,116,7,124,3,131,1,83,0, - 41,3,122,128,76,111,97,100,32,116,104,101,32,115,112,101, + 41,3,122,130,76,111,97,100,32,116,104,101,32,115,112,101, 99,105,102,105,101,100,32,109,111,100,117,108,101,32,105,110, 116,111,32,115,121,115,46,109,111,100,117,108,101,115,32,97, 110,100,32,114,101,116,117,114,110,32,105,116,46,10,10,32, 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105, 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85, 115,101,32,108,111,97,100,101,114,46,101,120,101,99,95,109, - 111,100,117,108,101,32,105,110,115,116,101,97,100,46,10,10, - 32,32,32,32,122,103,116,104,101,32,108,111,97,100,95,109, - 111,100,117,108,101,40,41,32,109,101,116,104,111,100,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, - 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, - 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, - 49,50,59,32,117,115,101,32,101,120,101,99,95,109,111,100, - 117,108,101,40,41,32,105,110,115,116,101,97,100,78,41,8, - 218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,114, - 110,218,18,68,101,112,114,101,99,97,116,105,111,110,87,97, - 114,110,105,110,103,218,16,115,112,101,99,95,102,114,111,109, - 95,108,111,97,100,101,114,114,18,0,0,0,218,7,109,111, - 100,117,108,101,115,218,5,95,101,120,101,99,218,5,95,108, - 111,97,100,41,5,114,33,0,0,0,114,89,0,0,0,218, - 3,109,115,103,218,4,115,112,101,99,218,6,109,111,100,117, - 108,101,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95, - 115,104,105,109,19,1,0,0,115,18,0,0,0,4,6,12, - 2,10,1,10,1,10,1,10,1,10,1,8,2,255,128,114, - 111,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,8,0,0,0,67,0,0,0,115,206,0, - 0,0,116,0,124,0,100,1,100,0,131,3,125,1,116,1, - 124,1,100,2,131,2,114,50,122,12,124,1,160,2,124,0, - 161,1,87,0,83,0,4,0,116,3,121,204,1,0,1,0, - 1,0,89,0,122,10,124,0,106,4,125,2,87,0,110,16, - 4,0,116,5,121,202,1,0,1,0,1,0,89,0,110,16, - 124,2,100,0,117,1,114,94,116,6,124,2,131,1,83,0, - 122,10,124,0,106,7,125,3,87,0,110,18,4,0,116,5, - 121,200,1,0,1,0,1,0,100,3,125,3,89,0,122,10, - 124,0,106,8,125,4,87,0,110,50,4,0,116,5,121,198, - 1,0,1,0,1,0,124,1,100,0,117,0,114,170,100,4, - 160,9,124,3,161,1,6,0,89,0,83,0,100,5,160,9, - 124,3,124,1,161,2,6,0,89,0,83,0,100,6,160,9, - 124,3,124,4,161,2,83,0,119,0,119,0,119,0,119,0, - 41,7,78,218,10,95,95,108,111,97,100,101,114,95,95,218, - 11,109,111,100,117,108,101,95,114,101,112,114,250,1,63,250, - 13,60,109,111,100,117,108,101,32,123,33,114,125,62,250,20, - 60,109,111,100,117,108,101,32,123,33,114,125,32,40,123,33, - 114,125,41,62,250,23,60,109,111,100,117,108,101,32,123,33, - 114,125,32,102,114,111,109,32,123,33,114,125,62,41,10,114, - 13,0,0,0,114,11,0,0,0,114,113,0,0,0,218,9, - 69,120,99,101,112,116,105,111,110,218,8,95,95,115,112,101, - 99,95,95,114,2,0,0,0,218,22,95,109,111,100,117,108, + 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46, + 10,10,32,32,32,32,122,103,116,104,101,32,108,111,97,100, + 95,109,111,100,117,108,101,40,41,32,109,101,116,104,111,100, + 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, + 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, + 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, + 51,46,49,50,59,32,117,115,101,32,101,120,101,99,95,109, + 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,78, + 41,8,218,9,95,119,97,114,110,105,110,103,115,218,4,119, + 97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,110, + 87,97,114,110,105,110,103,218,16,115,112,101,99,95,102,114, + 111,109,95,108,111,97,100,101,114,114,18,0,0,0,218,7, + 109,111,100,117,108,101,115,218,5,95,101,120,101,99,218,5, + 95,108,111,97,100,41,5,114,33,0,0,0,114,89,0,0, + 0,218,3,109,115,103,218,4,115,112,101,99,218,6,109,111, + 100,117,108,101,114,5,0,0,0,114,5,0,0,0,114,6, + 0,0,0,218,17,95,108,111,97,100,95,109,111,100,117,108, + 101,95,115,104,105,109,19,1,0,0,115,18,0,0,0,4, + 6,12,2,10,1,10,1,10,1,10,1,10,1,8,2,255, + 128,114,111,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,115, + 184,0,0,0,116,0,124,0,100,1,100,2,131,3,125,1, + 116,0,124,0,100,3,100,2,131,3,4,0,125,2,114,36, + 116,1,124,2,131,1,83,0,116,2,124,1,100,4,131,2, + 114,74,122,12,124,1,160,3,124,0,161,1,87,0,83,0, + 4,0,116,4,121,182,1,0,1,0,1,0,89,0,122,10, + 124,0,106,5,125,3,87,0,110,18,4,0,116,6,121,180, + 1,0,1,0,1,0,100,5,125,3,89,0,122,10,124,0, + 106,7,125,4,87,0,110,50,4,0,116,6,121,178,1,0, + 1,0,1,0,124,1,100,2,117,0,114,150,100,6,160,8, + 124,3,161,1,6,0,89,0,83,0,100,7,160,8,124,3, + 124,1,161,2,6,0,89,0,83,0,100,8,160,8,124,3, + 124,4,161,2,83,0,119,0,119,0,119,0,41,9,122,44, + 84,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105, + 111,110,32,111,102,32,77,111,100,117,108,101,84,121,112,101, + 46,95,95,114,101,112,114,95,95,40,41,46,218,10,95,95, + 108,111,97,100,101,114,95,95,78,218,8,95,95,115,112,101, + 99,95,95,218,11,109,111,100,117,108,101,95,114,101,112,114, + 250,1,63,250,13,60,109,111,100,117,108,101,32,123,33,114, + 125,62,250,20,60,109,111,100,117,108,101,32,123,33,114,125, + 32,40,123,33,114,125,41,62,250,23,60,109,111,100,117,108, + 101,32,123,33,114,125,32,102,114,111,109,32,123,33,114,125, + 62,41,9,114,13,0,0,0,218,22,95,109,111,100,117,108, 101,95,114,101,112,114,95,102,114,111,109,95,115,112,101,99, - 114,9,0,0,0,218,8,95,95,102,105,108,101,95,95,114, - 50,0,0,0,41,5,114,110,0,0,0,218,6,108,111,97, - 100,101,114,114,109,0,0,0,114,20,0,0,0,218,8,102, - 105,108,101,110,97,109,101,114,5,0,0,0,114,5,0,0, - 0,114,6,0,0,0,218,12,95,109,111,100,117,108,101,95, - 114,101,112,114,38,1,0,0,115,56,0,0,0,12,2,10, - 1,2,4,12,1,12,1,2,1,2,1,10,1,12,1,4, - 1,8,2,8,1,2,4,10,1,12,1,6,1,2,1,10, - 1,12,1,8,1,14,1,16,2,12,2,2,250,2,252,2, - 246,2,252,255,128,114,124,0,0,0,99,0,0,0,0,0, + 114,11,0,0,0,114,114,0,0,0,218,9,69,120,99,101, + 112,116,105,111,110,114,9,0,0,0,114,2,0,0,0,218, + 8,95,95,102,105,108,101,95,95,114,50,0,0,0,41,5, + 114,110,0,0,0,218,6,108,111,97,100,101,114,114,109,0, + 0,0,114,20,0,0,0,218,8,102,105,108,101,110,97,109, + 101,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 218,12,95,109,111,100,117,108,101,95,114,101,112,114,38,1, + 0,0,115,46,0,0,0,12,2,16,1,8,1,10,1,2, + 1,12,1,12,1,2,1,2,4,10,1,12,1,6,1,2, + 1,10,1,12,1,8,1,14,1,16,2,12,2,2,250,2, + 252,2,249,255,128,114,124,0,0,0,99,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,64, 0,0,0,115,114,0,0,0,101,0,90,1,100,0,90,2, 100,1,90,3,100,2,100,2,100,2,100,3,156,3,100,4, @@ -671,7 +672,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 99,104,101,100,41,6,114,33,0,0,0,114,20,0,0,0, 114,122,0,0,0,114,126,0,0,0,114,127,0,0,0,114, 128,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, - 0,0,0,114,34,0,0,0,111,1,0,0,115,16,0,0, + 0,0,0,114,34,0,0,0,103,1,0,0,115,16,0,0, 0,6,2,6,1,6,1,6,1,14,1,6,3,10,1,255, 128,122,19,77,111,100,117,108,101,83,112,101,99,46,95,95, 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0, @@ -693,7 +694,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 218,9,95,95,99,108,97,115,115,95,95,114,9,0,0,0, 218,4,106,111,105,110,41,2,114,33,0,0,0,114,62,0, 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,53,0,0,0,123,1,0,0,115,22,0,0,0,10, + 0,114,53,0,0,0,115,1,0,0,115,22,0,0,0,10, 1,10,1,4,255,10,2,18,1,10,1,6,1,8,1,4, 255,22,2,255,128,122,19,77,111,100,117,108,101,83,112,101, 99,46,95,95,114,101,112,114,95,95,99,2,0,0,0,0, @@ -711,7 +712,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 2,0,0,0,218,14,78,111,116,73,109,112,108,101,109,101, 110,116,101,100,41,3,114,33,0,0,0,90,5,111,116,104, 101,114,90,4,115,109,115,108,114,5,0,0,0,114,5,0, - 0,0,114,6,0,0,0,218,6,95,95,101,113,95,95,133, + 0,0,114,6,0,0,0,218,6,95,95,101,113,95,95,125, 1,0,0,115,34,0,0,0,6,1,2,1,12,1,10,1, 2,255,10,2,2,254,8,3,2,253,10,4,2,252,10,5, 4,251,12,6,8,1,2,255,255,128,122,17,77,111,100,117, @@ -727,7 +728,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100, 69,114,114,111,114,90,11,95,103,101,116,95,99,97,99,104, 101,100,114,52,0,0,0,114,5,0,0,0,114,5,0,0, - 0,114,6,0,0,0,114,135,0,0,0,145,1,0,0,115, + 0,114,6,0,0,0,114,135,0,0,0,137,1,0,0,115, 14,0,0,0,10,2,16,1,8,1,4,1,14,1,6,1, 255,128,122,17,77,111,100,117,108,101,83,112,101,99,46,99, 97,99,104,101,100,99,2,0,0,0,0,0,0,0,0,0, @@ -735,7 +736,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,124,1,124,0,95,0,100,0,83,0,114,0,0, 0,0,41,1,114,131,0,0,0,41,2,114,33,0,0,0, 114,135,0,0,0,114,5,0,0,0,114,5,0,0,0,114, - 6,0,0,0,114,135,0,0,0,154,1,0,0,115,4,0, + 6,0,0,0,114,135,0,0,0,146,1,0,0,115,4,0, 0,0,10,2,255,128,99,1,0,0,0,0,0,0,0,0, 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115, 32,0,0,0,124,0,106,0,100,1,117,0,114,26,124,0, @@ -746,14 +747,14 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,41,3,114,129,0,0,0,114,20,0,0,0,218,10,114, 112,97,114,116,105,116,105,111,110,114,52,0,0,0,114,5, 0,0,0,114,5,0,0,0,114,6,0,0,0,218,6,112, - 97,114,101,110,116,158,1,0,0,115,8,0,0,0,10,3, + 97,114,101,110,116,150,1,0,0,115,8,0,0,0,10,3, 16,1,6,2,255,128,122,17,77,111,100,117,108,101,83,112, 101,99,46,112,97,114,101,110,116,99,1,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,1,0,0,0,67,0, 0,0,115,6,0,0,0,124,0,106,0,83,0,114,0,0, 0,0,41,1,114,130,0,0,0,114,52,0,0,0,114,5, 0,0,0,114,5,0,0,0,114,6,0,0,0,114,136,0, - 0,0,166,1,0,0,115,4,0,0,0,6,2,255,128,122, + 0,0,158,1,0,0,115,4,0,0,0,6,2,255,128,122, 23,77,111,100,117,108,101,83,112,101,99,46,104,97,115,95, 108,111,99,97,116,105,111,110,99,2,0,0,0,0,0,0, 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0, @@ -761,14 +762,14 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 100,0,83,0,114,0,0,0,0,41,2,218,4,98,111,111, 108,114,130,0,0,0,41,2,114,33,0,0,0,218,5,118, 97,108,117,101,114,5,0,0,0,114,5,0,0,0,114,6, - 0,0,0,114,136,0,0,0,170,1,0,0,115,4,0,0, + 0,0,0,114,136,0,0,0,162,1,0,0,115,4,0,0, 0,14,2,255,128,41,12,114,9,0,0,0,114,8,0,0, 0,114,1,0,0,0,114,10,0,0,0,114,34,0,0,0, 114,53,0,0,0,114,138,0,0,0,218,8,112,114,111,112, 101,114,116,121,114,135,0,0,0,218,6,115,101,116,116,101, 114,114,143,0,0,0,114,136,0,0,0,114,5,0,0,0, 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, - 125,0,0,0,74,1,0,0,115,36,0,0,0,8,0,4, + 125,0,0,0,66,1,0,0,115,36,0,0,0,8,0,4, 1,4,36,2,1,12,255,8,12,8,10,2,12,10,1,4, 8,10,1,2,3,10,1,2,7,10,1,4,3,14,1,255, 128,114,125,0,0,0,169,2,114,126,0,0,0,114,128,0, @@ -796,7 +797,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 114,125,0,0,0,41,6,114,20,0,0,0,114,122,0,0, 0,114,126,0,0,0,114,128,0,0,0,114,149,0,0,0, 90,6,115,101,97,114,99,104,114,5,0,0,0,114,5,0, - 0,0,114,6,0,0,0,114,104,0,0,0,175,1,0,0, + 0,0,114,6,0,0,0,114,104,0,0,0,167,1,0,0, 115,40,0,0,0,10,2,8,1,4,1,6,1,8,2,12, 1,12,1,6,1,2,1,6,255,8,3,10,1,2,1,14, 1,12,1,8,1,4,3,16,2,2,250,255,128,114,104,0, @@ -821,7 +822,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 117,0,144,1,114,10,100,2,110,2,100,3,124,3,95,10, 124,6,124,3,95,11,124,7,124,3,95,12,124,3,83,0, 119,0,119,0,119,0,119,0,119,0,119,0,41,4,78,169, - 1,114,126,0,0,0,70,84,41,13,114,119,0,0,0,114, + 1,114,126,0,0,0,70,84,41,13,114,113,0,0,0,114, 2,0,0,0,114,9,0,0,0,114,112,0,0,0,114,121, 0,0,0,218,7,95,79,82,73,71,73,78,218,10,95,95, 99,97,99,104,101,100,95,95,218,4,108,105,115,116,218,8, @@ -831,7 +832,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,114,20,0,0,0,90,8,108,111,99,97,116,105,111, 110,114,135,0,0,0,114,129,0,0,0,114,5,0,0,0, 114,5,0,0,0,114,6,0,0,0,218,17,95,115,112,101, - 99,95,102,114,111,109,95,109,111,100,117,108,101,201,1,0, + 99,95,102,114,111,109,95,109,111,100,117,108,101,193,1,0, 0,115,86,0,0,0,2,2,10,1,14,1,4,1,8,2, 4,1,6,2,8,1,2,1,10,1,14,1,2,2,2,1, 10,1,14,1,6,1,8,1,8,1,2,1,10,1,14,1, @@ -878,13 +879,13 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,218,16,95,78,97,109,101,115,112,97,99,101,76,111,97, 100,101,114,218,7,95,95,110,101,119,95,95,90,5,95,112, 97,116,104,114,121,0,0,0,114,112,0,0,0,114,143,0, - 0,0,114,158,0,0,0,114,119,0,0,0,114,154,0,0, + 0,0,114,158,0,0,0,114,113,0,0,0,114,154,0,0, 0,114,136,0,0,0,114,126,0,0,0,114,135,0,0,0, 114,152,0,0,0,41,5,114,109,0,0,0,114,110,0,0, 0,114,157,0,0,0,114,122,0,0,0,114,159,0,0,0, 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, 18,95,105,110,105,116,95,109,111,100,117,108,101,95,97,116, - 116,114,115,246,1,0,0,115,114,0,0,0,20,4,2,1, + 116,114,115,238,1,0,0,115,114,0,0,0,20,4,2,1, 12,1,14,1,2,1,20,2,6,1,8,1,10,2,8,1, 4,1,6,1,10,2,8,1,6,1,6,11,2,1,10,1, 14,1,2,1,20,2,2,1,12,1,14,1,2,1,2,2, @@ -913,7 +914,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,114,161,0,0,0,169,2,114,109,0,0,0,114, 110,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, 0,0,0,218,16,109,111,100,117,108,101,95,102,114,111,109, - 95,115,112,101,99,62,2,0,0,115,20,0,0,0,4,3, + 95,115,112,101,99,54,2,0,0,115,20,0,0,0,4,3, 12,1,14,3,12,1,8,1,8,2,10,1,10,1,4,1, 255,128,114,165,0,0,0,99,1,0,0,0,0,0,0,0, 0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,0, @@ -926,15 +927,15 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,124,0,106,1,161,2,83,0,41,7,122,38,82,101,116, 117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32, 117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117, - 108,101,46,78,114,114,0,0,0,114,115,0,0,0,114,116, - 0,0,0,114,117,0,0,0,250,18,60,109,111,100,117,108, + 108,101,46,78,114,115,0,0,0,114,116,0,0,0,114,117, + 0,0,0,114,118,0,0,0,250,18,60,109,111,100,117,108, 101,32,123,33,114,125,32,40,123,125,41,62,41,5,114,20, 0,0,0,114,126,0,0,0,114,122,0,0,0,114,50,0, 0,0,114,136,0,0,0,41,2,114,109,0,0,0,114,20, 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,114,120,0,0,0,79,2,0,0,115,18,0,0,0, + 0,0,114,119,0,0,0,71,2,0,0,115,18,0,0,0, 20,3,10,1,10,1,10,1,14,2,6,2,14,1,16,2, - 255,128,114,120,0,0,0,99,2,0,0,0,0,0,0,0, + 255,128,114,119,0,0,0,99,2,0,0,0,0,0,0,0, 0,0,0,0,4,0,0,0,10,0,0,0,67,0,0,0, 115,26,1,0,0,124,0,106,0,125,2,116,1,124,2,131, 1,143,246,1,0,116,2,106,3,160,4,124,2,161,1,124, @@ -975,7 +976,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 95,109,111,100,117,108,101,114,163,0,0,0,218,3,112,111, 112,41,4,114,109,0,0,0,114,110,0,0,0,114,20,0, 0,0,114,108,0,0,0,114,5,0,0,0,114,5,0,0, - 0,114,6,0,0,0,114,106,0,0,0,96,2,0,0,115, + 0,114,6,0,0,0,114,106,0,0,0,88,2,0,0,115, 50,0,0,0,6,2,10,1,16,1,10,1,12,1,2,1, 10,1,10,1,14,1,16,2,14,2,12,1,16,1,12,2, 14,1,12,2,2,128,14,4,14,1,14,255,26,1,4,1, @@ -1000,15 +1001,15 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 8,144,1,121,12,1,0,1,0,1,0,89,0,124,1,83, 0,124,1,83,0,119,0,119,0,119,0,41,7,78,114,112, 0,0,0,114,158,0,0,0,114,154,0,0,0,114,141,0, - 0,0,114,25,0,0,0,114,119,0,0,0,41,14,114,122, + 0,0,114,25,0,0,0,114,113,0,0,0,41,14,114,122, 0,0,0,114,170,0,0,0,114,20,0,0,0,114,18,0, 0,0,114,105,0,0,0,114,171,0,0,0,114,13,0,0, 0,114,112,0,0,0,114,2,0,0,0,114,9,0,0,0, 114,158,0,0,0,114,11,0,0,0,114,142,0,0,0,114, - 119,0,0,0,114,164,0,0,0,114,5,0,0,0,114,5, + 113,0,0,0,114,164,0,0,0,114,5,0,0,0,114,5, 0,0,0,114,6,0,0,0,218,25,95,108,111,97,100,95, 98,97,99,107,119,97,114,100,95,99,111,109,112,97,116,105, - 98,108,101,126,2,0,0,115,66,0,0,0,2,3,18,1, + 98,108,101,118,2,0,0,115,66,0,0,0,2,3,18,1, 6,1,12,1,14,1,12,1,2,1,14,3,12,1,16,1, 2,1,12,1,14,1,2,1,16,1,2,1,8,4,10,1, 18,1,4,128,14,1,2,1,18,1,2,1,8,1,4,3, @@ -1042,7 +1043,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,114,83,0,0,0,41,3,114,109,0,0,0,114,108,0, 0,0,114,110,0,0,0,114,5,0,0,0,114,5,0,0, 0,114,6,0,0,0,218,14,95,108,111,97,100,95,117,110, - 108,111,99,107,101,100,162,2,0,0,115,62,0,0,0,10, + 108,111,99,107,101,100,154,2,0,0,115,62,0,0,0,10, 2,12,2,16,1,12,2,8,1,8,2,6,5,2,1,12, 1,2,1,10,1,10,1,14,1,2,255,12,4,4,128,6, 1,2,1,12,1,2,3,12,254,2,1,2,1,14,5,12, @@ -1067,7 +1068,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 101,100,46,10,10,32,32,32,32,78,41,3,114,57,0,0, 0,114,20,0,0,0,114,173,0,0,0,169,1,114,109,0, 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,107,0,0,0,207,2,0,0,115,8,0,0,0,12, + 0,114,107,0,0,0,199,2,0,0,115,8,0,0,0,12, 9,22,1,20,128,255,128,114,107,0,0,0,99,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, 0,64,0,0,0,115,140,0,0,0,101,0,90,1,100,0, @@ -1104,7 +1105,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 122,8,60,109,111,100,117,108,101,32,122,2,32,40,122,2, 41,62,78,41,3,114,9,0,0,0,114,175,0,0,0,114, 151,0,0,0,169,1,114,110,0,0,0,114,5,0,0,0, - 114,5,0,0,0,114,6,0,0,0,114,113,0,0,0,233, + 114,5,0,0,0,114,6,0,0,0,114,114,0,0,0,225, 2,0,0,115,4,0,0,0,22,7,255,128,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, @@ -1117,7 +1118,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,114,151,0,0,0,169,4,218,3,99,108,115,114,89, 0,0,0,218,4,112,97,116,104,218,6,116,97,114,103,101, 116,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, - 218,9,102,105,110,100,95,115,112,101,99,242,2,0,0,115, + 218,9,102,105,110,100,95,115,112,101,99,234,2,0,0,115, 12,0,0,0,8,2,4,1,10,1,16,1,4,2,255,128, 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, @@ -1139,7 +1140,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,114,122,0,0,0,41,4,114,180,0,0,0,114,89, 0,0,0,114,181,0,0,0,114,109,0,0,0,114,5,0, 0,0,114,5,0,0,0,114,6,0,0,0,218,11,102,105, - 110,100,95,109,111,100,117,108,101,251,2,0,0,115,6,0, + 110,100,95,109,111,100,117,108,101,243,2,0,0,115,6,0, 0,0,12,9,18,1,255,128,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,1,0,0,0,0,0,0,0,0,0, @@ -1154,7 +1155,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,114,74,0,0,0,114,64,0,0,0,90,14,99, 114,101,97,116,101,95,98,117,105,108,116,105,110,114,174,0, 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,162,0,0,0,7,3,0,0,115,12,0,0,0,12, + 0,114,162,0,0,0,255,2,0,0,115,12,0,0,0,12, 3,12,1,4,1,6,255,12,2,255,128,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,1,0,0,0,0, @@ -1165,7 +1166,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 108,101,78,41,3,114,74,0,0,0,114,64,0,0,0,90, 12,101,120,101,99,95,98,117,105,108,116,105,110,114,177,0, 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,163,0,0,0,15,3,0,0,115,4,0,0,0,16, + 0,114,163,0,0,0,7,3,0,0,115,4,0,0,0,16, 3,255,128,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,0,0,0,0,2,0,0, @@ -1176,7 +1177,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 101,32,99,111,100,101,32,111,98,106,101,99,116,115,46,78, 114,5,0,0,0,169,2,114,180,0,0,0,114,89,0,0, 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, - 218,8,103,101,116,95,99,111,100,101,20,3,0,0,243,4, + 218,8,103,101,116,95,99,111,100,101,12,3,0,0,243,4, 0,0,0,4,4,255,128,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,0,0,0,0,2,0, @@ -1187,7 +1188,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 111,117,114,99,101,32,99,111,100,101,46,78,114,5,0,0, 0,114,186,0,0,0,114,5,0,0,0,114,5,0,0,0, 114,6,0,0,0,218,10,103,101,116,95,115,111,117,114,99, - 101,26,3,0,0,114,188,0,0,0,122,26,66,117,105,108, + 101,18,3,0,0,114,188,0,0,0,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,0, 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,114, @@ -1196,18 +1197,18 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,78,114,5, 0,0,0,114,186,0,0,0,114,5,0,0,0,114,5,0, - 0,0,114,6,0,0,0,114,128,0,0,0,32,3,0,0, + 0,0,114,6,0,0,0,114,128,0,0,0,24,3,0,0, 114,188,0,0,0,122,26,66,117,105,108,116,105,110,73,109, 112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,103, 101,41,2,78,78,41,1,78,41,18,114,9,0,0,0,114, 8,0,0,0,114,1,0,0,0,114,10,0,0,0,114,151, 0,0,0,218,12,115,116,97,116,105,99,109,101,116,104,111, - 100,114,113,0,0,0,218,11,99,108,97,115,115,109,101,116, + 100,114,114,0,0,0,218,11,99,108,97,115,115,109,101,116, 104,111,100,114,183,0,0,0,114,184,0,0,0,114,162,0, 0,0,114,163,0,0,0,114,95,0,0,0,114,187,0,0, 0,114,189,0,0,0,114,128,0,0,0,114,111,0,0,0, 114,170,0,0,0,114,5,0,0,0,114,5,0,0,0,114, - 5,0,0,0,114,6,0,0,0,114,175,0,0,0,222,2, + 5,0,0,0,114,6,0,0,0,114,175,0,0,0,214,2, 0,0,115,48,0,0,0,8,0,4,2,4,7,2,2,10, 1,2,8,12,1,2,8,12,1,2,11,10,1,2,7,10, 1,2,4,2,1,12,1,2,4,2,1,12,1,2,4,2, @@ -1239,7 +1240,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 83,0,41,3,114,176,0,0,0,114,166,0,0,0,78,41, 4,114,50,0,0,0,114,9,0,0,0,114,192,0,0,0, 114,151,0,0,0,41,1,218,1,109,114,5,0,0,0,114, - 5,0,0,0,114,6,0,0,0,114,113,0,0,0,52,3, + 5,0,0,0,114,6,0,0,0,114,114,0,0,0,44,3, 0,0,115,4,0,0,0,16,7,255,128,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, @@ -1249,7 +1250,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 100,0,83,0,114,178,0,0,0,41,4,114,64,0,0,0, 114,98,0,0,0,114,104,0,0,0,114,151,0,0,0,114, 179,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, - 0,0,0,114,183,0,0,0,61,3,0,0,115,8,0,0, + 0,0,0,114,183,0,0,0,53,3,0,0,115,8,0,0, 0,10,2,16,1,4,2,255,128,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,0,0,0,0, @@ -1264,7 +1265,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 32,32,32,32,78,41,2,114,64,0,0,0,114,98,0,0, 0,41,3,114,180,0,0,0,114,89,0,0,0,114,181,0, 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,184,0,0,0,68,3,0,0,115,4,0,0,0,18, + 0,114,184,0,0,0,60,3,0,0,115,4,0,0,0,18, 7,255,128,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, 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, @@ -1273,7 +1274,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,5,0,0, 0,114,174,0,0,0,114,5,0,0,0,114,5,0,0,0, - 114,6,0,0,0,114,162,0,0,0,77,3,0,0,115,4, + 114,6,0,0,0,114,162,0,0,0,69,3,0,0,115,4, 0,0,0,4,0,255,128,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,0,0, @@ -1282,14 +1283,14 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 1,161,1,115,36,116,4,100,1,160,5,124,1,161,1,124, 1,100,2,141,2,130,1,116,6,116,2,106,7,124,1,131, 2,125,2,116,8,124,2,124,0,106,9,131,2,1,0,100, - 0,83,0,114,97,0,0,0,41,10,114,119,0,0,0,114, + 0,83,0,114,97,0,0,0,41,10,114,113,0,0,0,114, 20,0,0,0,114,64,0,0,0,114,98,0,0,0,114,87, 0,0,0,114,50,0,0,0,114,74,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,14,0,0,0,41,3,114,110,0, 0,0,114,20,0,0,0,218,4,99,111,100,101,114,5,0, 0,0,114,5,0,0,0,114,6,0,0,0,114,163,0,0, - 0,81,3,0,0,115,16,0,0,0,8,2,10,1,10,1, + 0,73,3,0,0,115,16,0,0,0,8,2,10,1,10,1, 2,1,6,255,12,2,16,1,255,128,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,0, @@ -1303,7 +1304,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,32, 32,78,41,1,114,111,0,0,0,114,186,0,0,0,114,5, 0,0,0,114,5,0,0,0,114,6,0,0,0,114,170,0, - 0,0,90,3,0,0,115,4,0,0,0,10,8,255,128,122, + 0,0,82,3,0,0,115,4,0,0,0,10,8,255,128,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,0,0,0,0,2,0,0,0,3,0,0,0, @@ -1313,7 +1314,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 114,32,116,104,101,32,102,114,111,122,101,110,32,109,111,100, 117,108,101,46,78,41,2,114,64,0,0,0,114,194,0,0, 0,114,186,0,0,0,114,5,0,0,0,114,5,0,0,0, - 114,6,0,0,0,114,187,0,0,0,100,3,0,0,243,4, + 114,6,0,0,0,114,187,0,0,0,92,3,0,0,243,4, 0,0,0,10,4,255,128,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,0,0,0,0,2,0,0, @@ -1323,7 +1324,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,5,0,0,0,114,186, 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,114,189,0,0,0,106,3,0,0,114,188,0,0,0, + 0,0,114,189,0,0,0,98,3,0,0,114,188,0,0,0, 122,25,70,114,111,122,101,110,73,109,112,111,114,116,101,114, 46,103,101,116,95,115,111,117,114,99,101,99,2,0,0,0, 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, @@ -1333,17 +1334,17 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 32,97,32,112,97,99,107,97,103,101,46,78,41,2,114,64, 0,0,0,90,17,105,115,95,102,114,111,122,101,110,95,112, 97,99,107,97,103,101,114,186,0,0,0,114,5,0,0,0, - 114,5,0,0,0,114,6,0,0,0,114,128,0,0,0,112, + 114,5,0,0,0,114,6,0,0,0,114,128,0,0,0,104, 3,0,0,114,198,0,0,0,122,25,70,114,111,122,101,110, 73,109,112,111,114,116,101,114,46,105,115,95,112,97,99,107, 97,103,101,41,2,78,78,41,1,78,41,17,114,9,0,0, 0,114,8,0,0,0,114,1,0,0,0,114,10,0,0,0, - 114,151,0,0,0,114,190,0,0,0,114,113,0,0,0,114, + 114,151,0,0,0,114,190,0,0,0,114,114,0,0,0,114, 191,0,0,0,114,183,0,0,0,114,184,0,0,0,114,162, 0,0,0,114,163,0,0,0,114,170,0,0,0,114,100,0, 0,0,114,187,0,0,0,114,189,0,0,0,114,128,0,0, 0,114,5,0,0,0,114,5,0,0,0,114,5,0,0,0, - 114,6,0,0,0,114,192,0,0,0,41,3,0,0,115,50, + 114,6,0,0,0,114,192,0,0,0,33,3,0,0,115,50, 0,0,0,8,0,4,2,4,7,2,2,10,1,2,8,12, 1,2,6,12,1,2,8,10,1,2,3,10,1,2,8,10, 1,2,9,2,1,12,1,2,4,2,1,12,1,2,4,2, @@ -1362,7 +1363,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 112,111,114,116,32,108,111,99,107,46,78,41,2,114,64,0, 0,0,114,65,0,0,0,114,52,0,0,0,114,5,0,0, 0,114,5,0,0,0,114,6,0,0,0,114,61,0,0,0, - 125,3,0,0,243,4,0,0,0,12,2,255,128,122,28,95, + 117,3,0,0,243,4,0,0,0,12,2,255,128,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,0,0,0,0,4,0,0,0,2,0,0,0, @@ -1375,13 +1376,13 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 120,99,95,116,121,112,101,218,9,101,120,99,95,118,97,108, 117,101,218,13,101,120,99,95,116,114,97,99,101,98,97,99, 107,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, - 114,63,0,0,0,129,3,0,0,114,201,0,0,0,122,27, + 114,63,0,0,0,121,3,0,0,114,201,0,0,0,122,27, 95,73,109,112,111,114,116,76,111,99,107,67,111,110,116,101, 120,116,46,95,95,101,120,105,116,95,95,78,41,6,114,9, 0,0,0,114,8,0,0,0,114,1,0,0,0,114,10,0, 0,0,114,61,0,0,0,114,63,0,0,0,114,5,0,0, 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, - 114,199,0,0,0,121,3,0,0,115,10,0,0,0,8,0, + 114,199,0,0,0,113,3,0,0,115,10,0,0,0,8,0, 4,2,8,2,12,4,255,128,114,199,0,0,0,99,3,0, 0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0, 0,0,67,0,0,0,115,64,0,0,0,124,1,160,0,100, @@ -1402,7 +1403,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,5,0,0,0,114,5,0, 0,0,114,6,0,0,0,218,13,95,114,101,115,111,108,118, - 101,95,110,97,109,101,134,3,0,0,115,12,0,0,0,16, + 101,95,110,97,109,101,126,3,0,0,115,12,0,0,0,16, 2,12,1,8,1,8,1,20,1,255,128,114,210,0,0,0, 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0, 0,4,0,0,0,67,0,0,0,115,34,0,0,0,124,0, @@ -1412,7 +1413,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,41,4,218,6,102,105,110,100,101,114,114,20,0,0,0, 114,181,0,0,0,114,122,0,0,0,114,5,0,0,0,114, 5,0,0,0,114,6,0,0,0,218,17,95,102,105,110,100, - 95,115,112,101,99,95,108,101,103,97,99,121,143,3,0,0, + 95,115,112,101,99,95,108,101,103,97,99,121,135,3,0,0, 115,10,0,0,0,12,3,8,1,4,1,10,1,255,128,114, 212,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, 0,10,0,0,0,10,0,0,0,67,0,0,0,115,36,1, @@ -1444,13 +1445,13 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 12,114,18,0,0,0,218,9,109,101,116,97,95,112,97,116, 104,114,87,0,0,0,114,101,0,0,0,114,102,0,0,0, 114,169,0,0,0,114,105,0,0,0,114,199,0,0,0,114, - 183,0,0,0,114,2,0,0,0,114,212,0,0,0,114,119, + 183,0,0,0,114,2,0,0,0,114,212,0,0,0,114,113, 0,0,0,41,10,114,20,0,0,0,114,181,0,0,0,114, 182,0,0,0,114,213,0,0,0,90,9,105,115,95,114,101, 108,111,97,100,114,211,0,0,0,114,183,0,0,0,114,109, - 0,0,0,114,110,0,0,0,114,119,0,0,0,114,5,0, + 0,0,0,114,110,0,0,0,114,113,0,0,0,114,5,0, 0,0,114,5,0,0,0,114,6,0,0,0,218,10,95,102, - 105,110,100,95,115,112,101,99,152,3,0,0,115,66,0,0, + 105,110,100,95,115,112,101,99,144,3,0,0,115,66,0,0, 0,6,2,8,1,8,2,4,3,12,1,10,5,8,1,8, 1,2,1,10,1,14,1,12,1,8,1,16,1,4,255,12, 3,30,128,10,1,18,2,10,1,2,1,10,1,14,1,12, @@ -1483,7 +1484,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 87,0,0,0,169,3,114,20,0,0,0,114,208,0,0,0, 114,209,0,0,0,114,5,0,0,0,114,5,0,0,0,114, 6,0,0,0,218,13,95,115,97,110,105,116,121,95,99,104, - 101,99,107,199,3,0,0,115,26,0,0,0,10,2,18,1, + 101,99,107,191,3,0,0,115,26,0,0,0,10,2,18,1, 8,1,8,1,8,1,10,1,8,1,4,1,8,1,12,2, 8,1,8,255,255,128,114,220,0,0,0,122,16,78,111,32, 109,111,100,117,108,101,32,110,97,109,101,100,32,122,4,123, @@ -1525,7 +1526,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,90,5,99,104,105,108,100,114,5,0,0,0,114,5, 0,0,0,114,6,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,218,3,0,0,115,60,0,0,0,4,1,14,1,4,1, + 100,210,3,0,0,115,60,0,0,0,4,1,14,1,4,1, 10,1,10,1,10,2,10,1,10,1,2,1,10,1,14,1, 16,1,14,1,10,1,8,1,18,1,8,2,6,1,10,2, 14,1,2,1,14,1,4,4,14,253,16,1,14,1,8,1, @@ -1551,7 +1552,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 41,4,114,20,0,0,0,114,224,0,0,0,114,110,0,0, 0,114,82,0,0,0,114,5,0,0,0,114,5,0,0,0, 114,6,0,0,0,218,14,95,102,105,110,100,95,97,110,100, - 95,108,111,97,100,253,3,0,0,115,28,0,0,0,10,2, + 95,108,111,97,100,245,3,0,0,115,28,0,0,0,10,2, 14,1,8,1,24,1,14,255,16,128,8,3,2,1,6,1, 2,255,12,2,8,2,4,1,255,128,114,227,0,0,0,114, 25,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, @@ -1582,7 +1583,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,114,210,0,0,0,114,227,0,0,0,218,11,95,103, 99,100,95,105,109,112,111,114,116,114,219,0,0,0,114,5, 0,0,0,114,5,0,0,0,114,6,0,0,0,114,228,0, - 0,0,13,4,0,0,115,10,0,0,0,12,9,8,1,12, + 0,0,5,4,0,0,115,10,0,0,0,12,9,8,1,12, 1,10,1,255,128,114,228,0,0,0,169,1,218,9,114,101, 99,117,114,115,105,118,101,99,3,0,0,0,0,0,0,0, 1,0,0,0,8,0,0,0,11,0,0,0,67,0,0,0, @@ -1630,7 +1631,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 114,224,0,0,0,114,230,0,0,0,218,1,120,90,5,119, 104,101,114,101,90,9,102,114,111,109,95,110,97,109,101,90, 3,101,120,99,114,5,0,0,0,114,5,0,0,0,114,6, - 0,0,0,114,233,0,0,0,28,4,0,0,115,58,0,0, + 0,0,0,114,233,0,0,0,20,4,0,0,115,58,0,0, 0,8,10,10,1,4,1,12,1,4,2,10,1,8,1,8, 255,8,2,14,1,10,1,2,1,6,255,2,128,10,2,14, 1,2,1,14,1,14,1,10,4,16,1,2,255,12,2,2, @@ -1657,7 +1658,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,158,0,0,0, - 114,119,0,0,0,78,122,32,95,95,112,97,99,107,97,103, + 114,113,0,0,0,78,122,32,95,95,112,97,99,107,97,103, 101,95,95,32,33,61,32,95,95,115,112,101,99,95,95,46, 112,97,114,101,110,116,32,40,122,4,32,33,61,32,250,1, 41,233,3,0,0,0,41,1,90,10,115,116,97,99,107,108, @@ -1673,7 +1674,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,41,3,218,7,103,108,111,98,97,108,115,114,208, 0,0,0,114,109,0,0,0,114,5,0,0,0,114,5,0, 0,0,114,6,0,0,0,218,17,95,99,97,108,99,95,95, - 95,112,97,99,107,97,103,101,95,95,65,4,0,0,115,44, + 95,112,97,99,107,97,103,101,95,95,57,4,0,0,115,44, 0,0,0,10,7,10,1,8,1,18,1,6,1,2,1,4, 255,4,1,6,255,4,2,6,254,4,3,8,1,6,1,6, 2,4,2,6,254,8,3,8,1,14,1,4,1,255,128,114, @@ -1729,7 +1730,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,114,209,0,0,0,114,110,0,0,0,90,8,103,108,111, 98,97,108,115,95,114,208,0,0,0,90,7,99,117,116,95, 111,102,102,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,218,10,95,95,105,109,112,111,114,116,95,95,92,4, + 0,0,218,10,95,95,105,109,112,111,114,116,95,95,84,4, 0,0,115,32,0,0,0,8,11,10,1,16,2,8,1,12, 1,4,1,8,3,18,1,4,1,4,1,26,4,30,3,10, 1,12,1,4,2,255,128,114,242,0,0,0,99,1,0,0, @@ -1743,7 +1744,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 173,0,0,0,41,2,114,20,0,0,0,114,109,0,0,0, 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, 18,95,98,117,105,108,116,105,110,95,102,114,111,109,95,110, - 97,109,101,129,4,0,0,115,10,0,0,0,10,1,8,1, + 97,109,101,121,4,0,0,115,10,0,0,0,10,1,8,1, 12,1,8,1,255,128,114,243,0,0,0,99,2,0,0,0, 0,0,0,0,0,0,0,0,10,0,0,0,5,0,0,0, 67,0,0,0,115,166,0,0,0,124,1,97,0,124,0,97, @@ -1786,7 +1787,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,114,5,0,0,0,114,5,0,0,0,114, - 6,0,0,0,218,6,95,115,101,116,117,112,136,4,0,0, + 6,0,0,0,218,6,95,115,101,116,117,112,128,4,0,0, 115,42,0,0,0,4,9,4,1,8,3,18,1,10,1,10, 1,6,1,10,1,6,1,2,2,10,1,10,1,2,128,10, 3,8,1,10,1,10,1,10,2,14,1,4,251,255,128,114, @@ -1802,7 +1803,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,114,175,0,0,0,114,192,0,0,0,41,2,114, 245,0,0,0,114,246,0,0,0,114,5,0,0,0,114,5, 0,0,0,114,6,0,0,0,218,8,95,105,110,115,116,97, - 108,108,171,4,0,0,115,8,0,0,0,10,2,12,2,16, + 108,108,163,4,0,0,115,8,0,0,0,10,2,12,2,16, 1,255,128,114,248,0,0,0,99,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0, 0,115,32,0,0,0,100,1,100,2,108,0,125,0,124,0, @@ -1818,7 +1819,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 41,1,114,249,0,0,0,114,5,0,0,0,114,5,0,0, 0,114,6,0,0,0,218,27,95,105,110,115,116,97,108,108, 95,101,120,116,101,114,110,97,108,95,105,109,112,111,114,116, - 101,114,115,179,4,0,0,115,8,0,0,0,8,3,4,1, + 101,114,115,171,4,0,0,115,8,0,0,0,8,3,4,1, 20,1,255,128,114,250,0,0,0,41,2,78,78,41,1,78, 41,2,78,114,25,0,0,0,41,4,78,78,114,5,0,0, 0,114,25,0,0,0,41,54,114,10,0,0,0,114,7,0, @@ -1830,7 +1831,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,114,83,0,0,0,114,95,0,0,0,114,100,0,0, 0,114,111,0,0,0,114,124,0,0,0,114,125,0,0,0, 114,104,0,0,0,114,155,0,0,0,114,161,0,0,0,114, - 165,0,0,0,114,120,0,0,0,114,106,0,0,0,114,172, + 165,0,0,0,114,119,0,0,0,114,106,0,0,0,114,172, 0,0,0,114,173,0,0,0,114,107,0,0,0,114,175,0, 0,0,114,192,0,0,0,114,199,0,0,0,114,210,0,0, 0,114,212,0,0,0,114,214,0,0,0,114,220,0,0,0, @@ -1844,7 +1845,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 108,101,62,1,0,0,0,115,106,0,0,0,4,0,8,22, 4,9,4,1,4,1,4,3,8,3,8,8,4,8,4,2, 16,3,14,4,14,77,14,21,8,16,8,37,8,17,14,11, - 8,8,8,11,8,12,8,19,14,36,16,101,10,26,14,45, + 8,8,8,11,8,12,8,19,14,28,16,101,10,26,14,45, 8,72,8,17,8,17,8,30,8,36,8,45,14,15,14,75, 14,80,8,13,8,9,10,9,8,47,4,16,8,1,8,2, 6,32,8,3,10,16,14,15,8,37,10,27,8,37,8,7,