From 6efa50a384f61155cd5315cd32f0f8775fe124c5 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Mon, 7 May 2012 21:41:59 +0200 Subject: [PATCH] Issue #14583: Fix importlib bug when a package's __init__.py would first import one of its modules then raise an error. --- Lib/importlib/_bootstrap.py | 2 +- Lib/importlib/test/import_/test_packages.py | 56 ++ Lib/importlib/test/util.py | 6 +- Misc/NEWS | 3 + Python/import.c | 19 +- Python/importlib.h | 596 ++++++++++---------- 6 files changed, 374 insertions(+), 308 deletions(-) diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 1e6a05a1a75..9952b067f13 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -1082,7 +1082,7 @@ def __import__(name, globals={}, locals={}, fromlist=[], level=0): # Return up to the first dot in 'name'. This is complicated by the fact # that 'name' may be relative. if level == 0: - return sys.modules[name.partition('.')[0]] + return _gcd_import(name.partition('.')[0]) elif not name: return module else: diff --git a/Lib/importlib/test/import_/test_packages.py b/Lib/importlib/test/import_/test_packages.py index e756ee41969..931494d6f7c 100644 --- a/Lib/importlib/test/import_/test_packages.py +++ b/Lib/importlib/test/import_/test_packages.py @@ -23,6 +23,62 @@ class ParentModuleTests(unittest.TestCase): import_util.import_('pkg.module') self.assertEqual(cm.exception.name, 'pkg') + def test_raising_parent_after_importing_child(self): + def __init__(): + import pkg.module + 1/0 + mock = util.mock_modules('pkg.__init__', 'pkg.module', + module_code={'pkg': __init__}) + with mock: + with util.import_state(meta_path=[mock]): + with self.assertRaises(ZeroDivisionError): + import_util.import_('pkg') + self.assertFalse('pkg' in sys.modules) + self.assertTrue('pkg.module' in sys.modules) + with self.assertRaises(ZeroDivisionError): + import_util.import_('pkg.module') + self.assertFalse('pkg' in sys.modules) + self.assertTrue('pkg.module' in sys.modules) + + def test_raising_parent_after_relative_importing_child(self): + def __init__(): + from . import module + 1/0 + mock = util.mock_modules('pkg.__init__', 'pkg.module', + module_code={'pkg': __init__}) + with mock: + with util.import_state(meta_path=[mock]): + with self.assertRaises((ZeroDivisionError, ImportError)): + # This raises ImportError on the "from . import module" + # line, not sure why. + import_util.import_('pkg') + self.assertFalse('pkg' in sys.modules) + with self.assertRaises((ZeroDivisionError, ImportError)): + import_util.import_('pkg.module') + self.assertFalse('pkg' in sys.modules) + # XXX False + #self.assertTrue('pkg.module' in sys.modules) + + def test_raising_parent_after_double_relative_importing_child(self): + def __init__(): + from ..subpkg import module + 1/0 + mock = util.mock_modules('pkg.__init__', 'pkg.subpkg.__init__', + 'pkg.subpkg.module', + module_code={'pkg.subpkg': __init__}) + with mock: + with util.import_state(meta_path=[mock]): + with self.assertRaises((ZeroDivisionError, ImportError)): + # This raises ImportError on the "from ..subpkg import module" + # line, not sure why. + import_util.import_('pkg.subpkg') + self.assertFalse('pkg.subpkg' in sys.modules) + with self.assertRaises((ZeroDivisionError, ImportError)): + import_util.import_('pkg.subpkg.module') + self.assertFalse('pkg.subpkg' in sys.modules) + # XXX False + #self.assertTrue('pkg.subpkg.module' in sys.modules) + def test_module_not_package(self): # Try to import a submodule from a non-package should raise ImportError. assert not hasattr(sys, '__path__') diff --git a/Lib/importlib/test/util.py b/Lib/importlib/test/util.py index 7ba7a97f585..ef32f7d690f 100644 --- a/Lib/importlib/test/util.py +++ b/Lib/importlib/test/util.py @@ -124,7 +124,11 @@ class mock_modules: else: sys.modules[fullname] = self.modules[fullname] if fullname in self.module_code: - self.module_code[fullname]() + try: + self.module_code[fullname]() + except Exception: + del sys.modules[fullname] + raise return self.modules[fullname] def __enter__(self): diff --git a/Misc/NEWS b/Misc/NEWS index 9e48da5c354..0850336c90f 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -20,6 +20,9 @@ Core and Builtins Library ------- +- Issue #14583: Fix importlib bug when a package's __init__.py would first + import one of its modules then raise an error. + - Issue #14741: Fix missing support for Ellipsis ('...') in parser module. - Issue #14697: Fix missing support for set displays and set comprehensions in diff --git a/Python/import.c b/Python/import.c index fd42a892a16..a8b1aa3fd14 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1633,19 +1633,20 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals, goto error_with_unlock; } + if (PyUnicode_GET_LENGTH(PyTuple_GET_ITEM(partition, 1)) == 0) { + /* No dot in module name, simple exit */ + Py_DECREF(partition); + final_mod = mod; + Py_INCREF(mod); + goto exit_with_unlock; + } + front = PyTuple_GET_ITEM(partition, 0); Py_INCREF(front); Py_DECREF(partition); if (level == 0) { - final_mod = PyDict_GetItem(interp->modules, front); - if (final_mod == NULL) { - PyErr_Format(PyExc_KeyError, - "%R not in sys.modules as expected", front); - } - else { - Py_INCREF(final_mod); - } + final_mod = PyObject_CallFunctionObjArgs(builtins_import, front, NULL); Py_DECREF(front); } else { @@ -1682,6 +1683,8 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals, fromlist, builtins_import, NULL); } + + exit_with_unlock: error_with_unlock: #ifdef WITH_THREAD if (_PyImport_ReleaseLock() < 0) { diff --git a/Python/importlib.h b/Python/importlib.h index 292308fc781..c88fc801814 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -2703,308 +2703,308 @@ unsigned char _Py_M__importlib[] = { 0,0,0,0,7,15,1,12,1,10,1,12,1,25,1,117, 17,0,0,0,95,99,97,108,99,95,95,95,112,97,99,107, 97,103,101,95,95,99,5,0,0,0,0,0,0,0,8,0, - 0,0,5,0,0,0,67,0,0,0,115,204,0,0,0,124, + 0,0,5,0,0,0,67,0,0,0,115,203,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,30,0,116,1,0,124,1,0, 131,1,0,125,6,0,116,0,0,124,0,0,124,6,0,124, - 4,0,131,3,0,125,5,0,124,3,0,115,184,0,124,4, - 0,100,1,0,107,2,0,114,99,0,116,2,0,106,3,0, - 124,0,0,106,4,0,100,2,0,131,1,0,100,1,0,25, - 25,83,124,0,0,115,109,0,124,5,0,83,116,5,0,124, - 0,0,131,1,0,116,5,0,124,0,0,106,4,0,100,2, - 0,131,1,0,100,1,0,25,131,1,0,24,125,7,0,116, - 2,0,106,3,0,124,5,0,106,6,0,100,3,0,116,5, - 0,124,5,0,106,6,0,131,1,0,124,7,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,3,0,83,40,4,0,0,0, - 117,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,105,0,0,0,0, - 117,1,0,0,0,46,78,40,8,0,0,0,117,11,0,0, - 0,95,103,99,100,95,105,109,112,111,114,116,117,17,0,0, - 0,95,99,97,108,99,95,95,95,112,97,99,107,97,103,101, - 95,95,117,3,0,0,0,115,121,115,117,7,0,0,0,109, - 111,100,117,108,101,115,117,9,0,0,0,112,97,114,116,105, - 116,105,111,110,117,3,0,0,0,108,101,110,117,8,0,0, - 0,95,95,110,97,109,101,95,95,117,16,0,0,0,95,104, - 97,110,100,108,101,95,102,114,111,109,108,105,115,116,40,8, - 0,0,0,117,4,0,0,0,110,97,109,101,117,7,0,0, - 0,103,108,111,98,97,108,115,117,6,0,0,0,108,111,99, - 97,108,115,117,8,0,0,0,102,114,111,109,108,105,115,116, - 117,5,0,0,0,108,101,118,101,108,117,6,0,0,0,109, - 111,100,117,108,101,117,7,0,0,0,112,97,99,107,97,103, - 101,117,7,0,0,0,99,117,116,95,111,102,102,40,0,0, - 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111, - 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98, - 111,111,116,115,116,114,97,112,62,117,10,0,0,0,95,95, - 105,109,112,111,114,116,95,95,41,4,0,0,115,24,0,0, - 0,0,11,12,1,15,2,12,1,18,1,6,3,12,1,24, - 1,6,1,4,2,35,1,40,2,117,10,0,0,0,95,95, - 105,109,112,111,114,116,95,95,99,2,0,0,0,0,0,0, - 0,11,0,0,0,12,0,0,0,67,0,0,0,115,31,2, - 0,0,124,1,0,97,0,0,124,0,0,97,1,0,120,47, - 0,116,0,0,116,1,0,102,2,0,68,93,33,0,125,2, - 0,116,2,0,124,2,0,100,1,0,131,2,0,115,25,0, - 116,3,0,124,2,0,95,4,0,113,25,0,113,25,0,87, - 116,1,0,106,5,0,116,6,0,25,125,3,0,120,76,0, - 100,25,0,68,93,68,0,125,4,0,124,4,0,116,1,0, - 106,5,0,107,7,0,114,121,0,116,3,0,106,7,0,124, - 4,0,131,1,0,125,5,0,110,13,0,116,1,0,106,5, - 0,124,4,0,25,125,5,0,116,8,0,124,3,0,124,4, - 0,124,5,0,131,3,0,1,113,82,0,87,100,6,0,100, - 7,0,103,1,0,102,2,0,100,8,0,100,9,0,100,7, - 0,103,2,0,102,2,0,100,10,0,100,9,0,100,7,0, - 103,2,0,102,2,0,102,3,0,125,6,0,120,189,0,124, - 6,0,68,93,169,0,92,2,0,125,7,0,125,8,0,116, - 9,0,100,11,0,100,12,0,132,0,0,124,8,0,68,131, - 1,0,131,1,0,115,252,0,116,10,0,130,1,0,124,8, - 0,100,13,0,25,125,9,0,124,7,0,116,1,0,106,5, - 0,107,6,0,114,38,1,116,1,0,106,5,0,124,7,0, - 25,125,10,0,80,113,209,0,121,60,0,116,3,0,106,7, - 0,124,7,0,131,1,0,125,10,0,124,7,0,100,10,0, - 107,2,0,114,96,1,100,14,0,116,1,0,106,11,0,107, - 6,0,114,96,1,124,8,0,100,15,0,25,125,9,0,110, - 0,0,80,87,113,209,0,4,116,12,0,107,10,0,114,121, - 1,1,1,1,119,209,0,89,113,209,0,88,113,209,0,87, - 116,12,0,100,16,0,131,1,0,130,1,0,116,8,0,124, - 3,0,100,17,0,124,10,0,131,3,0,1,116,8,0,124, - 3,0,100,18,0,124,9,0,131,3,0,1,116,8,0,124, - 3,0,100,19,0,116,13,0,124,8,0,131,1,0,131,3, - 0,1,116,8,0,124,3,0,100,20,0,116,14,0,131,0, - 0,131,3,0,1,116,8,0,124,3,0,100,21,0,124,1, - 0,106,15,0,131,0,0,131,3,0,1,116,8,0,124,3, - 0,100,22,0,116,0,0,106,16,0,131,0,0,131,3,0, - 1,124,7,0,100,8,0,107,2,0,114,27,2,116,17,0, - 106,18,0,100,23,0,131,1,0,1,110,0,0,100,24,0, - 83,40,26,0,0,0,117,250,0,0,0,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,117,10,0,0,0,95,95,108,111,97,100, - 101,114,95,95,117,3,0,0,0,95,105,111,117,9,0,0, - 0,95,119,97,114,110,105,110,103,115,117,8,0,0,0,98, - 117,105,108,116,105,110,115,117,7,0,0,0,109,97,114,115, - 104,97,108,117,5,0,0,0,112,111,115,105,120,117,1,0, - 0,0,47,117,2,0,0,0,110,116,117,1,0,0,0,92, - 117,3,0,0,0,111,115,50,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,40,2,0,0,0,105,1,0,0,0,78,40,1, - 0,0,0,117,3,0,0,0,108,101,110,40,2,0,0,0, - 117,2,0,0,0,46,48,117,3,0,0,0,115,101,112,40, - 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102, - 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46, - 95,98,111,111,116,115,116,114,97,112,62,117,9,0,0,0, - 60,103,101,110,101,120,112,114,62,102,4,0,0,115,2,0, - 0,0,6,0,117,25,0,0,0,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,105,0,0,0,0,117,7,0,0,0,69,77,88,32, - 71,67,67,105,1,0,0,0,117,30,0,0,0,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,117,3,0,0,0, - 95,111,115,117,8,0,0,0,112,97,116,104,95,115,101,112, - 117,15,0,0,0,112,97,116,104,95,115,101,112,97,114,97, - 116,111,114,115,117,11,0,0,0,95,114,101,108,97,120,95, - 99,97,115,101,117,13,0,0,0,95,77,65,71,73,67,95, - 78,85,77,66,69,82,117,4,0,0,0,95,84,65,71,117, - 4,0,0,0,46,112,121,119,78,40,4,0,0,0,117,3, - 0,0,0,95,105,111,117,9,0,0,0,95,119,97,114,110, - 105,110,103,115,117,8,0,0,0,98,117,105,108,116,105,110, - 115,117,7,0,0,0,109,97,114,115,104,97,108,40,19,0, - 0,0,117,4,0,0,0,95,105,109,112,117,3,0,0,0, - 115,121,115,117,7,0,0,0,104,97,115,97,116,116,114,117, - 15,0,0,0,66,117,105,108,116,105,110,73,109,112,111,114, - 116,101,114,117,10,0,0,0,95,95,108,111,97,100,101,114, - 95,95,117,7,0,0,0,109,111,100,117,108,101,115,117,8, - 0,0,0,95,95,110,97,109,101,95,95,117,11,0,0,0, - 108,111,97,100,95,109,111,100,117,108,101,117,7,0,0,0, - 115,101,116,97,116,116,114,117,3,0,0,0,97,108,108,117, - 14,0,0,0,65,115,115,101,114,116,105,111,110,69,114,114, - 111,114,117,7,0,0,0,118,101,114,115,105,111,110,117,11, - 0,0,0,73,109,112,111,114,116,69,114,114,111,114,117,3, - 0,0,0,115,101,116,117,16,0,0,0,95,109,97,107,101, - 95,114,101,108,97,120,95,99,97,115,101,117,9,0,0,0, - 103,101,116,95,109,97,103,105,99,117,7,0,0,0,103,101, - 116,95,116,97,103,117,16,0,0,0,95,83,79,85,82,67, - 69,95,83,85,70,70,73,88,69,83,117,6,0,0,0,97, - 112,112,101,110,100,40,11,0,0,0,117,10,0,0,0,115, - 121,115,95,109,111,100,117,108,101,117,11,0,0,0,95,105, - 109,112,95,109,111,100,117,108,101,117,6,0,0,0,109,111, - 100,117,108,101,117,11,0,0,0,115,101,108,102,95,109,111, - 100,117,108,101,117,12,0,0,0,98,117,105,108,116,105,110, - 95,110,97,109,101,117,14,0,0,0,98,117,105,108,116,105, - 110,95,109,111,100,117,108,101,117,10,0,0,0,111,115,95, - 100,101,116,97,105,108,115,117,10,0,0,0,98,117,105,108, - 116,105,110,95,111,115,117,15,0,0,0,112,97,116,104,95, - 115,101,112,97,114,97,116,111,114,115,117,8,0,0,0,112, - 97,116,104,95,115,101,112,117,9,0,0,0,111,115,95,109, - 111,100,117,108,101,40,0,0,0,0,40,0,0,0,0,117, - 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111, - 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112, - 62,117,6,0,0,0,95,115,101,116,117,112,75,4,0,0, - 115,68,0,0,0,0,9,6,1,6,2,19,1,15,1,16, - 2,13,1,13,1,15,1,18,2,13,1,20,2,48,1,19, - 2,31,1,10,1,15,1,13,1,4,2,3,1,15,2,27, - 1,13,1,5,1,13,1,12,2,12,1,16,1,16,1,22, - 2,19,1,22,1,22,1,12,1,117,6,0,0,0,95,115, - 101,116,117,112,99,2,0,0,0,0,0,0,0,6,0,0, - 0,4,0,0,0,67,0,0,0,115,139,0,0,0,116,0, - 0,124,0,0,124,1,0,131,2,0,1,116,1,0,124,1, - 0,106,2,0,131,0,0,100,2,0,102,3,0,125,2,0, - 116,4,0,116,5,0,100,3,0,102,3,0,125,3,0,116, - 7,0,116,8,0,103,1,0,100,3,0,102,3,0,125,4, - 0,124,2,0,124,3,0,124,4,0,103,3,0,125,5,0, - 116,9,0,106,10,0,106,11,0,116,12,0,106,13,0,124, - 5,0,140,0,0,103,1,0,131,1,0,1,116,9,0,106, - 14,0,106,11,0,116,15,0,116,16,0,116,17,0,103,3, - 0,131,1,0,1,100,1,0,83,40,4,0,0,0,117,50, - 0,0,0,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,78,70,84,40,18,0,0,0,117,6,0, - 0,0,95,115,101,116,117,112,117,19,0,0,0,69,120,116, - 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, - 117,18,0,0,0,101,120,116,101,110,115,105,111,110,95,115, - 117,102,102,105,120,101,115,117,5,0,0,0,70,97,108,115, - 101,117,16,0,0,0,83,111,117,114,99,101,70,105,108,101, - 76,111,97,100,101,114,117,16,0,0,0,95,83,79,85,82, - 67,69,95,83,85,70,70,73,88,69,83,117,4,0,0,0, - 84,114,117,101,117,20,0,0,0,83,111,117,114,99,101,108, - 101,115,115,70,105,108,101,76,111,97,100,101,114,117,16,0, - 0,0,95,66,89,84,69,67,79,68,69,95,83,85,70,70, - 73,88,117,3,0,0,0,115,121,115,117,10,0,0,0,112, - 97,116,104,95,104,111,111,107,115,117,6,0,0,0,101,120, - 116,101,110,100,117,10,0,0,0,70,105,108,101,70,105,110, - 100,101,114,117,9,0,0,0,112,97,116,104,95,104,111,111, - 107,117,9,0,0,0,109,101,116,97,95,112,97,116,104,117, - 15,0,0,0,66,117,105,108,116,105,110,73,109,112,111,114, - 116,101,114,117,14,0,0,0,70,114,111,122,101,110,73,109, - 112,111,114,116,101,114,117,10,0,0,0,80,97,116,104,70, - 105,110,100,101,114,40,6,0,0,0,117,10,0,0,0,115, - 121,115,95,109,111,100,117,108,101,117,11,0,0,0,95,105, - 109,112,95,109,111,100,117,108,101,117,10,0,0,0,101,120, - 116,101,110,115,105,111,110,115,117,6,0,0,0,115,111,117, - 114,99,101,117,8,0,0,0,98,121,116,101,99,111,100,101, - 117,17,0,0,0,115,117,112,112,111,114,116,101,100,95,108, - 111,97,100,101,114,115,40,0,0,0,0,40,0,0,0,0, - 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112, - 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97, - 112,62,117,8,0,0,0,95,105,110,115,116,97,108,108,129, - 4,0,0,115,14,0,0,0,0,2,13,1,21,1,15,1, - 18,1,15,1,28,1,117,8,0,0,0,95,105,110,115,116, - 97,108,108,78,40,3,0,0,0,117,3,0,0,0,119,105, - 110,117,6,0,0,0,99,121,103,119,105,110,117,6,0,0, - 0,100,97,114,119,105,110,40,55,0,0,0,117,7,0,0, - 0,95,95,100,111,99,95,95,117,27,0,0,0,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,117,16,0,0,0,95,109,97, - 107,101,95,114,101,108,97,120,95,99,97,115,101,117,7,0, - 0,0,95,119,95,108,111,110,103,117,7,0,0,0,95,114, - 95,108,111,110,103,117,10,0,0,0,95,112,97,116,104,95, - 106,111,105,110,117,11,0,0,0,95,112,97,116,104,95,115, - 112,108,105,116,117,18,0,0,0,95,112,97,116,104,95,105, - 115,95,109,111,100,101,95,116,121,112,101,117,12,0,0,0, - 95,112,97,116,104,95,105,115,102,105,108,101,117,11,0,0, - 0,95,112,97,116,104,95,105,115,100,105,114,117,13,0,0, - 0,95,119,114,105,116,101,95,97,116,111,109,105,99,117,5, - 0,0,0,95,119,114,97,112,117,4,0,0,0,116,121,112, - 101,117,8,0,0,0,95,95,99,111,100,101,95,95,117,10, - 0,0,0,95,99,111,100,101,95,116,121,112,101,117,10,0, - 0,0,110,101,119,95,109,111,100,117,108,101,117,8,0,0, - 0,95,80,89,67,65,67,72,69,117,16,0,0,0,95,83, - 79,85,82,67,69,95,83,85,70,70,73,88,69,83,117,22, - 0,0,0,95,68,69,66,85,71,95,66,89,84,69,67,79, - 68,69,95,83,85,70,70,73,88,117,20,0,0,0,95,79, - 80,84,95,66,89,84,69,67,79,68,69,95,83,85,70,70, - 73,88,117,9,0,0,0,95,95,100,101,98,117,103,95,95, - 117,16,0,0,0,95,66,89,84,69,67,79,68,69,95,83, - 85,70,70,73,88,117,4,0,0,0,78,111,110,101,117,17, - 0,0,0,99,97,99,104,101,95,102,114,111,109,95,115,111, - 117,114,99,101,117,16,0,0,0,95,118,101,114,98,111,115, - 101,95,109,101,115,115,97,103,101,117,11,0,0,0,115,101, - 116,95,112,97,99,107,97,103,101,117,10,0,0,0,115,101, - 116,95,108,111,97,100,101,114,117,17,0,0,0,109,111,100, - 117,108,101,95,102,111,114,95,108,111,97,100,101,114,117,11, - 0,0,0,95,99,104,101,99,107,95,110,97,109,101,117,17, - 0,0,0,95,114,101,113,117,105,114,101,115,95,98,117,105, - 108,116,105,110,117,16,0,0,0,95,114,101,113,117,105,114, - 101,115,95,102,114,111,122,101,110,117,15,0,0,0,66,117, - 105,108,116,105,110,73,109,112,111,114,116,101,114,117,14,0, - 0,0,70,114,111,122,101,110,73,109,112,111,114,116,101,114, - 117,13,0,0,0,95,76,111,97,100,101,114,66,97,115,105, - 99,115,117,12,0,0,0,83,111,117,114,99,101,76,111,97, - 100,101,114,117,10,0,0,0,70,105,108,101,76,111,97,100, - 101,114,117,16,0,0,0,83,111,117,114,99,101,70,105,108, - 101,76,111,97,100,101,114,117,20,0,0,0,83,111,117,114, - 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, - 117,19,0,0,0,69,120,116,101,110,115,105,111,110,70,105, - 108,101,76,111,97,100,101,114,117,10,0,0,0,80,97,116, - 104,70,105,110,100,101,114,117,10,0,0,0,70,105,108,101, - 70,105,110,100,101,114,117,18,0,0,0,95,73,109,112,111, - 114,116,76,111,99,107,67,111,110,116,101,120,116,117,13,0, - 0,0,95,114,101,115,111,108,118,101,95,110,97,109,101,117, - 12,0,0,0,95,102,105,110,100,95,109,111,100,117,108,101, - 117,13,0,0,0,95,115,97,110,105,116,121,95,99,104,101, - 99,107,117,8,0,0,0,95,69,82,82,95,77,83,71,117, - 14,0,0,0,95,102,105,110,100,95,97,110,100,95,108,111, - 97,100,117,11,0,0,0,95,103,99,100,95,105,109,112,111, - 114,116,117,16,0,0,0,95,104,97,110,100,108,101,95,102, - 114,111,109,108,105,115,116,117,17,0,0,0,95,99,97,108, - 99,95,95,95,112,97,99,107,97,103,101,95,95,117,10,0, - 0,0,95,95,105,109,112,111,114,116,95,95,117,13,0,0, - 0,95,77,65,71,73,67,95,78,85,77,66,69,82,117,4, - 0,0,0,95,84,65,71,117,6,0,0,0,95,115,101,116, - 117,112,117,8,0,0,0,95,105,110,115,116,97,108,108,40, - 0,0,0,0,40,0,0,0,0,40,0,0,0,0,117,29, + 4,0,131,3,0,125,5,0,124,3,0,115,183,0,124,4, + 0,100,1,0,107,2,0,114,98,0,116,0,0,124,0,0, + 106,2,0,100,2,0,131,1,0,100,1,0,25,131,1,0, + 83,124,0,0,115,108,0,124,5,0,83,116,3,0,124,0, + 0,131,1,0,116,3,0,124,0,0,106,2,0,100,2,0, + 131,1,0,100,1,0,25,131,1,0,24,125,7,0,116,4, + 0,106,5,0,124,5,0,106,6,0,100,3,0,116,3,0, + 124,5,0,106,6,0,131,1,0,124,7,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,3,0,83,40,4,0,0,0,117, + 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,105,0,0,0,0,117, + 1,0,0,0,46,78,40,8,0,0,0,117,11,0,0,0, + 95,103,99,100,95,105,109,112,111,114,116,117,17,0,0,0, + 95,99,97,108,99,95,95,95,112,97,99,107,97,103,101,95, + 95,117,9,0,0,0,112,97,114,116,105,116,105,111,110,117, + 3,0,0,0,108,101,110,117,3,0,0,0,115,121,115,117, + 7,0,0,0,109,111,100,117,108,101,115,117,8,0,0,0, + 95,95,110,97,109,101,95,95,117,16,0,0,0,95,104,97, + 110,100,108,101,95,102,114,111,109,108,105,115,116,40,8,0, + 0,0,117,4,0,0,0,110,97,109,101,117,7,0,0,0, + 103,108,111,98,97,108,115,117,6,0,0,0,108,111,99,97, + 108,115,117,8,0,0,0,102,114,111,109,108,105,115,116,117, + 5,0,0,0,108,101,118,101,108,117,6,0,0,0,109,111, + 100,117,108,101,117,7,0,0,0,112,97,99,107,97,103,101, + 117,7,0,0,0,99,117,116,95,111,102,102,40,0,0,0, + 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122, + 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111, + 111,116,115,116,114,97,112,62,117,10,0,0,0,95,95,105, + 109,112,111,114,116,95,95,41,4,0,0,115,24,0,0,0, + 0,11,12,1,15,2,12,1,18,1,6,3,12,1,23,1, + 6,1,4,2,35,1,40,2,117,10,0,0,0,95,95,105, + 109,112,111,114,116,95,95,99,2,0,0,0,0,0,0,0, + 11,0,0,0,12,0,0,0,67,0,0,0,115,31,2,0, + 0,124,1,0,97,0,0,124,0,0,97,1,0,120,47,0, + 116,0,0,116,1,0,102,2,0,68,93,33,0,125,2,0, + 116,2,0,124,2,0,100,1,0,131,2,0,115,25,0,116, + 3,0,124,2,0,95,4,0,113,25,0,113,25,0,87,116, + 1,0,106,5,0,116,6,0,25,125,3,0,120,76,0,100, + 25,0,68,93,68,0,125,4,0,124,4,0,116,1,0,106, + 5,0,107,7,0,114,121,0,116,3,0,106,7,0,124,4, + 0,131,1,0,125,5,0,110,13,0,116,1,0,106,5,0, + 124,4,0,25,125,5,0,116,8,0,124,3,0,124,4,0, + 124,5,0,131,3,0,1,113,82,0,87,100,6,0,100,7, + 0,103,1,0,102,2,0,100,8,0,100,9,0,100,7,0, + 103,2,0,102,2,0,100,10,0,100,9,0,100,7,0,103, + 2,0,102,2,0,102,3,0,125,6,0,120,189,0,124,6, + 0,68,93,169,0,92,2,0,125,7,0,125,8,0,116,9, + 0,100,11,0,100,12,0,132,0,0,124,8,0,68,131,1, + 0,131,1,0,115,252,0,116,10,0,130,1,0,124,8,0, + 100,13,0,25,125,9,0,124,7,0,116,1,0,106,5,0, + 107,6,0,114,38,1,116,1,0,106,5,0,124,7,0,25, + 125,10,0,80,113,209,0,121,60,0,116,3,0,106,7,0, + 124,7,0,131,1,0,125,10,0,124,7,0,100,10,0,107, + 2,0,114,96,1,100,14,0,116,1,0,106,11,0,107,6, + 0,114,96,1,124,8,0,100,15,0,25,125,9,0,110,0, + 0,80,87,113,209,0,4,116,12,0,107,10,0,114,121,1, + 1,1,1,119,209,0,89,113,209,0,88,113,209,0,87,116, + 12,0,100,16,0,131,1,0,130,1,0,116,8,0,124,3, + 0,100,17,0,124,10,0,131,3,0,1,116,8,0,124,3, + 0,100,18,0,124,9,0,131,3,0,1,116,8,0,124,3, + 0,100,19,0,116,13,0,124,8,0,131,1,0,131,3,0, + 1,116,8,0,124,3,0,100,20,0,116,14,0,131,0,0, + 131,3,0,1,116,8,0,124,3,0,100,21,0,124,1,0, + 106,15,0,131,0,0,131,3,0,1,116,8,0,124,3,0, + 100,22,0,116,0,0,106,16,0,131,0,0,131,3,0,1, + 124,7,0,100,8,0,107,2,0,114,27,2,116,17,0,106, + 18,0,100,23,0,131,1,0,1,110,0,0,100,24,0,83, + 40,26,0,0,0,117,250,0,0,0,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,117,10,0,0,0,95,95,108,111,97,100,101, + 114,95,95,117,3,0,0,0,95,105,111,117,9,0,0,0, + 95,119,97,114,110,105,110,103,115,117,8,0,0,0,98,117, + 105,108,116,105,110,115,117,7,0,0,0,109,97,114,115,104, + 97,108,117,5,0,0,0,112,111,115,105,120,117,1,0,0, + 0,47,117,2,0,0,0,110,116,117,1,0,0,0,92,117, + 3,0,0,0,111,115,50,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,40,2,0,0,0,105,1,0,0,0,78,40,1,0, + 0,0,117,3,0,0,0,108,101,110,40,2,0,0,0,117, + 2,0,0,0,46,48,117,3,0,0,0,115,101,112,40,0, + 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114, + 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, + 98,111,111,116,115,116,114,97,112,62,117,9,0,0,0,60, + 103,101,110,101,120,112,114,62,102,4,0,0,115,2,0,0, + 0,6,0,117,25,0,0,0,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,105,0,0,0,0,117,7,0,0,0,69,77,88,32,71, + 67,67,105,1,0,0,0,117,30,0,0,0,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,117,3,0,0,0,95, + 111,115,117,8,0,0,0,112,97,116,104,95,115,101,112,117, + 15,0,0,0,112,97,116,104,95,115,101,112,97,114,97,116, + 111,114,115,117,11,0,0,0,95,114,101,108,97,120,95,99, + 97,115,101,117,13,0,0,0,95,77,65,71,73,67,95,78, + 85,77,66,69,82,117,4,0,0,0,95,84,65,71,117,4, + 0,0,0,46,112,121,119,78,40,4,0,0,0,117,3,0, + 0,0,95,105,111,117,9,0,0,0,95,119,97,114,110,105, + 110,103,115,117,8,0,0,0,98,117,105,108,116,105,110,115, + 117,7,0,0,0,109,97,114,115,104,97,108,40,19,0,0, + 0,117,4,0,0,0,95,105,109,112,117,3,0,0,0,115, + 121,115,117,7,0,0,0,104,97,115,97,116,116,114,117,15, + 0,0,0,66,117,105,108,116,105,110,73,109,112,111,114,116, + 101,114,117,10,0,0,0,95,95,108,111,97,100,101,114,95, + 95,117,7,0,0,0,109,111,100,117,108,101,115,117,8,0, + 0,0,95,95,110,97,109,101,95,95,117,11,0,0,0,108, + 111,97,100,95,109,111,100,117,108,101,117,7,0,0,0,115, + 101,116,97,116,116,114,117,3,0,0,0,97,108,108,117,14, + 0,0,0,65,115,115,101,114,116,105,111,110,69,114,114,111, + 114,117,7,0,0,0,118,101,114,115,105,111,110,117,11,0, + 0,0,73,109,112,111,114,116,69,114,114,111,114,117,3,0, + 0,0,115,101,116,117,16,0,0,0,95,109,97,107,101,95, + 114,101,108,97,120,95,99,97,115,101,117,9,0,0,0,103, + 101,116,95,109,97,103,105,99,117,7,0,0,0,103,101,116, + 95,116,97,103,117,16,0,0,0,95,83,79,85,82,67,69, + 95,83,85,70,70,73,88,69,83,117,6,0,0,0,97,112, + 112,101,110,100,40,11,0,0,0,117,10,0,0,0,115,121, + 115,95,109,111,100,117,108,101,117,11,0,0,0,95,105,109, + 112,95,109,111,100,117,108,101,117,6,0,0,0,109,111,100, + 117,108,101,117,11,0,0,0,115,101,108,102,95,109,111,100, + 117,108,101,117,12,0,0,0,98,117,105,108,116,105,110,95, + 110,97,109,101,117,14,0,0,0,98,117,105,108,116,105,110, + 95,109,111,100,117,108,101,117,10,0,0,0,111,115,95,100, + 101,116,97,105,108,115,117,10,0,0,0,98,117,105,108,116, + 105,110,95,111,115,117,15,0,0,0,112,97,116,104,95,115, + 101,112,97,114,97,116,111,114,115,117,8,0,0,0,112,97, + 116,104,95,115,101,112,117,9,0,0,0,111,115,95,109,111, + 100,117,108,101,40,0,0,0,0,40,0,0,0,0,117,29, 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114, 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62, - 117,8,0,0,0,60,109,111,100,117,108,101,62,8,0,0, - 0,115,100,0,0,0,6,21,6,3,12,13,12,16,12,13, - 12,12,12,12,12,10,12,6,12,7,12,21,12,8,15,3, - 12,11,6,2,9,2,6,1,6,1,18,2,15,19,12,8, - 12,13,12,11,12,48,12,16,12,11,12,13,19,53,19,47, - 19,77,22,111,19,22,25,38,25,24,19,45,19,54,19,116, - 19,13,12,9,12,16,12,17,6,2,12,47,18,25,12,23, - 12,15,24,30,6,1,6,3,12,54, + 117,6,0,0,0,95,115,101,116,117,112,75,4,0,0,115, + 68,0,0,0,0,9,6,1,6,2,19,1,15,1,16,2, + 13,1,13,1,15,1,18,2,13,1,20,2,48,1,19,2, + 31,1,10,1,15,1,13,1,4,2,3,1,15,2,27,1, + 13,1,5,1,13,1,12,2,12,1,16,1,16,1,22,2, + 19,1,22,1,22,1,12,1,117,6,0,0,0,95,115,101, + 116,117,112,99,2,0,0,0,0,0,0,0,6,0,0,0, + 4,0,0,0,67,0,0,0,115,139,0,0,0,116,0,0, + 124,0,0,124,1,0,131,2,0,1,116,1,0,124,1,0, + 106,2,0,131,0,0,100,2,0,102,3,0,125,2,0,116, + 4,0,116,5,0,100,3,0,102,3,0,125,3,0,116,7, + 0,116,8,0,103,1,0,100,3,0,102,3,0,125,4,0, + 124,2,0,124,3,0,124,4,0,103,3,0,125,5,0,116, + 9,0,106,10,0,106,11,0,116,12,0,106,13,0,124,5, + 0,140,0,0,103,1,0,131,1,0,1,116,9,0,106,14, + 0,106,11,0,116,15,0,116,16,0,116,17,0,103,3,0, + 131,1,0,1,100,1,0,83,40,4,0,0,0,117,50,0, + 0,0,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,78,70,84,40,18,0,0,0,117,6,0,0, + 0,95,115,101,116,117,112,117,19,0,0,0,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,117, + 18,0,0,0,101,120,116,101,110,115,105,111,110,95,115,117, + 102,102,105,120,101,115,117,5,0,0,0,70,97,108,115,101, + 117,16,0,0,0,83,111,117,114,99,101,70,105,108,101,76, + 111,97,100,101,114,117,16,0,0,0,95,83,79,85,82,67, + 69,95,83,85,70,70,73,88,69,83,117,4,0,0,0,84, + 114,117,101,117,20,0,0,0,83,111,117,114,99,101,108,101, + 115,115,70,105,108,101,76,111,97,100,101,114,117,16,0,0, + 0,95,66,89,84,69,67,79,68,69,95,83,85,70,70,73, + 88,117,3,0,0,0,115,121,115,117,10,0,0,0,112,97, + 116,104,95,104,111,111,107,115,117,6,0,0,0,101,120,116, + 101,110,100,117,10,0,0,0,70,105,108,101,70,105,110,100, + 101,114,117,9,0,0,0,112,97,116,104,95,104,111,111,107, + 117,9,0,0,0,109,101,116,97,95,112,97,116,104,117,15, + 0,0,0,66,117,105,108,116,105,110,73,109,112,111,114,116, + 101,114,117,14,0,0,0,70,114,111,122,101,110,73,109,112, + 111,114,116,101,114,117,10,0,0,0,80,97,116,104,70,105, + 110,100,101,114,40,6,0,0,0,117,10,0,0,0,115,121, + 115,95,109,111,100,117,108,101,117,11,0,0,0,95,105,109, + 112,95,109,111,100,117,108,101,117,10,0,0,0,101,120,116, + 101,110,115,105,111,110,115,117,6,0,0,0,115,111,117,114, + 99,101,117,8,0,0,0,98,121,116,101,99,111,100,101,117, + 17,0,0,0,115,117,112,112,111,114,116,101,100,95,108,111, + 97,100,101,114,115,40,0,0,0,0,40,0,0,0,0,117, + 29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111, + 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112, + 62,117,8,0,0,0,95,105,110,115,116,97,108,108,129,4, + 0,0,115,14,0,0,0,0,2,13,1,21,1,15,1,18, + 1,15,1,28,1,117,8,0,0,0,95,105,110,115,116,97, + 108,108,78,40,3,0,0,0,117,3,0,0,0,119,105,110, + 117,6,0,0,0,99,121,103,119,105,110,117,6,0,0,0, + 100,97,114,119,105,110,40,55,0,0,0,117,7,0,0,0, + 95,95,100,111,99,95,95,117,27,0,0,0,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,117,16,0,0,0,95,109,97,107, + 101,95,114,101,108,97,120,95,99,97,115,101,117,7,0,0, + 0,95,119,95,108,111,110,103,117,7,0,0,0,95,114,95, + 108,111,110,103,117,10,0,0,0,95,112,97,116,104,95,106, + 111,105,110,117,11,0,0,0,95,112,97,116,104,95,115,112, + 108,105,116,117,18,0,0,0,95,112,97,116,104,95,105,115, + 95,109,111,100,101,95,116,121,112,101,117,12,0,0,0,95, + 112,97,116,104,95,105,115,102,105,108,101,117,11,0,0,0, + 95,112,97,116,104,95,105,115,100,105,114,117,13,0,0,0, + 95,119,114,105,116,101,95,97,116,111,109,105,99,117,5,0, + 0,0,95,119,114,97,112,117,4,0,0,0,116,121,112,101, + 117,8,0,0,0,95,95,99,111,100,101,95,95,117,10,0, + 0,0,95,99,111,100,101,95,116,121,112,101,117,10,0,0, + 0,110,101,119,95,109,111,100,117,108,101,117,8,0,0,0, + 95,80,89,67,65,67,72,69,117,16,0,0,0,95,83,79, + 85,82,67,69,95,83,85,70,70,73,88,69,83,117,22,0, + 0,0,95,68,69,66,85,71,95,66,89,84,69,67,79,68, + 69,95,83,85,70,70,73,88,117,20,0,0,0,95,79,80, + 84,95,66,89,84,69,67,79,68,69,95,83,85,70,70,73, + 88,117,9,0,0,0,95,95,100,101,98,117,103,95,95,117, + 16,0,0,0,95,66,89,84,69,67,79,68,69,95,83,85, + 70,70,73,88,117,4,0,0,0,78,111,110,101,117,17,0, + 0,0,99,97,99,104,101,95,102,114,111,109,95,115,111,117, + 114,99,101,117,16,0,0,0,95,118,101,114,98,111,115,101, + 95,109,101,115,115,97,103,101,117,11,0,0,0,115,101,116, + 95,112,97,99,107,97,103,101,117,10,0,0,0,115,101,116, + 95,108,111,97,100,101,114,117,17,0,0,0,109,111,100,117, + 108,101,95,102,111,114,95,108,111,97,100,101,114,117,11,0, + 0,0,95,99,104,101,99,107,95,110,97,109,101,117,17,0, + 0,0,95,114,101,113,117,105,114,101,115,95,98,117,105,108, + 116,105,110,117,16,0,0,0,95,114,101,113,117,105,114,101, + 115,95,102,114,111,122,101,110,117,15,0,0,0,66,117,105, + 108,116,105,110,73,109,112,111,114,116,101,114,117,14,0,0, + 0,70,114,111,122,101,110,73,109,112,111,114,116,101,114,117, + 13,0,0,0,95,76,111,97,100,101,114,66,97,115,105,99, + 115,117,12,0,0,0,83,111,117,114,99,101,76,111,97,100, + 101,114,117,10,0,0,0,70,105,108,101,76,111,97,100,101, + 114,117,16,0,0,0,83,111,117,114,99,101,70,105,108,101, + 76,111,97,100,101,114,117,20,0,0,0,83,111,117,114,99, + 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,117, + 19,0,0,0,69,120,116,101,110,115,105,111,110,70,105,108, + 101,76,111,97,100,101,114,117,10,0,0,0,80,97,116,104, + 70,105,110,100,101,114,117,10,0,0,0,70,105,108,101,70, + 105,110,100,101,114,117,18,0,0,0,95,73,109,112,111,114, + 116,76,111,99,107,67,111,110,116,101,120,116,117,13,0,0, + 0,95,114,101,115,111,108,118,101,95,110,97,109,101,117,12, + 0,0,0,95,102,105,110,100,95,109,111,100,117,108,101,117, + 13,0,0,0,95,115,97,110,105,116,121,95,99,104,101,99, + 107,117,8,0,0,0,95,69,82,82,95,77,83,71,117,14, + 0,0,0,95,102,105,110,100,95,97,110,100,95,108,111,97, + 100,117,11,0,0,0,95,103,99,100,95,105,109,112,111,114, + 116,117,16,0,0,0,95,104,97,110,100,108,101,95,102,114, + 111,109,108,105,115,116,117,17,0,0,0,95,99,97,108,99, + 95,95,95,112,97,99,107,97,103,101,95,95,117,10,0,0, + 0,95,95,105,109,112,111,114,116,95,95,117,13,0,0,0, + 95,77,65,71,73,67,95,78,85,77,66,69,82,117,4,0, + 0,0,95,84,65,71,117,6,0,0,0,95,115,101,116,117, + 112,117,8,0,0,0,95,105,110,115,116,97,108,108,40,0, + 0,0,0,40,0,0,0,0,40,0,0,0,0,117,29,0, + 0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116, + 108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117, + 8,0,0,0,60,109,111,100,117,108,101,62,8,0,0,0, + 115,100,0,0,0,6,21,6,3,12,13,12,16,12,13,12, + 12,12,12,12,10,12,6,12,7,12,21,12,8,15,3,12, + 11,6,2,9,2,6,1,6,1,18,2,15,19,12,8,12, + 13,12,11,12,48,12,16,12,11,12,13,19,53,19,47,19, + 77,22,111,19,22,25,38,25,24,19,45,19,54,19,116,19, + 13,12,9,12,16,12,17,6,2,12,47,18,25,12,23,12, + 15,24,30,6,1,6,3,12,54, }; /* Mercurial binary marker: */ \ No newline at end of file