From 5307a578c40de974a49e3373aeee9b81843039b1 Mon Sep 17 00:00:00 2001 From: sgoudham Date: Sat, 18 Jul 2020 05:26:24 +0100 Subject: [PATCH] Installing virtualenv --- .../appdirs-1.4.4.dist-info/INSTALLER | 1 + .../appdirs-1.4.4.dist-info/LICENSE.txt | 23 + .../appdirs-1.4.4.dist-info/METADATA | 264 ++ .../appdirs-1.4.4.dist-info/RECORD | 8 + .../appdirs-1.4.4.dist-info/WHEEL | 6 + .../appdirs-1.4.4.dist-info/top_level.txt | 1 + venv/Lib/site-packages/appdirs.py | 608 ++++ venv/Lib/site-packages/clonevirtualenv.py | 318 ++ .../distlib-0.3.1.dist-info/INSTALLER | 1 + .../distlib-0.3.1.dist-info/METADATA | 24 + .../distlib-0.3.1.dist-info/RECORD | 45 + .../distlib-0.3.1.dist-info/WHEEL | 5 + venv/Lib/site-packages/distlib/__init__.py | 23 + .../distlib/_backport/__init__.py | 6 + .../site-packages/distlib/_backport/misc.py | 41 + .../site-packages/distlib/_backport/shutil.py | 764 +++++ .../distlib/_backport/sysconfig.cfg | 84 + .../distlib/_backport/sysconfig.py | 786 +++++ .../distlib/_backport/tarfile.py | 2607 +++++++++++++++++ venv/Lib/site-packages/distlib/compat.py | 1120 +++++++ venv/Lib/site-packages/distlib/database.py | 1339 +++++++++ venv/Lib/site-packages/distlib/index.py | 516 ++++ venv/Lib/site-packages/distlib/locators.py | 1302 ++++++++ venv/Lib/site-packages/distlib/manifest.py | 393 +++ venv/Lib/site-packages/distlib/markers.py | 131 + venv/Lib/site-packages/distlib/metadata.py | 1056 +++++++ venv/Lib/site-packages/distlib/resources.py | 355 +++ venv/Lib/site-packages/distlib/scripts.py | 419 +++ venv/Lib/site-packages/distlib/t32.exe | Bin 0 -> 96768 bytes venv/Lib/site-packages/distlib/t64.exe | Bin 0 -> 105984 bytes venv/Lib/site-packages/distlib/util.py | 1761 +++++++++++ venv/Lib/site-packages/distlib/version.py | 736 +++++ venv/Lib/site-packages/distlib/w32.exe | Bin 0 -> 90112 bytes venv/Lib/site-packages/distlib/w64.exe | Bin 0 -> 99840 bytes venv/Lib/site-packages/distlib/wheel.py | 1018 +++++++ .../filelock-3.0.12.dist-info/INSTALLER | 1 + .../filelock-3.0.12.dist-info/LICENSE | 24 + .../filelock-3.0.12.dist-info/METADATA | 156 + .../filelock-3.0.12.dist-info/RECORD | 8 + .../filelock-3.0.12.dist-info/WHEEL | 5 + .../filelock-3.0.12.dist-info/top_level.txt | 1 + venv/Lib/site-packages/filelock.py | 451 +++ .../INSTALLER | 1 + .../LICENSE | 13 + .../METADATA | 66 + .../importlib_metadata-1.7.0.dist-info/RECORD | 33 + .../importlib_metadata-1.7.0.dist-info/WHEEL | 6 + .../top_level.txt | 1 + .../importlib_metadata/__init__.py | 623 ++++ .../importlib_metadata/_compat.py | 152 + .../importlib_metadata/docs/__init__.py | 0 .../importlib_metadata/docs/changelog.rst | 297 ++ .../importlib_metadata/docs/conf.py | 185 ++ .../importlib_metadata/docs/index.rst | 50 + .../importlib_metadata/docs/using.rst | 260 ++ .../importlib_metadata/tests/__init__.py | 0 .../importlib_metadata/tests/data/__init__.py | 0 .../tests/data/example-21.12-py3-none-any.whl | Bin 0 -> 1455 bytes .../tests/data/example-21.12-py3.6.egg | Bin 0 -> 1497 bytes .../importlib_metadata/tests/fixtures.py | 232 ++ .../importlib_metadata/tests/test_api.py | 176 ++ .../tests/test_integration.py | 54 + .../importlib_metadata/tests/test_main.py | 285 ++ .../importlib_metadata/tests/test_zip.py | 80 + .../INSTALLER | 1 + .../LICENSE | 13 + .../METADATA | 53 + .../RECORD | 66 + .../importlib_resources-3.0.0.dist-info/WHEEL | 6 + .../top_level.txt | 1 + .../importlib_resources/__init__.py | 53 + .../importlib_resources/_common.py | 121 + .../importlib_resources/_compat.py | 127 + .../site-packages/importlib_resources/_py2.py | 107 + .../site-packages/importlib_resources/_py3.py | 150 + .../site-packages/importlib_resources/abc.py | 142 + .../importlib_resources/py.typed | 0 .../importlib_resources/readers.py | 41 + .../importlib_resources/tests/__init__.py | 0 .../tests/data01/__init__.py | 0 .../tests/data01/binary.file | Bin 0 -> 4 bytes .../tests/data01/subdirectory/__init__.py | 0 .../tests/data01/subdirectory/binary.file | Bin 0 -> 4 bytes .../tests/data01/utf-16.file | Bin 0 -> 44 bytes .../tests/data01/utf-8.file | 1 + .../tests/data02/__init__.py | 0 .../tests/data02/one/__init__.py | 0 .../tests/data02/one/resource1.txt | 1 + .../tests/data02/two/__init__.py | 0 .../tests/data02/two/resource2.txt | 1 + .../tests/data03/__init__.py | 0 .../data03/namespace/portion1/__init__.py | 0 .../data03/namespace/portion2/__init__.py | 0 .../tests/data03/namespace/resource1.txt | 0 .../importlib_resources/tests/test_files.py | 39 + .../importlib_resources/tests/test_open.py | 73 + .../importlib_resources/tests/test_path.py | 51 + .../importlib_resources/tests/test_read.py | 63 + .../tests/test_resource.py | 170 ++ .../importlib_resources/tests/util.py | 213 ++ .../tests/zipdata01/__init__.py | 0 .../tests/zipdata01/ziptestdata.zip | Bin 0 -> 1131 bytes .../tests/zipdata02/__init__.py | 0 .../tests/zipdata02/ziptestdata.zip | Bin 0 -> 698 bytes .../importlib_resources/trees.py | 6 + .../site-packages/pbr-5.4.5.dist-info/AUTHORS | 150 + .../pbr-5.4.5.dist-info/INSTALLER | 1 + .../site-packages/pbr-5.4.5.dist-info/LICENSE | 176 ++ .../pbr-5.4.5.dist-info/METADATA | 73 + .../site-packages/pbr-5.4.5.dist-info/RECORD | 110 + .../site-packages/pbr-5.4.5.dist-info/WHEEL | 6 + .../pbr-5.4.5.dist-info/entry_points.txt | 9 + .../pbr-5.4.5.dist-info/top_level.txt | 1 + venv/Lib/site-packages/pbr/__init__.py | 0 venv/Lib/site-packages/pbr/builddoc.py | 292 ++ venv/Lib/site-packages/pbr/cmd/__init__.py | 0 venv/Lib/site-packages/pbr/cmd/main.py | 119 + venv/Lib/site-packages/pbr/core.py | 145 + venv/Lib/site-packages/pbr/extra_files.py | 35 + venv/Lib/site-packages/pbr/find_package.py | 29 + venv/Lib/site-packages/pbr/git.py | 338 +++ venv/Lib/site-packages/pbr/hooks/__init__.py | 28 + venv/Lib/site-packages/pbr/hooks/backwards.py | 33 + venv/Lib/site-packages/pbr/hooks/base.py | 34 + venv/Lib/site-packages/pbr/hooks/commands.py | 66 + venv/Lib/site-packages/pbr/hooks/files.py | 126 + venv/Lib/site-packages/pbr/hooks/metadata.py | 32 + venv/Lib/site-packages/pbr/options.py | 53 + venv/Lib/site-packages/pbr/packaging.py | 883 ++++++ venv/Lib/site-packages/pbr/pbr_json.py | 34 + venv/Lib/site-packages/pbr/sphinxext.py | 99 + venv/Lib/site-packages/pbr/testr_command.py | 167 ++ venv/Lib/site-packages/pbr/tests/__init__.py | 26 + venv/Lib/site-packages/pbr/tests/base.py | 223 ++ .../site-packages/pbr/tests/test_commands.py | 84 + venv/Lib/site-packages/pbr/tests/test_core.py | 151 + .../Lib/site-packages/pbr/tests/test_files.py | 148 + .../Lib/site-packages/pbr/tests/test_hooks.py | 75 + .../pbr/tests/test_integration.py | 269 ++ .../site-packages/pbr/tests/test_packaging.py | 1113 +++++++ .../site-packages/pbr/tests/test_pbr_json.py | 30 + .../Lib/site-packages/pbr/tests/test_setup.py | 447 +++ venv/Lib/site-packages/pbr/tests/test_util.py | 219 ++ .../site-packages/pbr/tests/test_version.py | 311 ++ venv/Lib/site-packages/pbr/tests/test_wsgi.py | 163 ++ .../pbr/tests/testpackage/CHANGES.txt | 86 + .../pbr/tests/testpackage/LICENSE.txt | 29 + .../pbr/tests/testpackage/MANIFEST.in | 2 + .../pbr/tests/testpackage/README.txt | 148 + .../pbr/tests/testpackage/data_files/a.txt | 0 .../pbr/tests/testpackage/data_files/b.txt | 0 .../pbr/tests/testpackage/data_files/c.rst | 0 .../pbr/tests/testpackage/doc/source/conf.py | 59 + .../tests/testpackage/doc/source/index.rst | 23 + .../testpackage/doc/source/installation.rst | 12 + .../tests/testpackage/doc/source/usage.rst | 7 + .../pbr/tests/testpackage/extra-file.txt | 0 .../pbr/tests/testpackage/git-extra-file.txt | 0 .../testpackage/pbr_testpackage/__init__.py | 3 + .../pbr_testpackage/_setup_hooks.py | 65 + .../tests/testpackage/pbr_testpackage/cmd.py | 26 + .../testpackage/pbr_testpackage/extra.py | 0 .../pbr_testpackage/package_data/1.txt | 0 .../pbr_testpackage/package_data/2.txt | 0 .../tests/testpackage/pbr_testpackage/wsgi.py | 40 + .../pbr/tests/testpackage/setup.cfg | 58 + .../pbr/tests/testpackage/setup.py | 21 + .../pbr/tests/testpackage/src/testext.c | 29 + .../tests/testpackage/test-requirements.txt | 2 + venv/Lib/site-packages/pbr/tests/util.py | 78 + venv/Lib/site-packages/pbr/util.py | 627 ++++ venv/Lib/site-packages/pbr/version.py | 483 +++ .../stevedore-3.2.0.dist-info/DESCRIPTION.rst | 30 + .../stevedore-3.2.0.dist-info/INSTALLER | 1 + .../stevedore-3.2.0.dist-info/METADATA | 53 + .../stevedore-3.2.0.dist-info/RECORD | 77 + .../stevedore-3.2.0.dist-info/WHEEL | 5 + .../entry_points.txt | 11 + .../stevedore-3.2.0.dist-info/metadata.json | 1 + .../stevedore-3.2.0.dist-info/pbr.json | 1 + .../stevedore-3.2.0.dist-info/top_level.txt | 1 + venv/Lib/site-packages/stevedore/__init__.py | 23 + venv/Lib/site-packages/stevedore/_cache.py | 195 ++ venv/Lib/site-packages/stevedore/dispatch.py | 229 ++ venv/Lib/site-packages/stevedore/driver.py | 148 + venv/Lib/site-packages/stevedore/enabled.py | 84 + .../stevedore/example/__init__.py | 0 .../site-packages/stevedore/example/base.py | 19 + .../stevedore/example/load_as_driver.py | 35 + .../stevedore/example/load_as_extension.py | 37 + .../site-packages/stevedore/example/setup.py | 43 + .../site-packages/stevedore/example/simple.py | 20 + .../stevedore/example2/__init__.py | 0 .../stevedore/example2/fields.py | 36 + .../site-packages/stevedore/example2/setup.py | 42 + venv/Lib/site-packages/stevedore/exception.py | 23 + venv/Lib/site-packages/stevedore/extension.py | 361 +++ venv/Lib/site-packages/stevedore/hook.py | 89 + venv/Lib/site-packages/stevedore/named.py | 159 + venv/Lib/site-packages/stevedore/sphinxext.py | 120 + .../site-packages/stevedore/tests/__init__.py | 0 .../stevedore/tests/extension_unimportable.py | 0 .../site-packages/stevedore/tests/manager.py | 67 + .../stevedore/tests/test_callback.py | 56 + .../stevedore/tests/test_dispatch.py | 103 + .../stevedore/tests/test_driver.py | 96 + .../stevedore/tests/test_enabled.py | 42 + .../stevedore/tests/test_example_fields.py | 41 + .../stevedore/tests/test_example_simple.py | 29 + .../stevedore/tests/test_extension.py | 289 ++ .../stevedore/tests/test_hook.py | 55 + .../stevedore/tests/test_named.py | 93 + .../stevedore/tests/test_sphinxext.py | 122 + .../stevedore/tests/test_test_manager.py | 217 ++ .../site-packages/stevedore/tests/utils.py | 17 + .../virtualenv-20.0.27.dist-info/INSTALLER | 1 + .../virtualenv-20.0.27.dist-info/LICENSE | 20 + .../virtualenv-20.0.27.dist-info/METADATA | 93 + .../virtualenv-20.0.27.dist-info/RECORD | 220 ++ .../virtualenv-20.0.27.dist-info/WHEEL | 6 + .../entry_points.txt | 32 + .../top_level.txt | 1 + .../virtualenv-20.0.27.dist-info/zip-safe | 1 + venv/Lib/site-packages/virtualenv/__init__.py | 9 + venv/Lib/site-packages/virtualenv/__main__.py | 78 + .../virtualenv/activation/__init__.py | 19 + .../virtualenv/activation/activator.py | 44 + .../virtualenv/activation/bash/__init__.py | 13 + .../virtualenv/activation/bash/activate.sh | 84 + .../virtualenv/activation/batch/__init__.py | 23 + .../virtualenv/activation/batch/activate.bat | 40 + .../activation/batch/deactivate.bat | 19 + .../virtualenv/activation/batch/pydoc.bat | 1 + .../virtualenv/activation/cshell/__init__.py | 14 + .../virtualenv/activation/cshell/activate.csh | 55 + .../virtualenv/activation/fish/__init__.py | 10 + .../virtualenv/activation/fish/activate.fish | 100 + .../activation/powershell/__init__.py | 10 + .../activation/powershell/activate.ps1 | 60 + .../virtualenv/activation/python/__init__.py | 35 + .../activation/python/activate_this.py | 32 + .../virtualenv/activation/via_template.py | 65 + .../virtualenv/activation/xonsh/__init__.py | 14 + .../virtualenv/activation/xonsh/activate.xsh | 46 + .../virtualenv/app_data/__init__.py | 62 + .../site-packages/virtualenv/app_data/base.py | 91 + .../site-packages/virtualenv/app_data/na.py | 67 + .../virtualenv/app_data/via_disk_folder.py | 172 ++ .../virtualenv/app_data/via_tempdir.py | 28 + .../virtualenv/config/__init__.py | 1 + .../virtualenv/config/cli/__init__.py | 1 + .../virtualenv/config/cli/parser.py | 120 + .../virtualenv/config/convert.py | 81 + .../virtualenv/config/env_var.py | 29 + .../site-packages/virtualenv/config/ini.py | 83 + .../virtualenv/create/__init__.py | 1 + .../virtualenv/create/creator.py | 224 ++ .../site-packages/virtualenv/create/debug.py | 110 + .../virtualenv/create/describe.py | 117 + .../virtualenv/create/pyenv_cfg.py | 61 + .../create/via_global_ref/__init__.py | 0 .../create/via_global_ref/_virtualenv.py | 130 + .../virtualenv/create/via_global_ref/api.py | 111 + .../create/via_global_ref/builtin/__init__.py | 0 .../via_global_ref/builtin/builtin_way.py | 17 + .../builtin/cpython/__init__.py | 1 + .../via_global_ref/builtin/cpython/common.py | 56 + .../builtin/cpython/cpython2.py | 102 + .../builtin/cpython/cpython3.py | 71 + .../via_global_ref/builtin/cpython/mac_os.py | 297 ++ .../via_global_ref/builtin/pypy/__init__.py | 0 .../via_global_ref/builtin/pypy/common.py | 52 + .../via_global_ref/builtin/pypy/pypy2.py | 121 + .../via_global_ref/builtin/pypy/pypy3.py | 63 + .../builtin/python2/__init__.py | 0 .../via_global_ref/builtin/python2/python2.py | 111 + .../via_global_ref/builtin/python2/site.py | 165 ++ .../create/via_global_ref/builtin/ref.py | 163 ++ .../builtin/via_global_self_do.py | 99 + .../virtualenv/create/via_global_ref/store.py | 26 + .../virtualenv/create/via_global_ref/venv.py | 80 + .../virtualenv/discovery/__init__.py | 1 + .../virtualenv/discovery/builtin.py | 155 + .../virtualenv/discovery/cached_py_info.py | 145 + .../virtualenv/discovery/discover.py | 46 + .../virtualenv/discovery/py_info.py | 489 ++++ .../virtualenv/discovery/py_spec.py | 122 + .../virtualenv/discovery/windows/__init__.py | 28 + .../virtualenv/discovery/windows/pep514.py | 161 + venv/Lib/site-packages/virtualenv/info.py | 65 + venv/Lib/site-packages/virtualenv/report.py | 57 + .../site-packages/virtualenv/run/__init__.py | 134 + .../virtualenv/run/plugin/__init__.py | 0 .../virtualenv/run/plugin/activators.py | 53 + .../virtualenv/run/plugin/base.py | 58 + .../virtualenv/run/plugin/creators.py | 77 + .../virtualenv/run/plugin/discovery.py | 31 + .../virtualenv/run/plugin/seeders.py | 31 + .../site-packages/virtualenv/run/session.py | 90 + .../site-packages/virtualenv/seed/__init__.py | 1 + .../virtualenv/seed/embed/__init__.py | 0 .../virtualenv/seed/embed/base_embed.py | 117 + .../virtualenv/seed/embed/pip_invoke.py | 56 + .../seed/embed/via_app_data/__init__.py | 0 .../via_app_data/pip_install/__init__.py | 0 .../embed/via_app_data/pip_install/base.py | 158 + .../embed/via_app_data/pip_install/copy.py | 35 + .../embed/via_app_data/pip_install/symlink.py | 61 + .../seed/embed/via_app_data/via_app_data.py | 142 + .../site-packages/virtualenv/seed/seeder.py | 39 + .../virtualenv/seed/wheels/__init__.py | 11 + .../virtualenv/seed/wheels/acquire.py | 122 + .../virtualenv/seed/wheels/bundle.py | 51 + .../virtualenv/seed/wheels/embed/__init__.py | 62 + .../embed/pip-19.1.1-py2.py3-none-any.whl | Bin 0 -> 1360957 bytes .../embed/pip-20.1.1-py2.py3-none-any.whl | Bin 0 -> 1490666 bytes .../setuptools-43.0.0-py2.py3-none-any.whl | Bin 0 -> 583228 bytes .../setuptools-44.1.1-py2.py3-none-any.whl | Bin 0 -> 583493 bytes .../embed/setuptools-49.2.0-py3-none-any.whl | Bin 0 -> 789833 bytes .../embed/wheel-0.33.6-py2.py3-none-any.whl | Bin 0 -> 21556 bytes .../embed/wheel-0.34.2-py2.py3-none-any.whl | Bin 0 -> 26502 bytes .../virtualenv/seed/wheels/periodic_update.py | 364 +++ .../virtualenv/seed/wheels/util.py | 116 + .../site-packages/virtualenv/util/__init__.py | 11 + .../site-packages/virtualenv/util/error.py | 13 + .../Lib/site-packages/virtualenv/util/lock.py | 120 + .../virtualenv/util/path/__init__.py | 16 + .../virtualenv/util/path/_pathlib/__init__.py | 45 + .../util/path/_pathlib/via_os_path.py | 145 + .../virtualenv/util/path/_permission.py | 32 + .../virtualenv/util/path/_sync.py | 96 + venv/Lib/site-packages/virtualenv/util/six.py | 50 + .../virtualenv/util/subprocess/__init__.py | 36 + .../util/subprocess/_win_subprocess.py | 171 ++ .../site-packages/virtualenv/util/zipapp.py | 33 + venv/Lib/site-packages/virtualenv/version.py | 3 + .../INSTALLER | 1 + .../virtualenv_clone-0.5.4.dist-info/LICENSE | 20 + .../virtualenv_clone-0.5.4.dist-info/METADATA | 61 + .../virtualenv_clone-0.5.4.dist-info/RECORD | 10 + .../virtualenv_clone-0.5.4.dist-info/WHEEL | 6 + .../entry_points.txt | 3 + .../top_level.txt | 1 + .../virtualenvwrapper-4.8.4-py3.6-nspkg.pth | 1 + .../virtualenvwrapper-4.8.4.dist-info/AUTHORS | 87 + .../INSTALLER | 1 + .../virtualenvwrapper-4.8.4.dist-info/LICENSE | 17 + .../METADATA | 148 + .../virtualenvwrapper-4.8.4.dist-info/RECORD | 20 + .../virtualenvwrapper-4.8.4.dist-info/WHEEL | 6 + .../entry_points.txt | 47 + .../namespace_packages.txt | 1 + .../pbr.json | 1 + .../top_level.txt | 1 + .../zip-safe | 1 + .../virtualenvwrapper/hook_loader.py | 223 ++ .../virtualenvwrapper/project.py | 61 + .../virtualenvwrapper/user_scripts.py | 340 +++ .../zipp-3.1.0.dist-info/INSTALLER | 1 + .../zipp-3.1.0.dist-info/LICENSE | 19 + .../zipp-3.1.0.dist-info/METADATA | 52 + .../site-packages/zipp-3.1.0.dist-info/RECORD | 8 + .../site-packages/zipp-3.1.0.dist-info/WHEEL | 5 + .../zipp-3.1.0.dist-info/top_level.txt | 1 + venv/Lib/site-packages/zipp.py | 285 ++ venv/Scripts/pbr.exe | Bin 0 -> 106363 bytes venv/Scripts/virtualenv-clone.exe | Bin 0 -> 106366 bytes venv/Scripts/virtualenv.exe | Bin 0 -> 106390 bytes venv/Scripts/virtualenvwrapper.sh | 1358 +++++++++ venv/Scripts/virtualenvwrapper_lazy.sh | 62 + 370 files changed, 42341 insertions(+) create mode 100644 venv/Lib/site-packages/appdirs-1.4.4.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/appdirs-1.4.4.dist-info/LICENSE.txt create mode 100644 venv/Lib/site-packages/appdirs-1.4.4.dist-info/METADATA create mode 100644 venv/Lib/site-packages/appdirs-1.4.4.dist-info/RECORD create mode 100644 venv/Lib/site-packages/appdirs-1.4.4.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/appdirs-1.4.4.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/appdirs.py create mode 100644 venv/Lib/site-packages/clonevirtualenv.py create mode 100644 venv/Lib/site-packages/distlib-0.3.1.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/distlib-0.3.1.dist-info/METADATA create mode 100644 venv/Lib/site-packages/distlib-0.3.1.dist-info/RECORD create mode 100644 venv/Lib/site-packages/distlib-0.3.1.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/distlib/__init__.py create mode 100644 venv/Lib/site-packages/distlib/_backport/__init__.py create mode 100644 venv/Lib/site-packages/distlib/_backport/misc.py create mode 100644 venv/Lib/site-packages/distlib/_backport/shutil.py create mode 100644 venv/Lib/site-packages/distlib/_backport/sysconfig.cfg create mode 100644 venv/Lib/site-packages/distlib/_backport/sysconfig.py create mode 100644 venv/Lib/site-packages/distlib/_backport/tarfile.py create mode 100644 venv/Lib/site-packages/distlib/compat.py create mode 100644 venv/Lib/site-packages/distlib/database.py create mode 100644 venv/Lib/site-packages/distlib/index.py create mode 100644 venv/Lib/site-packages/distlib/locators.py create mode 100644 venv/Lib/site-packages/distlib/manifest.py create mode 100644 venv/Lib/site-packages/distlib/markers.py create mode 100644 venv/Lib/site-packages/distlib/metadata.py create mode 100644 venv/Lib/site-packages/distlib/resources.py create mode 100644 venv/Lib/site-packages/distlib/scripts.py create mode 100644 venv/Lib/site-packages/distlib/t32.exe create mode 100644 venv/Lib/site-packages/distlib/t64.exe create mode 100644 venv/Lib/site-packages/distlib/util.py create mode 100644 venv/Lib/site-packages/distlib/version.py create mode 100644 venv/Lib/site-packages/distlib/w32.exe create mode 100644 venv/Lib/site-packages/distlib/w64.exe create mode 100644 venv/Lib/site-packages/distlib/wheel.py create mode 100644 venv/Lib/site-packages/filelock-3.0.12.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/filelock-3.0.12.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/filelock-3.0.12.dist-info/METADATA create mode 100644 venv/Lib/site-packages/filelock-3.0.12.dist-info/RECORD create mode 100644 venv/Lib/site-packages/filelock-3.0.12.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/filelock-3.0.12.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/filelock.py create mode 100644 venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/METADATA create mode 100644 venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/RECORD create mode 100644 venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/importlib_metadata/__init__.py create mode 100644 venv/Lib/site-packages/importlib_metadata/_compat.py create mode 100644 venv/Lib/site-packages/importlib_metadata/docs/__init__.py create mode 100644 venv/Lib/site-packages/importlib_metadata/docs/changelog.rst create mode 100644 venv/Lib/site-packages/importlib_metadata/docs/conf.py create mode 100644 venv/Lib/site-packages/importlib_metadata/docs/index.rst create mode 100644 venv/Lib/site-packages/importlib_metadata/docs/using.rst create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/__init__.py create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/data/__init__.py create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/data/example-21.12-py3-none-any.whl create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/data/example-21.12-py3.6.egg create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/fixtures.py create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/test_api.py create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/test_integration.py create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/test_main.py create mode 100644 venv/Lib/site-packages/importlib_metadata/tests/test_zip.py create mode 100644 venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/METADATA create mode 100644 venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/RECORD create mode 100644 venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/importlib_resources/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/_common.py create mode 100644 venv/Lib/site-packages/importlib_resources/_compat.py create mode 100644 venv/Lib/site-packages/importlib_resources/_py2.py create mode 100644 venv/Lib/site-packages/importlib_resources/_py3.py create mode 100644 venv/Lib/site-packages/importlib_resources/abc.py create mode 100644 venv/Lib/site-packages/importlib_resources/py.typed create mode 100644 venv/Lib/site-packages/importlib_resources/readers.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data01/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data01/binary.file create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data01/subdirectory/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data01/subdirectory/binary.file create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data01/utf-16.file create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data01/utf-8.file create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data02/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data02/one/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data02/one/resource1.txt create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data02/two/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data02/two/resource2.txt create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data03/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data03/namespace/portion1/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data03/namespace/portion2/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/data03/namespace/resource1.txt create mode 100644 venv/Lib/site-packages/importlib_resources/tests/test_files.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/test_open.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/test_path.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/test_read.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/test_resource.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/util.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/zipdata01/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/zipdata01/ziptestdata.zip create mode 100644 venv/Lib/site-packages/importlib_resources/tests/zipdata02/__init__.py create mode 100644 venv/Lib/site-packages/importlib_resources/tests/zipdata02/ziptestdata.zip create mode 100644 venv/Lib/site-packages/importlib_resources/trees.py create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/AUTHORS create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/METADATA create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/RECORD create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/entry_points.txt create mode 100644 venv/Lib/site-packages/pbr-5.4.5.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/pbr/__init__.py create mode 100644 venv/Lib/site-packages/pbr/builddoc.py create mode 100644 venv/Lib/site-packages/pbr/cmd/__init__.py create mode 100644 venv/Lib/site-packages/pbr/cmd/main.py create mode 100644 venv/Lib/site-packages/pbr/core.py create mode 100644 venv/Lib/site-packages/pbr/extra_files.py create mode 100644 venv/Lib/site-packages/pbr/find_package.py create mode 100644 venv/Lib/site-packages/pbr/git.py create mode 100644 venv/Lib/site-packages/pbr/hooks/__init__.py create mode 100644 venv/Lib/site-packages/pbr/hooks/backwards.py create mode 100644 venv/Lib/site-packages/pbr/hooks/base.py create mode 100644 venv/Lib/site-packages/pbr/hooks/commands.py create mode 100644 venv/Lib/site-packages/pbr/hooks/files.py create mode 100644 venv/Lib/site-packages/pbr/hooks/metadata.py create mode 100644 venv/Lib/site-packages/pbr/options.py create mode 100644 venv/Lib/site-packages/pbr/packaging.py create mode 100644 venv/Lib/site-packages/pbr/pbr_json.py create mode 100644 venv/Lib/site-packages/pbr/sphinxext.py create mode 100644 venv/Lib/site-packages/pbr/testr_command.py create mode 100644 venv/Lib/site-packages/pbr/tests/__init__.py create mode 100644 venv/Lib/site-packages/pbr/tests/base.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_commands.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_core.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_files.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_hooks.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_integration.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_packaging.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_pbr_json.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_setup.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_util.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_version.py create mode 100644 venv/Lib/site-packages/pbr/tests/test_wsgi.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/CHANGES.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/LICENSE.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/MANIFEST.in create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/README.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/data_files/a.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/data_files/b.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/data_files/c.rst create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/doc/source/conf.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/doc/source/index.rst create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/doc/source/installation.rst create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/doc/source/usage.rst create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/extra-file.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/git-extra-file.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/__init__.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/_setup_hooks.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/cmd.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/extra.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/package_data/1.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/package_data/2.txt create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/wsgi.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/setup.cfg create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/setup.py create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/src/testext.c create mode 100644 venv/Lib/site-packages/pbr/tests/testpackage/test-requirements.txt create mode 100644 venv/Lib/site-packages/pbr/tests/util.py create mode 100644 venv/Lib/site-packages/pbr/util.py create mode 100644 venv/Lib/site-packages/pbr/version.py create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/DESCRIPTION.rst create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/METADATA create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/RECORD create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/entry_points.txt create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/metadata.json create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/pbr.json create mode 100644 venv/Lib/site-packages/stevedore-3.2.0.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/stevedore/__init__.py create mode 100644 venv/Lib/site-packages/stevedore/_cache.py create mode 100644 venv/Lib/site-packages/stevedore/dispatch.py create mode 100644 venv/Lib/site-packages/stevedore/driver.py create mode 100644 venv/Lib/site-packages/stevedore/enabled.py create mode 100644 venv/Lib/site-packages/stevedore/example/__init__.py create mode 100644 venv/Lib/site-packages/stevedore/example/base.py create mode 100644 venv/Lib/site-packages/stevedore/example/load_as_driver.py create mode 100644 venv/Lib/site-packages/stevedore/example/load_as_extension.py create mode 100644 venv/Lib/site-packages/stevedore/example/setup.py create mode 100644 venv/Lib/site-packages/stevedore/example/simple.py create mode 100644 venv/Lib/site-packages/stevedore/example2/__init__.py create mode 100644 venv/Lib/site-packages/stevedore/example2/fields.py create mode 100644 venv/Lib/site-packages/stevedore/example2/setup.py create mode 100644 venv/Lib/site-packages/stevedore/exception.py create mode 100644 venv/Lib/site-packages/stevedore/extension.py create mode 100644 venv/Lib/site-packages/stevedore/hook.py create mode 100644 venv/Lib/site-packages/stevedore/named.py create mode 100644 venv/Lib/site-packages/stevedore/sphinxext.py create mode 100644 venv/Lib/site-packages/stevedore/tests/__init__.py create mode 100644 venv/Lib/site-packages/stevedore/tests/extension_unimportable.py create mode 100644 venv/Lib/site-packages/stevedore/tests/manager.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_callback.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_dispatch.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_driver.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_enabled.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_example_fields.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_example_simple.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_extension.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_hook.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_named.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_sphinxext.py create mode 100644 venv/Lib/site-packages/stevedore/tests/test_test_manager.py create mode 100644 venv/Lib/site-packages/stevedore/tests/utils.py create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/METADATA create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/RECORD create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/entry_points.txt create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/virtualenv-20.0.27.dist-info/zip-safe create mode 100644 venv/Lib/site-packages/virtualenv/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/__main__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/activator.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/bash/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/bash/activate.sh create mode 100644 venv/Lib/site-packages/virtualenv/activation/batch/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/batch/activate.bat create mode 100644 venv/Lib/site-packages/virtualenv/activation/batch/deactivate.bat create mode 100644 venv/Lib/site-packages/virtualenv/activation/batch/pydoc.bat create mode 100644 venv/Lib/site-packages/virtualenv/activation/cshell/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/cshell/activate.csh create mode 100644 venv/Lib/site-packages/virtualenv/activation/fish/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/fish/activate.fish create mode 100644 venv/Lib/site-packages/virtualenv/activation/powershell/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/powershell/activate.ps1 create mode 100644 venv/Lib/site-packages/virtualenv/activation/python/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/python/activate_this.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/via_template.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/xonsh/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/activation/xonsh/activate.xsh create mode 100644 venv/Lib/site-packages/virtualenv/app_data/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/app_data/base.py create mode 100644 venv/Lib/site-packages/virtualenv/app_data/na.py create mode 100644 venv/Lib/site-packages/virtualenv/app_data/via_disk_folder.py create mode 100644 venv/Lib/site-packages/virtualenv/app_data/via_tempdir.py create mode 100644 venv/Lib/site-packages/virtualenv/config/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/config/cli/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/config/cli/parser.py create mode 100644 venv/Lib/site-packages/virtualenv/config/convert.py create mode 100644 venv/Lib/site-packages/virtualenv/config/env_var.py create mode 100644 venv/Lib/site-packages/virtualenv/config/ini.py create mode 100644 venv/Lib/site-packages/virtualenv/create/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/create/creator.py create mode 100644 venv/Lib/site-packages/virtualenv/create/debug.py create mode 100644 venv/Lib/site-packages/virtualenv/create/describe.py create mode 100644 venv/Lib/site-packages/virtualenv/create/pyenv_cfg.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/_virtualenv.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/api.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/builtin_way.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/common.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/cpython2.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/cpython3.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/mac_os.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/common.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy2.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy3.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/site.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/ref.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/store.py create mode 100644 venv/Lib/site-packages/virtualenv/create/via_global_ref/venv.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/builtin.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/cached_py_info.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/discover.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/py_info.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/py_spec.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/windows/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/discovery/windows/pep514.py create mode 100644 venv/Lib/site-packages/virtualenv/info.py create mode 100644 venv/Lib/site-packages/virtualenv/report.py create mode 100644 venv/Lib/site-packages/virtualenv/run/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/run/plugin/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/run/plugin/activators.py create mode 100644 venv/Lib/site-packages/virtualenv/run/plugin/base.py create mode 100644 venv/Lib/site-packages/virtualenv/run/plugin/creators.py create mode 100644 venv/Lib/site-packages/virtualenv/run/plugin/discovery.py create mode 100644 venv/Lib/site-packages/virtualenv/run/plugin/seeders.py create mode 100644 venv/Lib/site-packages/virtualenv/run/session.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/base_embed.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/pip_invoke.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/base.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/copy.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/symlink.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/via_app_data.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/seeder.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/acquire.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/bundle.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/pip-19.1.1-py2.py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/pip-20.1.1-py2.py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/setuptools-43.0.0-py2.py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/setuptools-44.1.1-py2.py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/setuptools-49.2.0-py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/wheel-0.33.6-py2.py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/embed/wheel-0.34.2-py2.py3-none-any.whl create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/periodic_update.py create mode 100644 venv/Lib/site-packages/virtualenv/seed/wheels/util.py create mode 100644 venv/Lib/site-packages/virtualenv/util/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/util/error.py create mode 100644 venv/Lib/site-packages/virtualenv/util/lock.py create mode 100644 venv/Lib/site-packages/virtualenv/util/path/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/util/path/_pathlib/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/util/path/_pathlib/via_os_path.py create mode 100644 venv/Lib/site-packages/virtualenv/util/path/_permission.py create mode 100644 venv/Lib/site-packages/virtualenv/util/path/_sync.py create mode 100644 venv/Lib/site-packages/virtualenv/util/six.py create mode 100644 venv/Lib/site-packages/virtualenv/util/subprocess/__init__.py create mode 100644 venv/Lib/site-packages/virtualenv/util/subprocess/_win_subprocess.py create mode 100644 venv/Lib/site-packages/virtualenv/util/zipapp.py create mode 100644 venv/Lib/site-packages/virtualenv/version.py create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/METADATA create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/RECORD create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/entry_points.txt create mode 100644 venv/Lib/site-packages/virtualenv_clone-0.5.4.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4-py3.6-nspkg.pth create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/AUTHORS create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/METADATA create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/RECORD create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/entry_points.txt create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/namespace_packages.txt create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/pbr.json create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/virtualenvwrapper-4.8.4.dist-info/zip-safe create mode 100644 venv/Lib/site-packages/virtualenvwrapper/hook_loader.py create mode 100644 venv/Lib/site-packages/virtualenvwrapper/project.py create mode 100644 venv/Lib/site-packages/virtualenvwrapper/user_scripts.py create mode 100644 venv/Lib/site-packages/zipp-3.1.0.dist-info/INSTALLER create mode 100644 venv/Lib/site-packages/zipp-3.1.0.dist-info/LICENSE create mode 100644 venv/Lib/site-packages/zipp-3.1.0.dist-info/METADATA create mode 100644 venv/Lib/site-packages/zipp-3.1.0.dist-info/RECORD create mode 100644 venv/Lib/site-packages/zipp-3.1.0.dist-info/WHEEL create mode 100644 venv/Lib/site-packages/zipp-3.1.0.dist-info/top_level.txt create mode 100644 venv/Lib/site-packages/zipp.py create mode 100644 venv/Scripts/pbr.exe create mode 100644 venv/Scripts/virtualenv-clone.exe create mode 100644 venv/Scripts/virtualenv.exe create mode 100644 venv/Scripts/virtualenvwrapper.sh create mode 100644 venv/Scripts/virtualenvwrapper_lazy.sh diff --git a/venv/Lib/site-packages/appdirs-1.4.4.dist-info/INSTALLER b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/appdirs-1.4.4.dist-info/LICENSE.txt b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/LICENSE.txt new file mode 100644 index 00000000..107c6140 --- /dev/null +++ b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/LICENSE.txt @@ -0,0 +1,23 @@ +# This is the MIT license + +Copyright (c) 2010 ActiveState Software Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/venv/Lib/site-packages/appdirs-1.4.4.dist-info/METADATA b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/METADATA new file mode 100644 index 00000000..f9507310 --- /dev/null +++ b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/METADATA @@ -0,0 +1,264 @@ +Metadata-Version: 2.1 +Name: appdirs +Version: 1.4.4 +Summary: A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". +Home-page: http://github.com/ActiveState/appdirs +Author: Trent Mick +Author-email: trentm@gmail.com +Maintainer: Jeff Rouse +Maintainer-email: jr@its.to +License: MIT +Keywords: application directory log cache user +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Libraries :: Python Modules + + +.. image:: https://secure.travis-ci.org/ActiveState/appdirs.png + :target: http://travis-ci.org/ActiveState/appdirs + +the problem +=========== + +What directory should your app use for storing user data? If running on Mac OS X, you +should use:: + + ~/Library/Application Support/ + +If on Windows (at least English Win XP) that should be:: + + C:\Documents and Settings\\Application Data\Local Settings\\ + +or possibly:: + + C:\Documents and Settings\\Application Data\\ + +for `roaming profiles `_ but that is another story. + +On Linux (and other Unices) the dir, according to the `XDG +spec `_, is:: + + ~/.local/share/ + + +``appdirs`` to the rescue +========================= + +This kind of thing is what the ``appdirs`` module is for. ``appdirs`` will +help you choose an appropriate: + +- user data dir (``user_data_dir``) +- user config dir (``user_config_dir``) +- user cache dir (``user_cache_dir``) +- site data dir (``site_data_dir``) +- site config dir (``site_config_dir``) +- user log dir (``user_log_dir``) + +and also: + +- is a single module so other Python packages can include their own private copy +- is slightly opinionated on the directory names used. Look for "OPINION" in + documentation and code for when an opinion is being applied. + + +some example output +=================== + +On Mac OS X:: + + >>> from appdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + '/Users/trentm/Library/Application Support/SuperApp' + >>> site_data_dir(appname, appauthor) + '/Library/Application Support/SuperApp' + >>> user_cache_dir(appname, appauthor) + '/Users/trentm/Library/Caches/SuperApp' + >>> user_log_dir(appname, appauthor) + '/Users/trentm/Library/Logs/SuperApp' + +On Windows 7:: + + >>> from appdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' + >>> user_data_dir(appname, appauthor, roaming=True) + 'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp' + >>> user_cache_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache' + >>> user_log_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs' + +On Linux:: + + >>> from appdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + '/home/trentm/.local/share/SuperApp + >>> site_data_dir(appname, appauthor) + '/usr/local/share/SuperApp' + >>> site_data_dir(appname, appauthor, multipath=True) + '/usr/local/share/SuperApp:/usr/share/SuperApp' + >>> user_cache_dir(appname, appauthor) + '/home/trentm/.cache/SuperApp' + >>> user_log_dir(appname, appauthor) + '/home/trentm/.cache/SuperApp/log' + >>> user_config_dir(appname) + '/home/trentm/.config/SuperApp' + >>> site_config_dir(appname) + '/etc/xdg/SuperApp' + >>> os.environ['XDG_CONFIG_DIRS'] = '/etc:/usr/local/etc' + >>> site_config_dir(appname, multipath=True) + '/etc/SuperApp:/usr/local/etc/SuperApp' + + +``AppDirs`` for convenience +=========================== + +:: + + >>> from appdirs import AppDirs + >>> dirs = AppDirs("SuperApp", "Acme") + >>> dirs.user_data_dir + '/Users/trentm/Library/Application Support/SuperApp' + >>> dirs.site_data_dir + '/Library/Application Support/SuperApp' + >>> dirs.user_cache_dir + '/Users/trentm/Library/Caches/SuperApp' + >>> dirs.user_log_dir + '/Users/trentm/Library/Logs/SuperApp' + + + +Per-version isolation +===================== + +If you have multiple versions of your app in use that you want to be +able to run side-by-side, then you may want version-isolation for these +dirs:: + + >>> from appdirs import AppDirs + >>> dirs = AppDirs("SuperApp", "Acme", version="1.0") + >>> dirs.user_data_dir + '/Users/trentm/Library/Application Support/SuperApp/1.0' + >>> dirs.site_data_dir + '/Library/Application Support/SuperApp/1.0' + >>> dirs.user_cache_dir + '/Users/trentm/Library/Caches/SuperApp/1.0' + >>> dirs.user_log_dir + '/Users/trentm/Library/Logs/SuperApp/1.0' + + + +appdirs Changelog +================= + +appdirs 1.4.4 +------------- +- [PR #92] Don't import appdirs from setup.py + +Project officially classified as Stable which is important +for inclusion in other distros such as ActivePython. + +First of several incremental releases to catch up on maintenance. + +appdirs 1.4.3 +------------- +- [PR #76] Python 3.6 invalid escape sequence deprecation fixes +- Fix for Python 3.6 support + +appdirs 1.4.2 +------------- +- [PR #84] Allow installing without setuptools +- [PR #86] Fix string delimiters in setup.py description +- Add Python 3.6 support + +appdirs 1.4.1 +------------- +- [issue #38] Fix _winreg import on Windows Py3 +- [issue #55] Make appname optional + +appdirs 1.4.0 +------------- +- [PR #42] AppAuthor is now optional on Windows +- [issue 41] Support Jython on Windows, Mac, and Unix-like platforms. Windows + support requires `JNA `_. +- [PR #44] Fix incorrect behaviour of the site_config_dir method + +appdirs 1.3.0 +------------- +- [Unix, issue 16] Conform to XDG standard, instead of breaking it for + everybody +- [Unix] Removes gratuitous case mangling of the case, since \*nix-es are + usually case sensitive, so mangling is not wise +- [Unix] Fixes the utterly wrong behaviour in ``site_data_dir``, return result + based on XDG_DATA_DIRS and make room for respecting the standard which + specifies XDG_DATA_DIRS is a multiple-value variable +- [Issue 6] Add ``*_config_dir`` which are distinct on nix-es, according to + XDG specs; on Windows and Mac return the corresponding ``*_data_dir`` + +appdirs 1.2.0 +------------- + +- [Unix] Put ``user_log_dir`` under the *cache* dir on Unix. Seems to be more + typical. +- [issue 9] Make ``unicode`` work on py3k. + +appdirs 1.1.0 +------------- + +- [issue 4] Add ``AppDirs.user_log_dir``. +- [Unix, issue 2, issue 7] appdirs now conforms to `XDG base directory spec + `_. +- [Mac, issue 5] Fix ``site_data_dir()`` on Mac. +- [Mac] Drop use of 'Carbon' module in favour of hardcoded paths; supports + Python3 now. +- [Windows] Append "Cache" to ``user_cache_dir`` on Windows by default. Use + ``opinion=False`` option to disable this. +- Add ``appdirs.AppDirs`` convenience class. Usage: + + >>> dirs = AppDirs("SuperApp", "Acme", version="1.0") + >>> dirs.user_data_dir + '/Users/trentm/Library/Application Support/SuperApp/1.0' + +- [Windows] Cherry-pick Komodo's change to downgrade paths to the Windows short + paths if there are high bit chars. +- [Linux] Change default ``user_cache_dir()`` on Linux to be singular, e.g. + "~/.superapp/cache". +- [Windows] Add ``roaming`` option to ``user_data_dir()`` (for use on Windows only) + and change the default ``user_data_dir`` behaviour to use a *non*-roaming + profile dir (``CSIDL_LOCAL_APPDATA`` instead of ``CSIDL_APPDATA``). Why? Because + a large roaming profile can cause login speed issues. The "only syncs on + logout" behaviour can cause surprises in appdata info. + + +appdirs 1.0.1 (never released) +------------------------------ + +Started this changelog 27 July 2010. Before that this module originated in the +`Komodo `_ product as ``applib.py`` and then +as `applib/location.py +`_ (used by +`PyPM `_ in `ActivePython +`_). This is basically a fork of +applib.py 1.0.1 and applib/location.py 1.0.1. + + + diff --git a/venv/Lib/site-packages/appdirs-1.4.4.dist-info/RECORD b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/RECORD new file mode 100644 index 00000000..5f3c584d --- /dev/null +++ b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/RECORD @@ -0,0 +1,8 @@ +__pycache__/appdirs.cpython-36.pyc,, +appdirs-1.4.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +appdirs-1.4.4.dist-info/LICENSE.txt,sha256=Nt200KdFqTqyAyA9cZCBSxuJcn0lTK_0jHp6-71HAAs,1097 +appdirs-1.4.4.dist-info/METADATA,sha256=k5TVfXMNKGHTfp2wm6EJKTuGwGNuoQR5TqQgH8iwG8M,8981 +appdirs-1.4.4.dist-info/RECORD,, +appdirs-1.4.4.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +appdirs-1.4.4.dist-info/top_level.txt,sha256=nKncE8CUqZERJ6VuQWL4_bkunSPDNfn7KZqb4Tr5YEM,8 +appdirs.py,sha256=g99s2sXhnvTEm79oj4bWI0Toapc-_SmKKNXvOXHkVic,24720 diff --git a/venv/Lib/site-packages/appdirs-1.4.4.dist-info/WHEEL b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/WHEEL new file mode 100644 index 00000000..ef99c6cf --- /dev/null +++ b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/appdirs-1.4.4.dist-info/top_level.txt b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/top_level.txt new file mode 100644 index 00000000..d64bc321 --- /dev/null +++ b/venv/Lib/site-packages/appdirs-1.4.4.dist-info/top_level.txt @@ -0,0 +1 @@ +appdirs diff --git a/venv/Lib/site-packages/appdirs.py b/venv/Lib/site-packages/appdirs.py new file mode 100644 index 00000000..2acd1deb --- /dev/null +++ b/venv/Lib/site-packages/appdirs.py @@ -0,0 +1,608 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (c) 2005-2010 ActiveState Software Inc. +# Copyright (c) 2013 Eddy Petrișor + +"""Utilities for determining application-specific dirs. + +See for details and usage. +""" +# Dev Notes: +# - MSDN on where to store app data files: +# http://support.microsoft.com/default.aspx?scid=kb;en-us;310294#XSLTH3194121123120121120120 +# - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html +# - XDG spec for Un*x: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html + +__version__ = "1.4.4" +__version_info__ = tuple(int(segment) for segment in __version__.split(".")) + + +import sys +import os + +PY3 = sys.version_info[0] == 3 + +if PY3: + unicode = str + +if sys.platform.startswith('java'): + import platform + os_name = platform.java_ver()[3][0] + if os_name.startswith('Windows'): # "Windows XP", "Windows 7", etc. + system = 'win32' + elif os_name.startswith('Mac'): # "Mac OS X", etc. + system = 'darwin' + else: # "Linux", "SunOS", "FreeBSD", etc. + # Setting this to "linux2" is not ideal, but only Windows or Mac + # are actually checked for and the rest of the module expects + # *sys.platform* style strings. + system = 'linux2' +else: + system = sys.platform + + + +def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): + r"""Return full path to the user-specific data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + + for a discussion of issues. + + Typical user data directories are: + Mac OS X: ~/Library/Application Support/ + Unix: ~/.local/share/ # or in $XDG_DATA_HOME, if defined + Win XP (not roaming): C:\Documents and Settings\\Application Data\\ + Win XP (roaming): C:\Documents and Settings\\Local Settings\Application Data\\ + Win 7 (not roaming): C:\Users\\AppData\Local\\ + Win 7 (roaming): C:\Users\\AppData\Roaming\\ + + For Unix, we follow the XDG spec and support $XDG_DATA_HOME. + That means, by default "~/.local/share/". + """ + if system == "win32": + if appauthor is None: + appauthor = appname + const = roaming and "CSIDL_APPDATA" or "CSIDL_LOCAL_APPDATA" + path = os.path.normpath(_get_win_folder(const)) + if appname: + if appauthor is not False: + path = os.path.join(path, appauthor, appname) + else: + path = os.path.join(path, appname) + elif system == 'darwin': + path = os.path.expanduser('~/Library/Application Support/') + if appname: + path = os.path.join(path, appname) + else: + path = os.getenv('XDG_DATA_HOME', os.path.expanduser("~/.local/share")) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): + r"""Return full path to the user-shared data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "multipath" is an optional parameter only applicable to *nix + which indicates that the entire list of data dirs should be + returned. By default, the first item from XDG_DATA_DIRS is + returned, or '/usr/local/share/', + if XDG_DATA_DIRS is not set + + Typical site data directories are: + Mac OS X: /Library/Application Support/ + Unix: /usr/local/share/ or /usr/share/ + Win XP: C:\Documents and Settings\All Users\Application Data\\ + Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) + Win 7: C:\ProgramData\\ # Hidden, but writeable on Win 7. + + For Unix, this is using the $XDG_DATA_DIRS[0] default. + + WARNING: Do not use this on Windows. See the Vista-Fail note above for why. + """ + if system == "win32": + if appauthor is None: + appauthor = appname + path = os.path.normpath(_get_win_folder("CSIDL_COMMON_APPDATA")) + if appname: + if appauthor is not False: + path = os.path.join(path, appauthor, appname) + else: + path = os.path.join(path, appname) + elif system == 'darwin': + path = os.path.expanduser('/Library/Application Support') + if appname: + path = os.path.join(path, appname) + else: + # XDG default for $XDG_DATA_DIRS + # only first, if multipath is False + path = os.getenv('XDG_DATA_DIRS', + os.pathsep.join(['/usr/local/share', '/usr/share'])) + pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] + if appname: + if version: + appname = os.path.join(appname, version) + pathlist = [os.sep.join([x, appname]) for x in pathlist] + + if multipath: + path = os.pathsep.join(pathlist) + else: + path = pathlist[0] + return path + + if appname and version: + path = os.path.join(path, version) + return path + + +def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): + r"""Return full path to the user-specific config dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + + for a discussion of issues. + + Typical user config directories are: + Mac OS X: same as user_data_dir + Unix: ~/.config/ # or in $XDG_CONFIG_HOME, if defined + Win *: same as user_data_dir + + For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. + That means, by default "~/.config/". + """ + if system in ["win32", "darwin"]: + path = user_data_dir(appname, appauthor, None, roaming) + else: + path = os.getenv('XDG_CONFIG_HOME', os.path.expanduser("~/.config")) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def site_config_dir(appname=None, appauthor=None, version=None, multipath=False): + r"""Return full path to the user-shared data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "multipath" is an optional parameter only applicable to *nix + which indicates that the entire list of config dirs should be + returned. By default, the first item from XDG_CONFIG_DIRS is + returned, or '/etc/xdg/', if XDG_CONFIG_DIRS is not set + + Typical site config directories are: + Mac OS X: same as site_data_dir + Unix: /etc/xdg/ or $XDG_CONFIG_DIRS[i]/ for each value in + $XDG_CONFIG_DIRS + Win *: same as site_data_dir + Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) + + For Unix, this is using the $XDG_CONFIG_DIRS[0] default, if multipath=False + + WARNING: Do not use this on Windows. See the Vista-Fail note above for why. + """ + if system in ["win32", "darwin"]: + path = site_data_dir(appname, appauthor) + if appname and version: + path = os.path.join(path, version) + else: + # XDG default for $XDG_CONFIG_DIRS + # only first, if multipath is False + path = os.getenv('XDG_CONFIG_DIRS', '/etc/xdg') + pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] + if appname: + if version: + appname = os.path.join(appname, version) + pathlist = [os.sep.join([x, appname]) for x in pathlist] + + if multipath: + path = os.pathsep.join(pathlist) + else: + path = pathlist[0] + return path + + +def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True): + r"""Return full path to the user-specific cache dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "opinion" (boolean) can be False to disable the appending of + "Cache" to the base app data dir for Windows. See + discussion below. + + Typical user cache directories are: + Mac OS X: ~/Library/Caches/ + Unix: ~/.cache/ (XDG default) + Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Cache + Vista: C:\Users\\AppData\Local\\\Cache + + On Windows the only suggestion in the MSDN docs is that local settings go in + the `CSIDL_LOCAL_APPDATA` directory. This is identical to the non-roaming + app data dir (the default returned by `user_data_dir` above). Apps typically + put cache data somewhere *under* the given dir here. Some examples: + ...\Mozilla\Firefox\Profiles\\Cache + ...\Acme\SuperApp\Cache\1.0 + OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. + This can be disabled with the `opinion=False` option. + """ + if system == "win32": + if appauthor is None: + appauthor = appname + path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA")) + if appname: + if appauthor is not False: + path = os.path.join(path, appauthor, appname) + else: + path = os.path.join(path, appname) + if opinion: + path = os.path.join(path, "Cache") + elif system == 'darwin': + path = os.path.expanduser('~/Library/Caches') + if appname: + path = os.path.join(path, appname) + else: + path = os.getenv('XDG_CACHE_HOME', os.path.expanduser('~/.cache')) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def user_state_dir(appname=None, appauthor=None, version=None, roaming=False): + r"""Return full path to the user-specific state dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + + for a discussion of issues. + + Typical user state directories are: + Mac OS X: same as user_data_dir + Unix: ~/.local/state/ # or in $XDG_STATE_HOME, if defined + Win *: same as user_data_dir + + For Unix, we follow this Debian proposal + to extend the XDG spec and support $XDG_STATE_HOME. + + That means, by default "~/.local/state/". + """ + if system in ["win32", "darwin"]: + path = user_data_dir(appname, appauthor, None, roaming) + else: + path = os.getenv('XDG_STATE_HOME', os.path.expanduser("~/.local/state")) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): + r"""Return full path to the user-specific log dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be ".". + Only applied when appname is present. + "opinion" (boolean) can be False to disable the appending of + "Logs" to the base app data dir for Windows, and "log" to the + base cache dir for Unix. See discussion below. + + Typical user log directories are: + Mac OS X: ~/Library/Logs/ + Unix: ~/.cache//log # or under $XDG_CACHE_HOME if defined + Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Logs + Vista: C:\Users\\AppData\Local\\\Logs + + On Windows the only suggestion in the MSDN docs is that local settings + go in the `CSIDL_LOCAL_APPDATA` directory. (Note: I'm interested in + examples of what some windows apps use for a logs dir.) + + OPINION: This function appends "Logs" to the `CSIDL_LOCAL_APPDATA` + value for Windows and appends "log" to the user cache dir for Unix. + This can be disabled with the `opinion=False` option. + """ + if system == "darwin": + path = os.path.join( + os.path.expanduser('~/Library/Logs'), + appname) + elif system == "win32": + path = user_data_dir(appname, appauthor, version) + version = False + if opinion: + path = os.path.join(path, "Logs") + else: + path = user_cache_dir(appname, appauthor, version) + version = False + if opinion: + path = os.path.join(path, "log") + if appname and version: + path = os.path.join(path, version) + return path + + +class AppDirs(object): + """Convenience wrapper for getting application dirs.""" + def __init__(self, appname=None, appauthor=None, version=None, + roaming=False, multipath=False): + self.appname = appname + self.appauthor = appauthor + self.version = version + self.roaming = roaming + self.multipath = multipath + + @property + def user_data_dir(self): + return user_data_dir(self.appname, self.appauthor, + version=self.version, roaming=self.roaming) + + @property + def site_data_dir(self): + return site_data_dir(self.appname, self.appauthor, + version=self.version, multipath=self.multipath) + + @property + def user_config_dir(self): + return user_config_dir(self.appname, self.appauthor, + version=self.version, roaming=self.roaming) + + @property + def site_config_dir(self): + return site_config_dir(self.appname, self.appauthor, + version=self.version, multipath=self.multipath) + + @property + def user_cache_dir(self): + return user_cache_dir(self.appname, self.appauthor, + version=self.version) + + @property + def user_state_dir(self): + return user_state_dir(self.appname, self.appauthor, + version=self.version) + + @property + def user_log_dir(self): + return user_log_dir(self.appname, self.appauthor, + version=self.version) + + +#---- internal support stuff + +def _get_win_folder_from_registry(csidl_name): + """This is a fallback technique at best. I'm not sure if using the + registry for this guarantees us the correct answer for all CSIDL_* + names. + """ + if PY3: + import winreg as _winreg + else: + import _winreg + + shell_folder_name = { + "CSIDL_APPDATA": "AppData", + "CSIDL_COMMON_APPDATA": "Common AppData", + "CSIDL_LOCAL_APPDATA": "Local AppData", + }[csidl_name] + + key = _winreg.OpenKey( + _winreg.HKEY_CURRENT_USER, + r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" + ) + dir, type = _winreg.QueryValueEx(key, shell_folder_name) + return dir + + +def _get_win_folder_with_pywin32(csidl_name): + from win32com.shell import shellcon, shell + dir = shell.SHGetFolderPath(0, getattr(shellcon, csidl_name), 0, 0) + # Try to make this a unicode path because SHGetFolderPath does + # not return unicode strings when there is unicode data in the + # path. + try: + dir = unicode(dir) + + # Downgrade to short path name if have highbit chars. See + # . + has_high_char = False + for c in dir: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + try: + import win32api + dir = win32api.GetShortPathName(dir) + except ImportError: + pass + except UnicodeError: + pass + return dir + + +def _get_win_folder_with_ctypes(csidl_name): + import ctypes + + csidl_const = { + "CSIDL_APPDATA": 26, + "CSIDL_COMMON_APPDATA": 35, + "CSIDL_LOCAL_APPDATA": 28, + }[csidl_name] + + buf = ctypes.create_unicode_buffer(1024) + ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) + + # Downgrade to short path name if have highbit chars. See + # . + has_high_char = False + for c in buf: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + buf2 = ctypes.create_unicode_buffer(1024) + if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): + buf = buf2 + + return buf.value + +def _get_win_folder_with_jna(csidl_name): + import array + from com.sun import jna + from com.sun.jna.platform import win32 + + buf_size = win32.WinDef.MAX_PATH * 2 + buf = array.zeros('c', buf_size) + shell = win32.Shell32.INSTANCE + shell.SHGetFolderPath(None, getattr(win32.ShlObj, csidl_name), None, win32.ShlObj.SHGFP_TYPE_CURRENT, buf) + dir = jna.Native.toString(buf.tostring()).rstrip("\0") + + # Downgrade to short path name if have highbit chars. See + # . + has_high_char = False + for c in dir: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + buf = array.zeros('c', buf_size) + kernel = win32.Kernel32.INSTANCE + if kernel.GetShortPathName(dir, buf, buf_size): + dir = jna.Native.toString(buf.tostring()).rstrip("\0") + + return dir + +if system == "win32": + try: + import win32com.shell + _get_win_folder = _get_win_folder_with_pywin32 + except ImportError: + try: + from ctypes import windll + _get_win_folder = _get_win_folder_with_ctypes + except ImportError: + try: + import com.sun.jna + _get_win_folder = _get_win_folder_with_jna + except ImportError: + _get_win_folder = _get_win_folder_from_registry + + +#---- self test code + +if __name__ == "__main__": + appname = "MyApp" + appauthor = "MyCompany" + + props = ("user_data_dir", + "user_config_dir", + "user_cache_dir", + "user_state_dir", + "user_log_dir", + "site_data_dir", + "site_config_dir") + + print("-- app dirs %s --" % __version__) + + print("-- app dirs (with optional 'version')") + dirs = AppDirs(appname, appauthor, version="1.0") + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) + + print("\n-- app dirs (without optional 'version')") + dirs = AppDirs(appname, appauthor) + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) + + print("\n-- app dirs (without optional 'appauthor')") + dirs = AppDirs(appname) + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) + + print("\n-- app dirs (with disabled 'appauthor')") + dirs = AppDirs(appname, appauthor=False) + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) diff --git a/venv/Lib/site-packages/clonevirtualenv.py b/venv/Lib/site-packages/clonevirtualenv.py new file mode 100644 index 00000000..a9d84db8 --- /dev/null +++ b/venv/Lib/site-packages/clonevirtualenv.py @@ -0,0 +1,318 @@ +#!/usr/bin/env python +from __future__ import with_statement + +import logging +import optparse +import os +import os.path +import re +import shutil +import subprocess +import sys +import itertools + +__version__ = '0.5.4' + + +logger = logging.getLogger() + + +env_bin_dir = 'bin' +if sys.platform == 'win32': + env_bin_dir = 'Scripts' + + +class UserError(Exception): + pass + + +def _dirmatch(path, matchwith): + """Check if path is within matchwith's tree. + + >>> _dirmatch('/home/foo/bar', '/home/foo/bar') + True + >>> _dirmatch('/home/foo/bar/', '/home/foo/bar') + True + >>> _dirmatch('/home/foo/bar/etc', '/home/foo/bar') + True + >>> _dirmatch('/home/foo/bar2', '/home/foo/bar') + False + >>> _dirmatch('/home/foo/bar2/etc', '/home/foo/bar') + False + """ + matchlen = len(matchwith) + if (path.startswith(matchwith) + and path[matchlen:matchlen + 1] in [os.sep, '']): + return True + return False + + +def _virtualenv_sys(venv_path): + "obtain version and path info from a virtualenv." + executable = os.path.join(venv_path, env_bin_dir, 'python') + # Must use "executable" as the first argument rather than as the + # keyword argument "executable" to get correct value from sys.path + p = subprocess.Popen([executable, + '-c', 'import sys;' + 'print (sys.version[:3]);' + 'print ("\\n".join(sys.path));'], + env={}, + stdout=subprocess.PIPE) + stdout, err = p.communicate() + assert not p.returncode and stdout + lines = stdout.decode('utf-8').splitlines() + return lines[0], list(filter(bool, lines[1:])) + + +def clone_virtualenv(src_dir, dst_dir): + if not os.path.exists(src_dir): + raise UserError('src dir %r does not exist' % src_dir) + if os.path.exists(dst_dir): + raise UserError('dest dir %r exists' % dst_dir) + #sys_path = _virtualenv_syspath(src_dir) + logger.info('cloning virtualenv \'%s\' => \'%s\'...' % + (src_dir, dst_dir)) + shutil.copytree(src_dir, dst_dir, symlinks=True, + ignore=shutil.ignore_patterns('*.pyc')) + version, sys_path = _virtualenv_sys(dst_dir) + logger.info('fixing scripts in bin...') + fixup_scripts(src_dir, dst_dir, version) + + has_old = lambda s: any(i for i in s if _dirmatch(i, src_dir)) + + if has_old(sys_path): + # only need to fix stuff in sys.path if we have old + # paths in the sys.path of new python env. right? + logger.info('fixing paths in sys.path...') + fixup_syspath_items(sys_path, src_dir, dst_dir) + v_sys = _virtualenv_sys(dst_dir) + remaining = has_old(v_sys[1]) + assert not remaining, v_sys + fix_symlink_if_necessary(src_dir, dst_dir) + +def fix_symlink_if_necessary(src_dir, dst_dir): + #sometimes the source virtual environment has symlinks that point to itself + #one example is $OLD_VIRTUAL_ENV/local/lib points to $OLD_VIRTUAL_ENV/lib + #this function makes sure + #$NEW_VIRTUAL_ENV/local/lib will point to $NEW_VIRTUAL_ENV/lib + #usually this goes unnoticed unless one tries to upgrade a package though pip, so this bug is hard to find. + logger.info("scanning for internal symlinks that point to the original virtual env") + for dirpath, dirnames, filenames in os.walk(dst_dir): + for a_file in itertools.chain(filenames, dirnames): + full_file_path = os.path.join(dirpath, a_file) + if os.path.islink(full_file_path): + target = os.path.realpath(full_file_path) + if target.startswith(src_dir): + new_target = target.replace(src_dir, dst_dir) + logger.debug('fixing symlink in %s' % (full_file_path,)) + os.remove(full_file_path) + os.symlink(new_target, full_file_path) + + +def fixup_scripts(old_dir, new_dir, version, rewrite_env_python=False): + bin_dir = os.path.join(new_dir, env_bin_dir) + root, dirs, files = next(os.walk(bin_dir)) + pybinre = re.compile(r'pythonw?([0-9]+(\.[0-9]+(\.[0-9]+)?)?)?$') + for file_ in files: + filename = os.path.join(root, file_) + if file_ in ['python', 'python%s' % version, 'activate_this.py']: + continue + elif file_.startswith('python') and pybinre.match(file_): + # ignore other possible python binaries + continue + elif file_.endswith('.pyc'): + # ignore compiled files + continue + elif file_ == 'activate' or file_.startswith('activate.'): + fixup_activate(os.path.join(root, file_), old_dir, new_dir) + elif os.path.islink(filename): + fixup_link(filename, old_dir, new_dir) + elif os.path.isfile(filename): + fixup_script_(root, file_, old_dir, new_dir, version, + rewrite_env_python=rewrite_env_python) + + +def fixup_script_(root, file_, old_dir, new_dir, version, + rewrite_env_python=False): + old_shebang = '#!%s/bin/python' % os.path.normcase(os.path.abspath(old_dir)) + new_shebang = '#!%s/bin/python' % os.path.normcase(os.path.abspath(new_dir)) + env_shebang = '#!/usr/bin/env python' + + filename = os.path.join(root, file_) + with open(filename, 'rb') as f: + if f.read(2) != b'#!': + # no shebang + return + f.seek(0) + lines = f.readlines() + + if not lines: + # warn: empty script + return + + def rewrite_shebang(version=None): + logger.debug('fixing %s' % filename) + shebang = new_shebang + if version: + shebang = shebang + version + shebang = (shebang + '\n').encode('utf-8') + with open(filename, 'wb') as f: + f.write(shebang) + f.writelines(lines[1:]) + + try: + bang = lines[0].decode('utf-8').strip() + except UnicodeDecodeError: + # binary file + return + + # This takes care of the scheme in which shebang is of type + # '#!/venv/bin/python3' while the version of system python + # is of type 3.x e.g. 3.5. + short_version = bang[len(old_shebang):] + + if not bang.startswith('#!'): + return + elif bang == old_shebang: + rewrite_shebang() + elif (bang.startswith(old_shebang) + and bang[len(old_shebang):] == version): + rewrite_shebang(version) + elif (bang.startswith(old_shebang) + and short_version + and bang[len(old_shebang):] == short_version): + rewrite_shebang(short_version) + elif rewrite_env_python and bang.startswith(env_shebang): + if bang == env_shebang: + rewrite_shebang() + elif bang[len(env_shebang):] == version: + rewrite_shebang(version) + else: + # can't do anything + return + + +def fixup_activate(filename, old_dir, new_dir): + logger.debug('fixing %s' % filename) + with open(filename, 'rb') as f: + data = f.read().decode('utf-8') + + data = data.replace(old_dir, new_dir) + with open(filename, 'wb') as f: + f.write(data.encode('utf-8')) + + +def fixup_link(filename, old_dir, new_dir, target=None): + logger.debug('fixing %s' % filename) + if target is None: + target = os.readlink(filename) + + origdir = os.path.dirname(os.path.abspath(filename)).replace( + new_dir, old_dir) + if not os.path.isabs(target): + target = os.path.abspath(os.path.join(origdir, target)) + rellink = True + else: + rellink = False + + if _dirmatch(target, old_dir): + if rellink: + # keep relative links, but don't keep original in case it + # traversed up out of, then back into the venv. + # so, recreate a relative link from absolute. + target = target[len(origdir):].lstrip(os.sep) + else: + target = target.replace(old_dir, new_dir, 1) + + # else: links outside the venv, replaced with absolute path to target. + _replace_symlink(filename, target) + + +def _replace_symlink(filename, newtarget): + tmpfn = "%s.new" % filename + os.symlink(newtarget, tmpfn) + os.rename(tmpfn, filename) + + +def fixup_syspath_items(syspath, old_dir, new_dir): + for path in syspath: + if not os.path.isdir(path): + continue + path = os.path.normcase(os.path.abspath(path)) + if _dirmatch(path, old_dir): + path = path.replace(old_dir, new_dir, 1) + if not os.path.exists(path): + continue + elif not _dirmatch(path, new_dir): + continue + root, dirs, files = next(os.walk(path)) + for file_ in files: + filename = os.path.join(root, file_) + if filename.endswith('.pth'): + fixup_pth_file(filename, old_dir, new_dir) + elif filename.endswith('.egg-link'): + fixup_egglink_file(filename, old_dir, new_dir) + + +def fixup_pth_file(filename, old_dir, new_dir): + logger.debug('fixup_pth_file %s' % filename) + + with open(filename, 'r') as f: + lines = f.readlines() + + has_change = False + + for num, line in enumerate(lines): + line = (line.decode('utf-8') if hasattr(line, 'decode') else line).strip() + + if not line or line.startswith('#') or line.startswith('import '): + continue + elif _dirmatch(line, old_dir): + lines[num] = line.replace(old_dir, new_dir, 1) + has_change = True + + if has_change: + with open(filename, 'w') as f: + payload = os.linesep.join([l.strip() for l in lines]) + os.linesep + f.write(payload) + + +def fixup_egglink_file(filename, old_dir, new_dir): + logger.debug('fixing %s' % filename) + with open(filename, 'rb') as f: + link = f.read().decode('utf-8').strip() + if _dirmatch(link, old_dir): + link = link.replace(old_dir, new_dir, 1) + with open(filename, 'wb') as f: + link = (link + '\n').encode('utf-8') + f.write(link) + + +def main(): + parser = optparse.OptionParser("usage: %prog [options]" + " /path/to/existing/venv /path/to/cloned/venv") + parser.add_option('-v', + action="count", + dest='verbose', + default=False, + help='verbosity') + options, args = parser.parse_args() + try: + old_dir, new_dir = args + except ValueError: + print("virtualenv-clone %s" % (__version__,)) + parser.error("not enough arguments given.") + old_dir = os.path.realpath(old_dir) + new_dir = os.path.realpath(new_dir) + loglevel = (logging.WARNING, logging.INFO, logging.DEBUG)[min(2, + options.verbose)] + logging.basicConfig(level=loglevel, format='%(message)s') + try: + clone_virtualenv(old_dir, new_dir) + except UserError: + e = sys.exc_info()[1] + parser.error(str(e)) + + +if __name__ == '__main__': + main() diff --git a/venv/Lib/site-packages/distlib-0.3.1.dist-info/INSTALLER b/venv/Lib/site-packages/distlib-0.3.1.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/distlib-0.3.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/distlib-0.3.1.dist-info/METADATA b/venv/Lib/site-packages/distlib-0.3.1.dist-info/METADATA new file mode 100644 index 00000000..54f5f649 --- /dev/null +++ b/venv/Lib/site-packages/distlib-0.3.1.dist-info/METADATA @@ -0,0 +1,24 @@ +Metadata-Version: 1.1 +Name: distlib +Version: 0.3.1 +Summary: Distribution utilities +Description: Low-level components of distutils2/packaging, augmented with higher-level APIs for making packaging easier. +Home-page: https://bitbucket.org/pypa/distlib +Author: Vinay Sajip +Author-email: vinay_sajip@red-dove.com +License: Python license +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Download-URL: https://bitbucket.org/pypa/distlib/downloads/distlib-0.3.1.zip diff --git a/venv/Lib/site-packages/distlib-0.3.1.dist-info/RECORD b/venv/Lib/site-packages/distlib-0.3.1.dist-info/RECORD new file mode 100644 index 00000000..1b5d02a6 --- /dev/null +++ b/venv/Lib/site-packages/distlib-0.3.1.dist-info/RECORD @@ -0,0 +1,45 @@ +distlib-0.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +distlib-0.3.1.dist-info/METADATA,sha256=i6wrPilVkro9BXvaHkwVsaemMZCx5xbWc8jS9oR_ZJw,1128 +distlib-0.3.1.dist-info/RECORD,, +distlib-0.3.1.dist-info/WHEEL,sha256=R4LNelR33E9ZPEGiPwrdPrrHnwkFEjiMPbVCAWVjsxI,106 +distlib/__init__.py,sha256=3veAk2rPznOB2gsK6tjbbh0TQMmGE5P82eE9wXq6NIk,581 +distlib/__pycache__/__init__.cpython-36.pyc,, +distlib/__pycache__/compat.cpython-36.pyc,, +distlib/__pycache__/database.cpython-36.pyc,, +distlib/__pycache__/index.cpython-36.pyc,, +distlib/__pycache__/locators.cpython-36.pyc,, +distlib/__pycache__/manifest.cpython-36.pyc,, +distlib/__pycache__/markers.cpython-36.pyc,, +distlib/__pycache__/metadata.cpython-36.pyc,, +distlib/__pycache__/resources.cpython-36.pyc,, +distlib/__pycache__/scripts.cpython-36.pyc,, +distlib/__pycache__/util.cpython-36.pyc,, +distlib/__pycache__/version.cpython-36.pyc,, +distlib/__pycache__/wheel.cpython-36.pyc,, +distlib/_backport/__init__.py,sha256=bqS_dTOH6uW9iGgd0uzfpPjo6vZ4xpPZ7kyfZJ2vNaw,274 +distlib/_backport/__pycache__/__init__.cpython-36.pyc,, +distlib/_backport/__pycache__/misc.cpython-36.pyc,, +distlib/_backport/__pycache__/shutil.cpython-36.pyc,, +distlib/_backport/__pycache__/sysconfig.cpython-36.pyc,, +distlib/_backport/__pycache__/tarfile.cpython-36.pyc,, +distlib/_backport/misc.py,sha256=KWecINdbFNOxSOP1fGF680CJnaC6S4fBRgEtaYTw0ig,971 +distlib/_backport/shutil.py,sha256=IX_G2NPqwecJibkIDje04bqu0xpHkfSQ2GaGdEVqM5Y,25707 +distlib/_backport/sysconfig.cfg,sha256=swZKxq9RY5e9r3PXCrlvQPMsvOdiWZBTHLEbqS8LJLU,2617 +distlib/_backport/sysconfig.py,sha256=BQHFlb6pubCl_dvT1NjtzIthylofjKisox239stDg0U,26854 +distlib/_backport/tarfile.py,sha256=Ihp7rXRcjbIKw8COm9wSePV9ARGXbSF9gGXAMn2Q-KU,92628 +distlib/compat.py,sha256=ADA56xiAxar3mU6qemlBhNbsrFPosXRhO44RzsbJPqk,41408 +distlib/database.py,sha256=Kl0YvPQKc4OcpVi7k5cFziydM1xOK8iqdxLGXgbZHV4,51059 +distlib/index.py,sha256=SXKzpQCERctxYDMp_OLee2f0J0e19ZhGdCIoMlUfUQM,21066 +distlib/locators.py,sha256=c9E4cDEacJ_uKbuE5BqAVocoWp6rsuBGTkiNDQq3zV4,52100 +distlib/manifest.py,sha256=nQEhYmgoreaBZzyFzwYsXxJARu3fo4EkunU163U16iE,14811 +distlib/markers.py,sha256=6Ac3cCfFBERexiESWIOXmg-apIP8l2esafNSX3KMy-8,4387 +distlib/metadata.py,sha256=z2KPy3h3tcDnb9Xs7nAqQ5Oz0bqjWAUFmKWcFKRoodg,38962 +distlib/resources.py,sha256=2FGv0ZHF14KXjLIlL0R991lyQQGcewOS4mJ-5n-JVnc,10766 +distlib/scripts.py,sha256=_MAj3sMuv56kuM8FsiIWXqbT0gmumPGaOR_atOzn4a4,17180 +distlib/t32.exe,sha256=NS3xBCVAld35JVFNmb-1QRyVtThukMrwZVeXn4LhaEQ,96768 +distlib/t64.exe,sha256=oAqHes78rUWVM0OtVqIhUvequl_PKhAhXYQWnUf7zR0,105984 +distlib/util.py,sha256=f2jZCPrcLCt6LcnC0gUy-Fur60tXD8reA7k4rDpHMDw,59845 +distlib/version.py,sha256=_n7F6juvQGAcn769E_SHa7fOcf5ERlEVymJ_EjPRwGw,23391 +distlib/w32.exe,sha256=lJtnZdeUxTZWya_EW5DZos_K5rswRECGspIl8ZJCIXs,90112 +distlib/w64.exe,sha256=0aRzoN2BO9NWW4ENy4_4vHkHR4qZTFZNVSAJJYlODTI,99840 +distlib/wheel.py,sha256=v6DnwTqhNHwrEVFr8_YeiTW6G4ftP_evsywNgrmdb2o,41144 diff --git a/venv/Lib/site-packages/distlib-0.3.1.dist-info/WHEEL b/venv/Lib/site-packages/distlib-0.3.1.dist-info/WHEEL new file mode 100644 index 00000000..78f54a19 --- /dev/null +++ b/venv/Lib/site-packages/distlib-0.3.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: distlib 0.3.1.dev0 +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any \ No newline at end of file diff --git a/venv/Lib/site-packages/distlib/__init__.py b/venv/Lib/site-packages/distlib/__init__.py new file mode 100644 index 00000000..63d916e3 --- /dev/null +++ b/venv/Lib/site-packages/distlib/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2019 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +import logging + +__version__ = '0.3.1' + +class DistlibException(Exception): + pass + +try: + from logging import NullHandler +except ImportError: # pragma: no cover + class NullHandler(logging.Handler): + def handle(self, record): pass + def emit(self, record): pass + def createLock(self): self.lock = None + +logger = logging.getLogger(__name__) +logger.addHandler(NullHandler()) diff --git a/venv/Lib/site-packages/distlib/_backport/__init__.py b/venv/Lib/site-packages/distlib/_backport/__init__.py new file mode 100644 index 00000000..f7dbf4c9 --- /dev/null +++ b/venv/Lib/site-packages/distlib/_backport/__init__.py @@ -0,0 +1,6 @@ +"""Modules copied from Python 3 standard libraries, for internal use only. + +Individual classes and functions are found in d2._backport.misc. Intended +usage is to always import things missing from 3.1 from that module: the +built-in/stdlib objects will be used if found. +""" diff --git a/venv/Lib/site-packages/distlib/_backport/misc.py b/venv/Lib/site-packages/distlib/_backport/misc.py new file mode 100644 index 00000000..cfb318d3 --- /dev/null +++ b/venv/Lib/site-packages/distlib/_backport/misc.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Backports for individual classes and functions.""" + +import os +import sys + +__all__ = ['cache_from_source', 'callable', 'fsencode'] + + +try: + from imp import cache_from_source +except ImportError: + def cache_from_source(py_file, debug=__debug__): + ext = debug and 'c' or 'o' + return py_file + ext + + +try: + callable = callable +except NameError: + from collections import Callable + + def callable(obj): + return isinstance(obj, Callable) + + +try: + fsencode = os.fsencode +except AttributeError: + def fsencode(filename): + if isinstance(filename, bytes): + return filename + elif isinstance(filename, str): + return filename.encode(sys.getfilesystemencoding()) + else: + raise TypeError("expect bytes or str, not %s" % + type(filename).__name__) diff --git a/venv/Lib/site-packages/distlib/_backport/shutil.py b/venv/Lib/site-packages/distlib/_backport/shutil.py new file mode 100644 index 00000000..10ed3625 --- /dev/null +++ b/venv/Lib/site-packages/distlib/_backport/shutil.py @@ -0,0 +1,764 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Utility functions for copying and archiving files and directory trees. + +XXX The functions here don't copy the resource fork or other metadata on Mac. + +""" + +import os +import sys +import stat +from os.path import abspath +import fnmatch +try: + from collections.abc import Callable +except ImportError: + from collections import Callable +import errno +from . import tarfile + +try: + import bz2 + _BZ2_SUPPORTED = True +except ImportError: + _BZ2_SUPPORTED = False + +try: + from pwd import getpwnam +except ImportError: + getpwnam = None + +try: + from grp import getgrnam +except ImportError: + getgrnam = None + +__all__ = ["copyfileobj", "copyfile", "copymode", "copystat", "copy", "copy2", + "copytree", "move", "rmtree", "Error", "SpecialFileError", + "ExecError", "make_archive", "get_archive_formats", + "register_archive_format", "unregister_archive_format", + "get_unpack_formats", "register_unpack_format", + "unregister_unpack_format", "unpack_archive", "ignore_patterns"] + +class Error(EnvironmentError): + pass + +class SpecialFileError(EnvironmentError): + """Raised when trying to do a kind of operation (e.g. copying) which is + not supported on a special file (e.g. a named pipe)""" + +class ExecError(EnvironmentError): + """Raised when a command could not be executed""" + +class ReadError(EnvironmentError): + """Raised when an archive cannot be read""" + +class RegistryError(Exception): + """Raised when a registry operation with the archiving + and unpacking registries fails""" + + +try: + WindowsError +except NameError: + WindowsError = None + +def copyfileobj(fsrc, fdst, length=16*1024): + """copy data from file-like object fsrc to file-like object fdst""" + while 1: + buf = fsrc.read(length) + if not buf: + break + fdst.write(buf) + +def _samefile(src, dst): + # Macintosh, Unix. + if hasattr(os.path, 'samefile'): + try: + return os.path.samefile(src, dst) + except OSError: + return False + + # All other platforms: check for same pathname. + return (os.path.normcase(os.path.abspath(src)) == + os.path.normcase(os.path.abspath(dst))) + +def copyfile(src, dst): + """Copy data from src to dst""" + if _samefile(src, dst): + raise Error("`%s` and `%s` are the same file" % (src, dst)) + + for fn in [src, dst]: + try: + st = os.stat(fn) + except OSError: + # File most likely does not exist + pass + else: + # XXX What about other special files? (sockets, devices...) + if stat.S_ISFIFO(st.st_mode): + raise SpecialFileError("`%s` is a named pipe" % fn) + + with open(src, 'rb') as fsrc: + with open(dst, 'wb') as fdst: + copyfileobj(fsrc, fdst) + +def copymode(src, dst): + """Copy mode bits from src to dst""" + if hasattr(os, 'chmod'): + st = os.stat(src) + mode = stat.S_IMODE(st.st_mode) + os.chmod(dst, mode) + +def copystat(src, dst): + """Copy all stat info (mode bits, atime, mtime, flags) from src to dst""" + st = os.stat(src) + mode = stat.S_IMODE(st.st_mode) + if hasattr(os, 'utime'): + os.utime(dst, (st.st_atime, st.st_mtime)) + if hasattr(os, 'chmod'): + os.chmod(dst, mode) + if hasattr(os, 'chflags') and hasattr(st, 'st_flags'): + try: + os.chflags(dst, st.st_flags) + except OSError as why: + if (not hasattr(errno, 'EOPNOTSUPP') or + why.errno != errno.EOPNOTSUPP): + raise + +def copy(src, dst): + """Copy data and mode bits ("cp src dst"). + + The destination may be a directory. + + """ + if os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) + copyfile(src, dst) + copymode(src, dst) + +def copy2(src, dst): + """Copy data and all stat info ("cp -p src dst"). + + The destination may be a directory. + + """ + if os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) + copyfile(src, dst) + copystat(src, dst) + +def ignore_patterns(*patterns): + """Function that can be used as copytree() ignore parameter. + + Patterns is a sequence of glob-style patterns + that are used to exclude files""" + def _ignore_patterns(path, names): + ignored_names = [] + for pattern in patterns: + ignored_names.extend(fnmatch.filter(names, pattern)) + return set(ignored_names) + return _ignore_patterns + +def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, + ignore_dangling_symlinks=False): + """Recursively copy a directory tree. + + The destination directory must not already exist. + If exception(s) occur, an Error is raised with a list of reasons. + + If the optional symlinks flag is true, symbolic links in the + source tree result in symbolic links in the destination tree; if + it is false, the contents of the files pointed to by symbolic + links are copied. If the file pointed by the symlink doesn't + exist, an exception will be added in the list of errors raised in + an Error exception at the end of the copy process. + + You can set the optional ignore_dangling_symlinks flag to true if you + want to silence this exception. Notice that this has no effect on + platforms that don't support os.symlink. + + The optional ignore argument is a callable. If given, it + is called with the `src` parameter, which is the directory + being visited by copytree(), and `names` which is the list of + `src` contents, as returned by os.listdir(): + + callable(src, names) -> ignored_names + + Since copytree() is called recursively, the callable will be + called once for each directory that is copied. It returns a + list of names relative to the `src` directory that should + not be copied. + + The optional copy_function argument is a callable that will be used + to copy each file. It will be called with the source path and the + destination path as arguments. By default, copy2() is used, but any + function that supports the same signature (like copy()) can be used. + + """ + names = os.listdir(src) + if ignore is not None: + ignored_names = ignore(src, names) + else: + ignored_names = set() + + os.makedirs(dst) + errors = [] + for name in names: + if name in ignored_names: + continue + srcname = os.path.join(src, name) + dstname = os.path.join(dst, name) + try: + if os.path.islink(srcname): + linkto = os.readlink(srcname) + if symlinks: + os.symlink(linkto, dstname) + else: + # ignore dangling symlink if the flag is on + if not os.path.exists(linkto) and ignore_dangling_symlinks: + continue + # otherwise let the copy occurs. copy2 will raise an error + copy_function(srcname, dstname) + elif os.path.isdir(srcname): + copytree(srcname, dstname, symlinks, ignore, copy_function) + else: + # Will raise a SpecialFileError for unsupported file types + copy_function(srcname, dstname) + # catch the Error from the recursive copytree so that we can + # continue with other files + except Error as err: + errors.extend(err.args[0]) + except EnvironmentError as why: + errors.append((srcname, dstname, str(why))) + try: + copystat(src, dst) + except OSError as why: + if WindowsError is not None and isinstance(why, WindowsError): + # Copying file access times may fail on Windows + pass + else: + errors.extend((src, dst, str(why))) + if errors: + raise Error(errors) + +def rmtree(path, ignore_errors=False, onerror=None): + """Recursively delete a directory tree. + + If ignore_errors is set, errors are ignored; otherwise, if onerror + is set, it is called to handle the error with arguments (func, + path, exc_info) where func is os.listdir, os.remove, or os.rmdir; + path is the argument to that function that caused it to fail; and + exc_info is a tuple returned by sys.exc_info(). If ignore_errors + is false and onerror is None, an exception is raised. + + """ + if ignore_errors: + def onerror(*args): + pass + elif onerror is None: + def onerror(*args): + raise + try: + if os.path.islink(path): + # symlinks to directories are forbidden, see bug #1669 + raise OSError("Cannot call rmtree on a symbolic link") + except OSError: + onerror(os.path.islink, path, sys.exc_info()) + # can't continue even if onerror hook returns + return + names = [] + try: + names = os.listdir(path) + except os.error: + onerror(os.listdir, path, sys.exc_info()) + for name in names: + fullname = os.path.join(path, name) + try: + mode = os.lstat(fullname).st_mode + except os.error: + mode = 0 + if stat.S_ISDIR(mode): + rmtree(fullname, ignore_errors, onerror) + else: + try: + os.remove(fullname) + except os.error: + onerror(os.remove, fullname, sys.exc_info()) + try: + os.rmdir(path) + except os.error: + onerror(os.rmdir, path, sys.exc_info()) + + +def _basename(path): + # A basename() variant which first strips the trailing slash, if present. + # Thus we always get the last component of the path, even for directories. + return os.path.basename(path.rstrip(os.path.sep)) + +def move(src, dst): + """Recursively move a file or directory to another location. This is + similar to the Unix "mv" command. + + If the destination is a directory or a symlink to a directory, the source + is moved inside the directory. The destination path must not already + exist. + + If the destination already exists but is not a directory, it may be + overwritten depending on os.rename() semantics. + + If the destination is on our current filesystem, then rename() is used. + Otherwise, src is copied to the destination and then removed. + A lot more could be done here... A look at a mv.c shows a lot of + the issues this implementation glosses over. + + """ + real_dst = dst + if os.path.isdir(dst): + if _samefile(src, dst): + # We might be on a case insensitive filesystem, + # perform the rename anyway. + os.rename(src, dst) + return + + real_dst = os.path.join(dst, _basename(src)) + if os.path.exists(real_dst): + raise Error("Destination path '%s' already exists" % real_dst) + try: + os.rename(src, real_dst) + except OSError: + if os.path.isdir(src): + if _destinsrc(src, dst): + raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) + copytree(src, real_dst, symlinks=True) + rmtree(src) + else: + copy2(src, real_dst) + os.unlink(src) + +def _destinsrc(src, dst): + src = abspath(src) + dst = abspath(dst) + if not src.endswith(os.path.sep): + src += os.path.sep + if not dst.endswith(os.path.sep): + dst += os.path.sep + return dst.startswith(src) + +def _get_gid(name): + """Returns a gid, given a group name.""" + if getgrnam is None or name is None: + return None + try: + result = getgrnam(name) + except KeyError: + result = None + if result is not None: + return result[2] + return None + +def _get_uid(name): + """Returns an uid, given a user name.""" + if getpwnam is None or name is None: + return None + try: + result = getpwnam(name) + except KeyError: + result = None + if result is not None: + return result[2] + return None + +def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, + owner=None, group=None, logger=None): + """Create a (possibly compressed) tar file from all the files under + 'base_dir'. + + 'compress' must be "gzip" (the default), "bzip2", or None. + + 'owner' and 'group' can be used to define an owner and a group for the + archive that is being built. If not provided, the current owner and group + will be used. + + The output tar file will be named 'base_name' + ".tar", possibly plus + the appropriate compression extension (".gz", or ".bz2"). + + Returns the output filename. + """ + tar_compression = {'gzip': 'gz', None: ''} + compress_ext = {'gzip': '.gz'} + + if _BZ2_SUPPORTED: + tar_compression['bzip2'] = 'bz2' + compress_ext['bzip2'] = '.bz2' + + # flags for compression program, each element of list will be an argument + if compress is not None and compress not in compress_ext: + raise ValueError("bad value for 'compress', or compression format not " + "supported : {0}".format(compress)) + + archive_name = base_name + '.tar' + compress_ext.get(compress, '') + archive_dir = os.path.dirname(archive_name) + + if not os.path.exists(archive_dir): + if logger is not None: + logger.info("creating %s", archive_dir) + if not dry_run: + os.makedirs(archive_dir) + + # creating the tarball + if logger is not None: + logger.info('Creating tar archive') + + uid = _get_uid(owner) + gid = _get_gid(group) + + def _set_uid_gid(tarinfo): + if gid is not None: + tarinfo.gid = gid + tarinfo.gname = group + if uid is not None: + tarinfo.uid = uid + tarinfo.uname = owner + return tarinfo + + if not dry_run: + tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) + try: + tar.add(base_dir, filter=_set_uid_gid) + finally: + tar.close() + + return archive_name + +def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): + # XXX see if we want to keep an external call here + if verbose: + zipoptions = "-r" + else: + zipoptions = "-rq" + from distutils.errors import DistutilsExecError + from distutils.spawn import spawn + try: + spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) + except DistutilsExecError: + # XXX really should distinguish between "couldn't find + # external 'zip' command" and "zip failed". + raise ExecError("unable to create zip file '%s': " + "could neither import the 'zipfile' module nor " + "find a standalone zip utility") % zip_filename + +def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): + """Create a zip file from all the files under 'base_dir'. + + The output zip file will be named 'base_name' + ".zip". Uses either the + "zipfile" Python module (if available) or the InfoZIP "zip" utility + (if installed and found on the default search path). If neither tool is + available, raises ExecError. Returns the name of the output zip + file. + """ + zip_filename = base_name + ".zip" + archive_dir = os.path.dirname(base_name) + + if not os.path.exists(archive_dir): + if logger is not None: + logger.info("creating %s", archive_dir) + if not dry_run: + os.makedirs(archive_dir) + + # If zipfile module is not available, try spawning an external 'zip' + # command. + try: + import zipfile + except ImportError: + zipfile = None + + if zipfile is None: + _call_external_zip(base_dir, zip_filename, verbose, dry_run) + else: + if logger is not None: + logger.info("creating '%s' and adding '%s' to it", + zip_filename, base_dir) + + if not dry_run: + zip = zipfile.ZipFile(zip_filename, "w", + compression=zipfile.ZIP_DEFLATED) + + for dirpath, dirnames, filenames in os.walk(base_dir): + for name in filenames: + path = os.path.normpath(os.path.join(dirpath, name)) + if os.path.isfile(path): + zip.write(path, path) + if logger is not None: + logger.info("adding '%s'", path) + zip.close() + + return zip_filename + +_ARCHIVE_FORMATS = { + 'gztar': (_make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"), + 'bztar': (_make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"), + 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), + 'zip': (_make_zipfile, [], "ZIP file"), + } + +if _BZ2_SUPPORTED: + _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], + "bzip2'ed tar-file") + +def get_archive_formats(): + """Returns a list of supported formats for archiving and unarchiving. + + Each element of the returned sequence is a tuple (name, description) + """ + formats = [(name, registry[2]) for name, registry in + _ARCHIVE_FORMATS.items()] + formats.sort() + return formats + +def register_archive_format(name, function, extra_args=None, description=''): + """Registers an archive format. + + name is the name of the format. function is the callable that will be + used to create archives. If provided, extra_args is a sequence of + (name, value) tuples that will be passed as arguments to the callable. + description can be provided to describe the format, and will be returned + by the get_archive_formats() function. + """ + if extra_args is None: + extra_args = [] + if not isinstance(function, Callable): + raise TypeError('The %s object is not callable' % function) + if not isinstance(extra_args, (tuple, list)): + raise TypeError('extra_args needs to be a sequence') + for element in extra_args: + if not isinstance(element, (tuple, list)) or len(element) !=2: + raise TypeError('extra_args elements are : (arg_name, value)') + + _ARCHIVE_FORMATS[name] = (function, extra_args, description) + +def unregister_archive_format(name): + del _ARCHIVE_FORMATS[name] + +def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, + dry_run=0, owner=None, group=None, logger=None): + """Create an archive file (eg. zip or tar). + + 'base_name' is the name of the file to create, minus any format-specific + extension; 'format' is the archive format: one of "zip", "tar", "bztar" + or "gztar". + + 'root_dir' is a directory that will be the root directory of the + archive; ie. we typically chdir into 'root_dir' before creating the + archive. 'base_dir' is the directory where we start archiving from; + ie. 'base_dir' will be the common prefix of all files and + directories in the archive. 'root_dir' and 'base_dir' both default + to the current directory. Returns the name of the archive file. + + 'owner' and 'group' are used when creating a tar archive. By default, + uses the current owner and group. + """ + save_cwd = os.getcwd() + if root_dir is not None: + if logger is not None: + logger.debug("changing into '%s'", root_dir) + base_name = os.path.abspath(base_name) + if not dry_run: + os.chdir(root_dir) + + if base_dir is None: + base_dir = os.curdir + + kwargs = {'dry_run': dry_run, 'logger': logger} + + try: + format_info = _ARCHIVE_FORMATS[format] + except KeyError: + raise ValueError("unknown archive format '%s'" % format) + + func = format_info[0] + for arg, val in format_info[1]: + kwargs[arg] = val + + if format != 'zip': + kwargs['owner'] = owner + kwargs['group'] = group + + try: + filename = func(base_name, base_dir, **kwargs) + finally: + if root_dir is not None: + if logger is not None: + logger.debug("changing back to '%s'", save_cwd) + os.chdir(save_cwd) + + return filename + + +def get_unpack_formats(): + """Returns a list of supported formats for unpacking. + + Each element of the returned sequence is a tuple + (name, extensions, description) + """ + formats = [(name, info[0], info[3]) for name, info in + _UNPACK_FORMATS.items()] + formats.sort() + return formats + +def _check_unpack_options(extensions, function, extra_args): + """Checks what gets registered as an unpacker.""" + # first make sure no other unpacker is registered for this extension + existing_extensions = {} + for name, info in _UNPACK_FORMATS.items(): + for ext in info[0]: + existing_extensions[ext] = name + + for extension in extensions: + if extension in existing_extensions: + msg = '%s is already registered for "%s"' + raise RegistryError(msg % (extension, + existing_extensions[extension])) + + if not isinstance(function, Callable): + raise TypeError('The registered function must be a callable') + + +def register_unpack_format(name, extensions, function, extra_args=None, + description=''): + """Registers an unpack format. + + `name` is the name of the format. `extensions` is a list of extensions + corresponding to the format. + + `function` is the callable that will be + used to unpack archives. The callable will receive archives to unpack. + If it's unable to handle an archive, it needs to raise a ReadError + exception. + + If provided, `extra_args` is a sequence of + (name, value) tuples that will be passed as arguments to the callable. + description can be provided to describe the format, and will be returned + by the get_unpack_formats() function. + """ + if extra_args is None: + extra_args = [] + _check_unpack_options(extensions, function, extra_args) + _UNPACK_FORMATS[name] = extensions, function, extra_args, description + +def unregister_unpack_format(name): + """Removes the pack format from the registry.""" + del _UNPACK_FORMATS[name] + +def _ensure_directory(path): + """Ensure that the parent directory of `path` exists""" + dirname = os.path.dirname(path) + if not os.path.isdir(dirname): + os.makedirs(dirname) + +def _unpack_zipfile(filename, extract_dir): + """Unpack zip `filename` to `extract_dir` + """ + try: + import zipfile + except ImportError: + raise ReadError('zlib not supported, cannot unpack this archive.') + + if not zipfile.is_zipfile(filename): + raise ReadError("%s is not a zip file" % filename) + + zip = zipfile.ZipFile(filename) + try: + for info in zip.infolist(): + name = info.filename + + # don't extract absolute paths or ones with .. in them + if name.startswith('/') or '..' in name: + continue + + target = os.path.join(extract_dir, *name.split('/')) + if not target: + continue + + _ensure_directory(target) + if not name.endswith('/'): + # file + data = zip.read(info.filename) + f = open(target, 'wb') + try: + f.write(data) + finally: + f.close() + del data + finally: + zip.close() + +def _unpack_tarfile(filename, extract_dir): + """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` + """ + try: + tarobj = tarfile.open(filename) + except tarfile.TarError: + raise ReadError( + "%s is not a compressed or uncompressed tar file" % filename) + try: + tarobj.extractall(extract_dir) + finally: + tarobj.close() + +_UNPACK_FORMATS = { + 'gztar': (['.tar.gz', '.tgz'], _unpack_tarfile, [], "gzip'ed tar-file"), + 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), + 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file") + } + +if _BZ2_SUPPORTED: + _UNPACK_FORMATS['bztar'] = (['.bz2'], _unpack_tarfile, [], + "bzip2'ed tar-file") + +def _find_unpack_format(filename): + for name, info in _UNPACK_FORMATS.items(): + for extension in info[0]: + if filename.endswith(extension): + return name + return None + +def unpack_archive(filename, extract_dir=None, format=None): + """Unpack an archive. + + `filename` is the name of the archive. + + `extract_dir` is the name of the target directory, where the archive + is unpacked. If not provided, the current working directory is used. + + `format` is the archive format: one of "zip", "tar", or "gztar". Or any + other registered format. If not provided, unpack_archive will use the + filename extension and see if an unpacker was registered for that + extension. + + In case none is found, a ValueError is raised. + """ + if extract_dir is None: + extract_dir = os.getcwd() + + if format is not None: + try: + format_info = _UNPACK_FORMATS[format] + except KeyError: + raise ValueError("Unknown unpack format '{0}'".format(format)) + + func = format_info[1] + func(filename, extract_dir, **dict(format_info[2])) + else: + # we need to look at the registered unpackers supported extensions + format = _find_unpack_format(filename) + if format is None: + raise ReadError("Unknown archive format '{0}'".format(filename)) + + func = _UNPACK_FORMATS[format][1] + kwargs = dict(_UNPACK_FORMATS[format][2]) + func(filename, extract_dir, **kwargs) diff --git a/venv/Lib/site-packages/distlib/_backport/sysconfig.cfg b/venv/Lib/site-packages/distlib/_backport/sysconfig.cfg new file mode 100644 index 00000000..1746bd01 --- /dev/null +++ b/venv/Lib/site-packages/distlib/_backport/sysconfig.cfg @@ -0,0 +1,84 @@ +[posix_prefix] +# Configuration directories. Some of these come straight out of the +# configure script. They are for implementing the other variables, not to +# be used directly in [resource_locations]. +confdir = /etc +datadir = /usr/share +libdir = /usr/lib +statedir = /var +# User resource directory +local = ~/.local/{distribution.name} + +stdlib = {base}/lib/python{py_version_short} +platstdlib = {platbase}/lib/python{py_version_short} +purelib = {base}/lib/python{py_version_short}/site-packages +platlib = {platbase}/lib/python{py_version_short}/site-packages +include = {base}/include/python{py_version_short}{abiflags} +platinclude = {platbase}/include/python{py_version_short}{abiflags} +data = {base} + +[posix_home] +stdlib = {base}/lib/python +platstdlib = {base}/lib/python +purelib = {base}/lib/python +platlib = {base}/lib/python +include = {base}/include/python +platinclude = {base}/include/python +scripts = {base}/bin +data = {base} + +[nt] +stdlib = {base}/Lib +platstdlib = {base}/Lib +purelib = {base}/Lib/site-packages +platlib = {base}/Lib/site-packages +include = {base}/Include +platinclude = {base}/Include +scripts = {base}/Scripts +data = {base} + +[os2] +stdlib = {base}/Lib +platstdlib = {base}/Lib +purelib = {base}/Lib/site-packages +platlib = {base}/Lib/site-packages +include = {base}/Include +platinclude = {base}/Include +scripts = {base}/Scripts +data = {base} + +[os2_home] +stdlib = {userbase}/lib/python{py_version_short} +platstdlib = {userbase}/lib/python{py_version_short} +purelib = {userbase}/lib/python{py_version_short}/site-packages +platlib = {userbase}/lib/python{py_version_short}/site-packages +include = {userbase}/include/python{py_version_short} +scripts = {userbase}/bin +data = {userbase} + +[nt_user] +stdlib = {userbase}/Python{py_version_nodot} +platstdlib = {userbase}/Python{py_version_nodot} +purelib = {userbase}/Python{py_version_nodot}/site-packages +platlib = {userbase}/Python{py_version_nodot}/site-packages +include = {userbase}/Python{py_version_nodot}/Include +scripts = {userbase}/Scripts +data = {userbase} + +[posix_user] +stdlib = {userbase}/lib/python{py_version_short} +platstdlib = {userbase}/lib/python{py_version_short} +purelib = {userbase}/lib/python{py_version_short}/site-packages +platlib = {userbase}/lib/python{py_version_short}/site-packages +include = {userbase}/include/python{py_version_short} +scripts = {userbase}/bin +data = {userbase} + +[osx_framework_user] +stdlib = {userbase}/lib/python +platstdlib = {userbase}/lib/python +purelib = {userbase}/lib/python/site-packages +platlib = {userbase}/lib/python/site-packages +include = {userbase}/include +scripts = {userbase}/bin +data = {userbase} diff --git a/venv/Lib/site-packages/distlib/_backport/sysconfig.py b/venv/Lib/site-packages/distlib/_backport/sysconfig.py new file mode 100644 index 00000000..b470a373 --- /dev/null +++ b/venv/Lib/site-packages/distlib/_backport/sysconfig.py @@ -0,0 +1,786 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Access to Python's configuration information.""" + +import codecs +import os +import re +import sys +from os.path import pardir, realpath +try: + import configparser +except ImportError: + import ConfigParser as configparser + + +__all__ = [ + 'get_config_h_filename', + 'get_config_var', + 'get_config_vars', + 'get_makefile_filename', + 'get_path', + 'get_path_names', + 'get_paths', + 'get_platform', + 'get_python_version', + 'get_scheme_names', + 'parse_config_h', +] + + +def _safe_realpath(path): + try: + return realpath(path) + except OSError: + return path + + +if sys.executable: + _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) +else: + # sys.executable can be empty if argv[0] has been changed and Python is + # unable to retrieve the real program name + _PROJECT_BASE = _safe_realpath(os.getcwd()) + +if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) +# PC/VS7.1 +if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) +# PC/AMD64 +if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) + + +def is_python_build(): + for fn in ("Setup.dist", "Setup.local"): + if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): + return True + return False + +_PYTHON_BUILD = is_python_build() + +_cfg_read = False + +def _ensure_cfg_read(): + global _cfg_read + if not _cfg_read: + from ..resources import finder + backport_package = __name__.rsplit('.', 1)[0] + _finder = finder(backport_package) + _cfgfile = _finder.find('sysconfig.cfg') + assert _cfgfile, 'sysconfig.cfg exists' + with _cfgfile.as_stream() as s: + _SCHEMES.readfp(s) + if _PYTHON_BUILD: + for scheme in ('posix_prefix', 'posix_home'): + _SCHEMES.set(scheme, 'include', '{srcdir}/Include') + _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.') + + _cfg_read = True + + +_SCHEMES = configparser.RawConfigParser() +_VAR_REPL = re.compile(r'\{([^{]*?)\}') + +def _expand_globals(config): + _ensure_cfg_read() + if config.has_section('globals'): + globals = config.items('globals') + else: + globals = tuple() + + sections = config.sections() + for section in sections: + if section == 'globals': + continue + for option, value in globals: + if config.has_option(section, option): + continue + config.set(section, option, value) + config.remove_section('globals') + + # now expanding local variables defined in the cfg file + # + for section in config.sections(): + variables = dict(config.items(section)) + + def _replacer(matchobj): + name = matchobj.group(1) + if name in variables: + return variables[name] + return matchobj.group(0) + + for option, value in config.items(section): + config.set(section, option, _VAR_REPL.sub(_replacer, value)) + +#_expand_globals(_SCHEMES) + +_PY_VERSION = '%s.%s.%s' % sys.version_info[:3] +_PY_VERSION_SHORT = '%s.%s' % sys.version_info[:2] +_PY_VERSION_SHORT_NO_DOT = '%s%s' % sys.version_info[:2] +_PREFIX = os.path.normpath(sys.prefix) +_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) +_CONFIG_VARS = None +_USER_BASE = None + + +def _subst_vars(path, local_vars): + """In the string `path`, replace tokens like {some.thing} with the + corresponding value from the map `local_vars`. + + If there is no corresponding value, leave the token unchanged. + """ + def _replacer(matchobj): + name = matchobj.group(1) + if name in local_vars: + return local_vars[name] + elif name in os.environ: + return os.environ[name] + return matchobj.group(0) + return _VAR_REPL.sub(_replacer, path) + + +def _extend_dict(target_dict, other_dict): + target_keys = target_dict.keys() + for key, value in other_dict.items(): + if key in target_keys: + continue + target_dict[key] = value + + +def _expand_vars(scheme, vars): + res = {} + if vars is None: + vars = {} + _extend_dict(vars, get_config_vars()) + + for key, value in _SCHEMES.items(scheme): + if os.name in ('posix', 'nt'): + value = os.path.expanduser(value) + res[key] = os.path.normpath(_subst_vars(value, vars)) + return res + + +def format_value(value, vars): + def _replacer(matchobj): + name = matchobj.group(1) + if name in vars: + return vars[name] + return matchobj.group(0) + return _VAR_REPL.sub(_replacer, value) + + +def _get_default_scheme(): + if os.name == 'posix': + # the default scheme for posix is posix_prefix + return 'posix_prefix' + return os.name + + +def _getuserbase(): + env_base = os.environ.get("PYTHONUSERBASE", None) + + def joinuser(*args): + return os.path.expanduser(os.path.join(*args)) + + # what about 'os2emx', 'riscos' ? + if os.name == "nt": + base = os.environ.get("APPDATA") or "~" + if env_base: + return env_base + else: + return joinuser(base, "Python") + + if sys.platform == "darwin": + framework = get_config_var("PYTHONFRAMEWORK") + if framework: + if env_base: + return env_base + else: + return joinuser("~", "Library", framework, "%d.%d" % + sys.version_info[:2]) + + if env_base: + return env_base + else: + return joinuser("~", ".local") + + +def _parse_makefile(filename, vars=None): + """Parse a Makefile-style file. + + A dictionary containing name/value pairs is returned. If an + optional dictionary is passed in as the second argument, it is + used instead of a new dictionary. + """ + # Regexes needed for parsing Makefile (and similar syntaxes, + # like old-style Setup files). + _variable_rx = re.compile(r"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") + _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") + _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") + + if vars is None: + vars = {} + done = {} + notdone = {} + + with codecs.open(filename, encoding='utf-8', errors="surrogateescape") as f: + lines = f.readlines() + + for line in lines: + if line.startswith('#') or line.strip() == '': + continue + m = _variable_rx.match(line) + if m: + n, v = m.group(1, 2) + v = v.strip() + # `$$' is a literal `$' in make + tmpv = v.replace('$$', '') + + if "$" in tmpv: + notdone[n] = v + else: + try: + v = int(v) + except ValueError: + # insert literal `$' + done[n] = v.replace('$$', '$') + else: + done[n] = v + + # do variable interpolation here + variables = list(notdone.keys()) + + # Variables with a 'PY_' prefix in the makefile. These need to + # be made available without that prefix through sysconfig. + # Special care is needed to ensure that variable expansion works, even + # if the expansion uses the name without a prefix. + renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') + + while len(variables) > 0: + for name in tuple(variables): + value = notdone[name] + m = _findvar1_rx.search(value) or _findvar2_rx.search(value) + if m is not None: + n = m.group(1) + found = True + if n in done: + item = str(done[n]) + elif n in notdone: + # get it on a subsequent round + found = False + elif n in os.environ: + # do it like make: fall back to environment + item = os.environ[n] + + elif n in renamed_variables: + if (name.startswith('PY_') and + name[3:] in renamed_variables): + item = "" + + elif 'PY_' + n in notdone: + found = False + + else: + item = str(done['PY_' + n]) + + else: + done[n] = item = "" + + if found: + after = value[m.end():] + value = value[:m.start()] + item + after + if "$" in after: + notdone[name] = value + else: + try: + value = int(value) + except ValueError: + done[name] = value.strip() + else: + done[name] = value + variables.remove(name) + + if (name.startswith('PY_') and + name[3:] in renamed_variables): + + name = name[3:] + if name not in done: + done[name] = value + + else: + # bogus variable reference (e.g. "prefix=$/opt/python"); + # just drop it since we can't deal + done[name] = value + variables.remove(name) + + # strip spurious spaces + for k, v in done.items(): + if isinstance(v, str): + done[k] = v.strip() + + # save the results in the global dictionary + vars.update(done) + return vars + + +def get_makefile_filename(): + """Return the path of the Makefile.""" + if _PYTHON_BUILD: + return os.path.join(_PROJECT_BASE, "Makefile") + if hasattr(sys, 'abiflags'): + config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags) + else: + config_dir_name = 'config' + return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile') + + +def _init_posix(vars): + """Initialize the module as appropriate for POSIX systems.""" + # load the installed Makefile: + makefile = get_makefile_filename() + try: + _parse_makefile(makefile, vars) + except IOError as e: + msg = "invalid Python installation: unable to open %s" % makefile + if hasattr(e, "strerror"): + msg = msg + " (%s)" % e.strerror + raise IOError(msg) + # load the installed pyconfig.h: + config_h = get_config_h_filename() + try: + with open(config_h) as f: + parse_config_h(f, vars) + except IOError as e: + msg = "invalid Python installation: unable to open %s" % config_h + if hasattr(e, "strerror"): + msg = msg + " (%s)" % e.strerror + raise IOError(msg) + # On AIX, there are wrong paths to the linker scripts in the Makefile + # -- these paths are relative to the Python source, but when installed + # the scripts are in another directory. + if _PYTHON_BUILD: + vars['LDSHARED'] = vars['BLDSHARED'] + + +def _init_non_posix(vars): + """Initialize the module as appropriate for NT""" + # set basic install directories + vars['LIBDEST'] = get_path('stdlib') + vars['BINLIBDEST'] = get_path('platstdlib') + vars['INCLUDEPY'] = get_path('include') + vars['SO'] = '.pyd' + vars['EXE'] = '.exe' + vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT + vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) + +# +# public APIs +# + + +def parse_config_h(fp, vars=None): + """Parse a config.h-style file. + + A dictionary containing name/value pairs is returned. If an + optional dictionary is passed in as the second argument, it is + used instead of a new dictionary. + """ + if vars is None: + vars = {} + define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") + undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") + + while True: + line = fp.readline() + if not line: + break + m = define_rx.match(line) + if m: + n, v = m.group(1, 2) + try: + v = int(v) + except ValueError: + pass + vars[n] = v + else: + m = undef_rx.match(line) + if m: + vars[m.group(1)] = 0 + return vars + + +def get_config_h_filename(): + """Return the path of pyconfig.h.""" + if _PYTHON_BUILD: + if os.name == "nt": + inc_dir = os.path.join(_PROJECT_BASE, "PC") + else: + inc_dir = _PROJECT_BASE + else: + inc_dir = get_path('platinclude') + return os.path.join(inc_dir, 'pyconfig.h') + + +def get_scheme_names(): + """Return a tuple containing the schemes names.""" + return tuple(sorted(_SCHEMES.sections())) + + +def get_path_names(): + """Return a tuple containing the paths names.""" + # xxx see if we want a static list + return _SCHEMES.options('posix_prefix') + + +def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): + """Return a mapping containing an install scheme. + + ``scheme`` is the install scheme name. If not provided, it will + return the default scheme for the current platform. + """ + _ensure_cfg_read() + if expand: + return _expand_vars(scheme, vars) + else: + return dict(_SCHEMES.items(scheme)) + + +def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): + """Return a path corresponding to the scheme. + + ``scheme`` is the install scheme name. + """ + return get_paths(scheme, vars, expand)[name] + + +def get_config_vars(*args): + """With no arguments, return a dictionary of all configuration + variables relevant for the current platform. + + On Unix, this means every variable defined in Python's installed Makefile; + On Windows and Mac OS it's a much smaller set. + + With arguments, return a list of values that result from looking up + each argument in the configuration variable dictionary. + """ + global _CONFIG_VARS + if _CONFIG_VARS is None: + _CONFIG_VARS = {} + # Normalized versions of prefix and exec_prefix are handy to have; + # in fact, these are the standard versions used most places in the + # distutils2 module. + _CONFIG_VARS['prefix'] = _PREFIX + _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX + _CONFIG_VARS['py_version'] = _PY_VERSION + _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT + _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] + _CONFIG_VARS['base'] = _PREFIX + _CONFIG_VARS['platbase'] = _EXEC_PREFIX + _CONFIG_VARS['projectbase'] = _PROJECT_BASE + try: + _CONFIG_VARS['abiflags'] = sys.abiflags + except AttributeError: + # sys.abiflags may not be defined on all platforms. + _CONFIG_VARS['abiflags'] = '' + + if os.name in ('nt', 'os2'): + _init_non_posix(_CONFIG_VARS) + if os.name == 'posix': + _init_posix(_CONFIG_VARS) + # Setting 'userbase' is done below the call to the + # init function to enable using 'get_config_var' in + # the init-function. + if sys.version >= '2.6': + _CONFIG_VARS['userbase'] = _getuserbase() + + if 'srcdir' not in _CONFIG_VARS: + _CONFIG_VARS['srcdir'] = _PROJECT_BASE + else: + _CONFIG_VARS['srcdir'] = _safe_realpath(_CONFIG_VARS['srcdir']) + + # Convert srcdir into an absolute path if it appears necessary. + # Normally it is relative to the build directory. However, during + # testing, for example, we might be running a non-installed python + # from a different directory. + if _PYTHON_BUILD and os.name == "posix": + base = _PROJECT_BASE + try: + cwd = os.getcwd() + except OSError: + cwd = None + if (not os.path.isabs(_CONFIG_VARS['srcdir']) and + base != cwd): + # srcdir is relative and we are not in the same directory + # as the executable. Assume executable is in the build + # directory and make srcdir absolute. + srcdir = os.path.join(base, _CONFIG_VARS['srcdir']) + _CONFIG_VARS['srcdir'] = os.path.normpath(srcdir) + + if sys.platform == 'darwin': + kernel_version = os.uname()[2] # Kernel version (8.4.3) + major_version = int(kernel_version.split('.')[0]) + + if major_version < 8: + # On Mac OS X before 10.4, check if -arch and -isysroot + # are in CFLAGS or LDFLAGS and remove them if they are. + # This is needed when building extensions on a 10.3 system + # using a universal build of python. + for key in ('LDFLAGS', 'BASECFLAGS', + # a number of derived variables. These need to be + # patched up as well. + 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): + flags = _CONFIG_VARS[key] + flags = re.sub(r'-arch\s+\w+\s', ' ', flags) + flags = re.sub('-isysroot [^ \t]*', ' ', flags) + _CONFIG_VARS[key] = flags + else: + # Allow the user to override the architecture flags using + # an environment variable. + # NOTE: This name was introduced by Apple in OSX 10.5 and + # is used by several scripting languages distributed with + # that OS release. + if 'ARCHFLAGS' in os.environ: + arch = os.environ['ARCHFLAGS'] + for key in ('LDFLAGS', 'BASECFLAGS', + # a number of derived variables. These need to be + # patched up as well. + 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): + + flags = _CONFIG_VARS[key] + flags = re.sub(r'-arch\s+\w+\s', ' ', flags) + flags = flags + ' ' + arch + _CONFIG_VARS[key] = flags + + # If we're on OSX 10.5 or later and the user tries to + # compiles an extension using an SDK that is not present + # on the current machine it is better to not use an SDK + # than to fail. + # + # The major usecase for this is users using a Python.org + # binary installer on OSX 10.6: that installer uses + # the 10.4u SDK, but that SDK is not installed by default + # when you install Xcode. + # + CFLAGS = _CONFIG_VARS.get('CFLAGS', '') + m = re.search(r'-isysroot\s+(\S+)', CFLAGS) + if m is not None: + sdk = m.group(1) + if not os.path.exists(sdk): + for key in ('LDFLAGS', 'BASECFLAGS', + # a number of derived variables. These need to be + # patched up as well. + 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): + + flags = _CONFIG_VARS[key] + flags = re.sub(r'-isysroot\s+\S+(\s|$)', ' ', flags) + _CONFIG_VARS[key] = flags + + if args: + vals = [] + for name in args: + vals.append(_CONFIG_VARS.get(name)) + return vals + else: + return _CONFIG_VARS + + +def get_config_var(name): + """Return the value of a single variable using the dictionary returned by + 'get_config_vars()'. + + Equivalent to get_config_vars().get(name) + """ + return get_config_vars().get(name) + + +def get_platform(): + """Return a string that identifies the current platform. + + This is used mainly to distinguish platform-specific build directories and + platform-specific built distributions. Typically includes the OS name + and version and the architecture (as supplied by 'os.uname()'), + although the exact information included depends on the OS; eg. for IRIX + the architecture isn't particularly important (IRIX only runs on SGI + hardware), but for Linux the kernel version isn't particularly + important. + + Examples of returned values: + linux-i586 + linux-alpha (?) + solaris-2.6-sun4u + irix-5.3 + irix64-6.2 + + Windows will return one of: + win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) + win-ia64 (64bit Windows on Itanium) + win32 (all others - specifically, sys.platform is returned) + + For other non-POSIX platforms, currently just returns 'sys.platform'. + """ + if os.name == 'nt': + # sniff sys.version for architecture. + prefix = " bit (" + i = sys.version.find(prefix) + if i == -1: + return sys.platform + j = sys.version.find(")", i) + look = sys.version[i+len(prefix):j].lower() + if look == 'amd64': + return 'win-amd64' + if look == 'itanium': + return 'win-ia64' + return sys.platform + + if os.name != "posix" or not hasattr(os, 'uname'): + # XXX what about the architecture? NT is Intel or Alpha, + # Mac OS is M68k or PPC, etc. + return sys.platform + + # Try to distinguish various flavours of Unix + osname, host, release, version, machine = os.uname() + + # Convert the OS name to lowercase, remove '/' characters + # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") + osname = osname.lower().replace('/', '') + machine = machine.replace(' ', '_') + machine = machine.replace('/', '-') + + if osname[:5] == "linux": + # At least on Linux/Intel, 'machine' is the processor -- + # i386, etc. + # XXX what about Alpha, SPARC, etc? + return "%s-%s" % (osname, machine) + elif osname[:5] == "sunos": + if release[0] >= "5": # SunOS 5 == Solaris 2 + osname = "solaris" + release = "%d.%s" % (int(release[0]) - 3, release[2:]) + # fall through to standard osname-release-machine representation + elif osname[:4] == "irix": # could be "irix64"! + return "%s-%s" % (osname, release) + elif osname[:3] == "aix": + return "%s-%s.%s" % (osname, version, release) + elif osname[:6] == "cygwin": + osname = "cygwin" + rel_re = re.compile(r'[\d.]+') + m = rel_re.match(release) + if m: + release = m.group() + elif osname[:6] == "darwin": + # + # For our purposes, we'll assume that the system version from + # distutils' perspective is what MACOSX_DEPLOYMENT_TARGET is set + # to. This makes the compatibility story a bit more sane because the + # machine is going to compile and link as if it were + # MACOSX_DEPLOYMENT_TARGET. + cfgvars = get_config_vars() + macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET') + + if True: + # Always calculate the release of the running machine, + # needed to determine if we can build fat binaries or not. + + macrelease = macver + # Get the system version. Reading this plist is a documented + # way to get the system version (see the documentation for + # the Gestalt Manager) + try: + f = open('/System/Library/CoreServices/SystemVersion.plist') + except IOError: + # We're on a plain darwin box, fall back to the default + # behaviour. + pass + else: + try: + m = re.search(r'ProductUserVisibleVersion\s*' + r'(.*?)', f.read()) + finally: + f.close() + if m is not None: + macrelease = '.'.join(m.group(1).split('.')[:2]) + # else: fall back to the default behaviour + + if not macver: + macver = macrelease + + if macver: + release = macver + osname = "macosx" + + if ((macrelease + '.') >= '10.4.' and + '-arch' in get_config_vars().get('CFLAGS', '').strip()): + # The universal build will build fat binaries, but not on + # systems before 10.4 + # + # Try to detect 4-way universal builds, those have machine-type + # 'universal' instead of 'fat'. + + machine = 'fat' + cflags = get_config_vars().get('CFLAGS') + + archs = re.findall(r'-arch\s+(\S+)', cflags) + archs = tuple(sorted(set(archs))) + + if len(archs) == 1: + machine = archs[0] + elif archs == ('i386', 'ppc'): + machine = 'fat' + elif archs == ('i386', 'x86_64'): + machine = 'intel' + elif archs == ('i386', 'ppc', 'x86_64'): + machine = 'fat3' + elif archs == ('ppc64', 'x86_64'): + machine = 'fat64' + elif archs == ('i386', 'ppc', 'ppc64', 'x86_64'): + machine = 'universal' + else: + raise ValueError( + "Don't know machine value for archs=%r" % (archs,)) + + elif machine == 'i386': + # On OSX the machine type returned by uname is always the + # 32-bit variant, even if the executable architecture is + # the 64-bit variant + if sys.maxsize >= 2**32: + machine = 'x86_64' + + elif machine in ('PowerPC', 'Power_Macintosh'): + # Pick a sane name for the PPC architecture. + # See 'i386' case + if sys.maxsize >= 2**32: + machine = 'ppc64' + else: + machine = 'ppc' + + return "%s-%s-%s" % (osname, release, machine) + + +def get_python_version(): + return _PY_VERSION_SHORT + + +def _print_dict(title, data): + for index, (key, value) in enumerate(sorted(data.items())): + if index == 0: + print('%s: ' % (title)) + print('\t%s = "%s"' % (key, value)) + + +def _main(): + """Display all information sysconfig detains.""" + print('Platform: "%s"' % get_platform()) + print('Python version: "%s"' % get_python_version()) + print('Current installation scheme: "%s"' % _get_default_scheme()) + print() + _print_dict('Paths', get_paths()) + print() + _print_dict('Variables', get_config_vars()) + + +if __name__ == '__main__': + _main() diff --git a/venv/Lib/site-packages/distlib/_backport/tarfile.py b/venv/Lib/site-packages/distlib/_backport/tarfile.py new file mode 100644 index 00000000..d66d8566 --- /dev/null +++ b/venv/Lib/site-packages/distlib/_backport/tarfile.py @@ -0,0 +1,2607 @@ +#------------------------------------------------------------------- +# tarfile.py +#------------------------------------------------------------------- +# Copyright (C) 2002 Lars Gustaebel +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# +from __future__ import print_function + +"""Read from and write to tar format archives. +""" + +__version__ = "$Revision$" + +version = "0.9.0" +__author__ = "Lars Gust\u00e4bel (lars@gustaebel.de)" +__date__ = "$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $" +__cvsid__ = "$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $" +__credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend." + +#--------- +# Imports +#--------- +import sys +import os +import stat +import errno +import time +import struct +import copy +import re + +try: + import grp, pwd +except ImportError: + grp = pwd = None + +# os.symlink on Windows prior to 6.0 raises NotImplementedError +symlink_exception = (AttributeError, NotImplementedError) +try: + # WindowsError (1314) will be raised if the caller does not hold the + # SeCreateSymbolicLinkPrivilege privilege + symlink_exception += (WindowsError,) +except NameError: + pass + +# from tarfile import * +__all__ = ["TarFile", "TarInfo", "is_tarfile", "TarError"] + +if sys.version_info[0] < 3: + import __builtin__ as builtins +else: + import builtins + +_open = builtins.open # Since 'open' is TarFile.open + +#--------------------------------------------------------- +# tar constants +#--------------------------------------------------------- +NUL = b"\0" # the null character +BLOCKSIZE = 512 # length of processing blocks +RECORDSIZE = BLOCKSIZE * 20 # length of records +GNU_MAGIC = b"ustar \0" # magic gnu tar string +POSIX_MAGIC = b"ustar\x0000" # magic posix tar string + +LENGTH_NAME = 100 # maximum length of a filename +LENGTH_LINK = 100 # maximum length of a linkname +LENGTH_PREFIX = 155 # maximum length of the prefix field + +REGTYPE = b"0" # regular file +AREGTYPE = b"\0" # regular file +LNKTYPE = b"1" # link (inside tarfile) +SYMTYPE = b"2" # symbolic link +CHRTYPE = b"3" # character special device +BLKTYPE = b"4" # block special device +DIRTYPE = b"5" # directory +FIFOTYPE = b"6" # fifo special device +CONTTYPE = b"7" # contiguous file + +GNUTYPE_LONGNAME = b"L" # GNU tar longname +GNUTYPE_LONGLINK = b"K" # GNU tar longlink +GNUTYPE_SPARSE = b"S" # GNU tar sparse file + +XHDTYPE = b"x" # POSIX.1-2001 extended header +XGLTYPE = b"g" # POSIX.1-2001 global header +SOLARIS_XHDTYPE = b"X" # Solaris extended header + +USTAR_FORMAT = 0 # POSIX.1-1988 (ustar) format +GNU_FORMAT = 1 # GNU tar format +PAX_FORMAT = 2 # POSIX.1-2001 (pax) format +DEFAULT_FORMAT = GNU_FORMAT + +#--------------------------------------------------------- +# tarfile constants +#--------------------------------------------------------- +# File types that tarfile supports: +SUPPORTED_TYPES = (REGTYPE, AREGTYPE, LNKTYPE, + SYMTYPE, DIRTYPE, FIFOTYPE, + CONTTYPE, CHRTYPE, BLKTYPE, + GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, + GNUTYPE_SPARSE) + +# File types that will be treated as a regular file. +REGULAR_TYPES = (REGTYPE, AREGTYPE, + CONTTYPE, GNUTYPE_SPARSE) + +# File types that are part of the GNU tar format. +GNU_TYPES = (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, + GNUTYPE_SPARSE) + +# Fields from a pax header that override a TarInfo attribute. +PAX_FIELDS = ("path", "linkpath", "size", "mtime", + "uid", "gid", "uname", "gname") + +# Fields from a pax header that are affected by hdrcharset. +PAX_NAME_FIELDS = set(("path", "linkpath", "uname", "gname")) + +# Fields in a pax header that are numbers, all other fields +# are treated as strings. +PAX_NUMBER_FIELDS = { + "atime": float, + "ctime": float, + "mtime": float, + "uid": int, + "gid": int, + "size": int +} + +#--------------------------------------------------------- +# Bits used in the mode field, values in octal. +#--------------------------------------------------------- +S_IFLNK = 0o120000 # symbolic link +S_IFREG = 0o100000 # regular file +S_IFBLK = 0o060000 # block device +S_IFDIR = 0o040000 # directory +S_IFCHR = 0o020000 # character device +S_IFIFO = 0o010000 # fifo + +TSUID = 0o4000 # set UID on execution +TSGID = 0o2000 # set GID on execution +TSVTX = 0o1000 # reserved + +TUREAD = 0o400 # read by owner +TUWRITE = 0o200 # write by owner +TUEXEC = 0o100 # execute/search by owner +TGREAD = 0o040 # read by group +TGWRITE = 0o020 # write by group +TGEXEC = 0o010 # execute/search by group +TOREAD = 0o004 # read by other +TOWRITE = 0o002 # write by other +TOEXEC = 0o001 # execute/search by other + +#--------------------------------------------------------- +# initialization +#--------------------------------------------------------- +if os.name in ("nt", "ce"): + ENCODING = "utf-8" +else: + ENCODING = sys.getfilesystemencoding() + +#--------------------------------------------------------- +# Some useful functions +#--------------------------------------------------------- + +def stn(s, length, encoding, errors): + """Convert a string to a null-terminated bytes object. + """ + s = s.encode(encoding, errors) + return s[:length] + (length - len(s)) * NUL + +def nts(s, encoding, errors): + """Convert a null-terminated bytes object to a string. + """ + p = s.find(b"\0") + if p != -1: + s = s[:p] + return s.decode(encoding, errors) + +def nti(s): + """Convert a number field to a python number. + """ + # There are two possible encodings for a number field, see + # itn() below. + if s[0] != chr(0o200): + try: + n = int(nts(s, "ascii", "strict") or "0", 8) + except ValueError: + raise InvalidHeaderError("invalid header") + else: + n = 0 + for i in range(len(s) - 1): + n <<= 8 + n += ord(s[i + 1]) + return n + +def itn(n, digits=8, format=DEFAULT_FORMAT): + """Convert a python number to a number field. + """ + # POSIX 1003.1-1988 requires numbers to be encoded as a string of + # octal digits followed by a null-byte, this allows values up to + # (8**(digits-1))-1. GNU tar allows storing numbers greater than + # that if necessary. A leading 0o200 byte indicates this particular + # encoding, the following digits-1 bytes are a big-endian + # representation. This allows values up to (256**(digits-1))-1. + if 0 <= n < 8 ** (digits - 1): + s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL + else: + if format != GNU_FORMAT or n >= 256 ** (digits - 1): + raise ValueError("overflow in number field") + + if n < 0: + # XXX We mimic GNU tar's behaviour with negative numbers, + # this could raise OverflowError. + n = struct.unpack("L", struct.pack("l", n))[0] + + s = bytearray() + for i in range(digits - 1): + s.insert(0, n & 0o377) + n >>= 8 + s.insert(0, 0o200) + return s + +def calc_chksums(buf): + """Calculate the checksum for a member's header by summing up all + characters except for the chksum field which is treated as if + it was filled with spaces. According to the GNU tar sources, + some tars (Sun and NeXT) calculate chksum with signed char, + which will be different if there are chars in the buffer with + the high bit set. So we calculate two checksums, unsigned and + signed. + """ + unsigned_chksum = 256 + sum(struct.unpack("148B", buf[:148]) + struct.unpack("356B", buf[156:512])) + signed_chksum = 256 + sum(struct.unpack("148b", buf[:148]) + struct.unpack("356b", buf[156:512])) + return unsigned_chksum, signed_chksum + +def copyfileobj(src, dst, length=None): + """Copy length bytes from fileobj src to fileobj dst. + If length is None, copy the entire content. + """ + if length == 0: + return + if length is None: + while True: + buf = src.read(16*1024) + if not buf: + break + dst.write(buf) + return + + BUFSIZE = 16 * 1024 + blocks, remainder = divmod(length, BUFSIZE) + for b in range(blocks): + buf = src.read(BUFSIZE) + if len(buf) < BUFSIZE: + raise IOError("end of file reached") + dst.write(buf) + + if remainder != 0: + buf = src.read(remainder) + if len(buf) < remainder: + raise IOError("end of file reached") + dst.write(buf) + return + +filemode_table = ( + ((S_IFLNK, "l"), + (S_IFREG, "-"), + (S_IFBLK, "b"), + (S_IFDIR, "d"), + (S_IFCHR, "c"), + (S_IFIFO, "p")), + + ((TUREAD, "r"),), + ((TUWRITE, "w"),), + ((TUEXEC|TSUID, "s"), + (TSUID, "S"), + (TUEXEC, "x")), + + ((TGREAD, "r"),), + ((TGWRITE, "w"),), + ((TGEXEC|TSGID, "s"), + (TSGID, "S"), + (TGEXEC, "x")), + + ((TOREAD, "r"),), + ((TOWRITE, "w"),), + ((TOEXEC|TSVTX, "t"), + (TSVTX, "T"), + (TOEXEC, "x")) +) + +def filemode(mode): + """Convert a file's mode to a string of the form + -rwxrwxrwx. + Used by TarFile.list() + """ + perm = [] + for table in filemode_table: + for bit, char in table: + if mode & bit == bit: + perm.append(char) + break + else: + perm.append("-") + return "".join(perm) + +class TarError(Exception): + """Base exception.""" + pass +class ExtractError(TarError): + """General exception for extract errors.""" + pass +class ReadError(TarError): + """Exception for unreadable tar archives.""" + pass +class CompressionError(TarError): + """Exception for unavailable compression methods.""" + pass +class StreamError(TarError): + """Exception for unsupported operations on stream-like TarFiles.""" + pass +class HeaderError(TarError): + """Base exception for header errors.""" + pass +class EmptyHeaderError(HeaderError): + """Exception for empty headers.""" + pass +class TruncatedHeaderError(HeaderError): + """Exception for truncated headers.""" + pass +class EOFHeaderError(HeaderError): + """Exception for end of file headers.""" + pass +class InvalidHeaderError(HeaderError): + """Exception for invalid headers.""" + pass +class SubsequentHeaderError(HeaderError): + """Exception for missing and invalid extended headers.""" + pass + +#--------------------------- +# internal stream interface +#--------------------------- +class _LowLevelFile(object): + """Low-level file object. Supports reading and writing. + It is used instead of a regular file object for streaming + access. + """ + + def __init__(self, name, mode): + mode = { + "r": os.O_RDONLY, + "w": os.O_WRONLY | os.O_CREAT | os.O_TRUNC, + }[mode] + if hasattr(os, "O_BINARY"): + mode |= os.O_BINARY + self.fd = os.open(name, mode, 0o666) + + def close(self): + os.close(self.fd) + + def read(self, size): + return os.read(self.fd, size) + + def write(self, s): + os.write(self.fd, s) + +class _Stream(object): + """Class that serves as an adapter between TarFile and + a stream-like object. The stream-like object only + needs to have a read() or write() method and is accessed + blockwise. Use of gzip or bzip2 compression is possible. + A stream-like object could be for example: sys.stdin, + sys.stdout, a socket, a tape device etc. + + _Stream is intended to be used only internally. + """ + + def __init__(self, name, mode, comptype, fileobj, bufsize): + """Construct a _Stream object. + """ + self._extfileobj = True + if fileobj is None: + fileobj = _LowLevelFile(name, mode) + self._extfileobj = False + + if comptype == '*': + # Enable transparent compression detection for the + # stream interface + fileobj = _StreamProxy(fileobj) + comptype = fileobj.getcomptype() + + self.name = name or "" + self.mode = mode + self.comptype = comptype + self.fileobj = fileobj + self.bufsize = bufsize + self.buf = b"" + self.pos = 0 + self.closed = False + + try: + if comptype == "gz": + try: + import zlib + except ImportError: + raise CompressionError("zlib module is not available") + self.zlib = zlib + self.crc = zlib.crc32(b"") + if mode == "r": + self._init_read_gz() + else: + self._init_write_gz() + + if comptype == "bz2": + try: + import bz2 + except ImportError: + raise CompressionError("bz2 module is not available") + if mode == "r": + self.dbuf = b"" + self.cmp = bz2.BZ2Decompressor() + else: + self.cmp = bz2.BZ2Compressor() + except: + if not self._extfileobj: + self.fileobj.close() + self.closed = True + raise + + def __del__(self): + if hasattr(self, "closed") and not self.closed: + self.close() + + def _init_write_gz(self): + """Initialize for writing with gzip compression. + """ + self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, + -self.zlib.MAX_WBITS, + self.zlib.DEF_MEM_LEVEL, + 0) + timestamp = struct.pack(" self.bufsize: + self.fileobj.write(self.buf[:self.bufsize]) + self.buf = self.buf[self.bufsize:] + + def close(self): + """Close the _Stream object. No operation should be + done on it afterwards. + """ + if self.closed: + return + + if self.mode == "w" and self.comptype != "tar": + self.buf += self.cmp.flush() + + if self.mode == "w" and self.buf: + self.fileobj.write(self.buf) + self.buf = b"" + if self.comptype == "gz": + # The native zlib crc is an unsigned 32-bit integer, but + # the Python wrapper implicitly casts that to a signed C + # long. So, on a 32-bit box self.crc may "look negative", + # while the same crc on a 64-bit box may "look positive". + # To avoid irksome warnings from the `struct` module, force + # it to look positive on all boxes. + self.fileobj.write(struct.pack("= 0: + blocks, remainder = divmod(pos - self.pos, self.bufsize) + for i in range(blocks): + self.read(self.bufsize) + self.read(remainder) + else: + raise StreamError("seeking backwards is not allowed") + return self.pos + + def read(self, size=None): + """Return the next size number of bytes from the stream. + If size is not defined, return all bytes of the stream + up to EOF. + """ + if size is None: + t = [] + while True: + buf = self._read(self.bufsize) + if not buf: + break + t.append(buf) + buf = "".join(t) + else: + buf = self._read(size) + self.pos += len(buf) + return buf + + def _read(self, size): + """Return size bytes from the stream. + """ + if self.comptype == "tar": + return self.__read(size) + + c = len(self.dbuf) + while c < size: + buf = self.__read(self.bufsize) + if not buf: + break + try: + buf = self.cmp.decompress(buf) + except IOError: + raise ReadError("invalid compressed data") + self.dbuf += buf + c += len(buf) + buf = self.dbuf[:size] + self.dbuf = self.dbuf[size:] + return buf + + def __read(self, size): + """Return size bytes from stream. If internal buffer is empty, + read another block from the stream. + """ + c = len(self.buf) + while c < size: + buf = self.fileobj.read(self.bufsize) + if not buf: + break + self.buf += buf + c += len(buf) + buf = self.buf[:size] + self.buf = self.buf[size:] + return buf +# class _Stream + +class _StreamProxy(object): + """Small proxy class that enables transparent compression + detection for the Stream interface (mode 'r|*'). + """ + + def __init__(self, fileobj): + self.fileobj = fileobj + self.buf = self.fileobj.read(BLOCKSIZE) + + def read(self, size): + self.read = self.fileobj.read + return self.buf + + def getcomptype(self): + if self.buf.startswith(b"\037\213\010"): + return "gz" + if self.buf.startswith(b"BZh91"): + return "bz2" + return "tar" + + def close(self): + self.fileobj.close() +# class StreamProxy + +class _BZ2Proxy(object): + """Small proxy class that enables external file object + support for "r:bz2" and "w:bz2" modes. This is actually + a workaround for a limitation in bz2 module's BZ2File + class which (unlike gzip.GzipFile) has no support for + a file object argument. + """ + + blocksize = 16 * 1024 + + def __init__(self, fileobj, mode): + self.fileobj = fileobj + self.mode = mode + self.name = getattr(self.fileobj, "name", None) + self.init() + + def init(self): + import bz2 + self.pos = 0 + if self.mode == "r": + self.bz2obj = bz2.BZ2Decompressor() + self.fileobj.seek(0) + self.buf = b"" + else: + self.bz2obj = bz2.BZ2Compressor() + + def read(self, size): + x = len(self.buf) + while x < size: + raw = self.fileobj.read(self.blocksize) + if not raw: + break + data = self.bz2obj.decompress(raw) + self.buf += data + x += len(data) + + buf = self.buf[:size] + self.buf = self.buf[size:] + self.pos += len(buf) + return buf + + def seek(self, pos): + if pos < self.pos: + self.init() + self.read(pos - self.pos) + + def tell(self): + return self.pos + + def write(self, data): + self.pos += len(data) + raw = self.bz2obj.compress(data) + self.fileobj.write(raw) + + def close(self): + if self.mode == "w": + raw = self.bz2obj.flush() + self.fileobj.write(raw) +# class _BZ2Proxy + +#------------------------ +# Extraction file object +#------------------------ +class _FileInFile(object): + """A thin wrapper around an existing file object that + provides a part of its data as an individual file + object. + """ + + def __init__(self, fileobj, offset, size, blockinfo=None): + self.fileobj = fileobj + self.offset = offset + self.size = size + self.position = 0 + + if blockinfo is None: + blockinfo = [(0, size)] + + # Construct a map with data and zero blocks. + self.map_index = 0 + self.map = [] + lastpos = 0 + realpos = self.offset + for offset, size in blockinfo: + if offset > lastpos: + self.map.append((False, lastpos, offset, None)) + self.map.append((True, offset, offset + size, realpos)) + realpos += size + lastpos = offset + size + if lastpos < self.size: + self.map.append((False, lastpos, self.size, None)) + + def seekable(self): + if not hasattr(self.fileobj, "seekable"): + # XXX gzip.GzipFile and bz2.BZ2File + return True + return self.fileobj.seekable() + + def tell(self): + """Return the current file position. + """ + return self.position + + def seek(self, position): + """Seek to a position in the file. + """ + self.position = position + + def read(self, size=None): + """Read data from the file. + """ + if size is None: + size = self.size - self.position + else: + size = min(size, self.size - self.position) + + buf = b"" + while size > 0: + while True: + data, start, stop, offset = self.map[self.map_index] + if start <= self.position < stop: + break + else: + self.map_index += 1 + if self.map_index == len(self.map): + self.map_index = 0 + length = min(size, stop - self.position) + if data: + self.fileobj.seek(offset + (self.position - start)) + buf += self.fileobj.read(length) + else: + buf += NUL * length + size -= length + self.position += length + return buf +#class _FileInFile + + +class ExFileObject(object): + """File-like object for reading an archive member. + Is returned by TarFile.extractfile(). + """ + blocksize = 1024 + + def __init__(self, tarfile, tarinfo): + self.fileobj = _FileInFile(tarfile.fileobj, + tarinfo.offset_data, + tarinfo.size, + tarinfo.sparse) + self.name = tarinfo.name + self.mode = "r" + self.closed = False + self.size = tarinfo.size + + self.position = 0 + self.buffer = b"" + + def readable(self): + return True + + def writable(self): + return False + + def seekable(self): + return self.fileobj.seekable() + + def read(self, size=None): + """Read at most size bytes from the file. If size is not + present or None, read all data until EOF is reached. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + buf = b"" + if self.buffer: + if size is None: + buf = self.buffer + self.buffer = b"" + else: + buf = self.buffer[:size] + self.buffer = self.buffer[size:] + + if size is None: + buf += self.fileobj.read() + else: + buf += self.fileobj.read(size - len(buf)) + + self.position += len(buf) + return buf + + # XXX TextIOWrapper uses the read1() method. + read1 = read + + def readline(self, size=-1): + """Read one entire line from the file. If size is present + and non-negative, return a string with at most that + size, which may be an incomplete line. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + pos = self.buffer.find(b"\n") + 1 + if pos == 0: + # no newline found. + while True: + buf = self.fileobj.read(self.blocksize) + self.buffer += buf + if not buf or b"\n" in buf: + pos = self.buffer.find(b"\n") + 1 + if pos == 0: + # no newline found. + pos = len(self.buffer) + break + + if size != -1: + pos = min(size, pos) + + buf = self.buffer[:pos] + self.buffer = self.buffer[pos:] + self.position += len(buf) + return buf + + def readlines(self): + """Return a list with all remaining lines. + """ + result = [] + while True: + line = self.readline() + if not line: break + result.append(line) + return result + + def tell(self): + """Return the current file position. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + return self.position + + def seek(self, pos, whence=os.SEEK_SET): + """Seek to a position in the file. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + if whence == os.SEEK_SET: + self.position = min(max(pos, 0), self.size) + elif whence == os.SEEK_CUR: + if pos < 0: + self.position = max(self.position + pos, 0) + else: + self.position = min(self.position + pos, self.size) + elif whence == os.SEEK_END: + self.position = max(min(self.size + pos, self.size), 0) + else: + raise ValueError("Invalid argument") + + self.buffer = b"" + self.fileobj.seek(self.position) + + def close(self): + """Close the file object. + """ + self.closed = True + + def __iter__(self): + """Get an iterator over the file's lines. + """ + while True: + line = self.readline() + if not line: + break + yield line +#class ExFileObject + +#------------------ +# Exported Classes +#------------------ +class TarInfo(object): + """Informational class which holds the details about an + archive member given by a tar header block. + TarInfo objects are returned by TarFile.getmember(), + TarFile.getmembers() and TarFile.gettarinfo() and are + usually created internally. + """ + + __slots__ = ("name", "mode", "uid", "gid", "size", "mtime", + "chksum", "type", "linkname", "uname", "gname", + "devmajor", "devminor", + "offset", "offset_data", "pax_headers", "sparse", + "tarfile", "_sparse_structs", "_link_target") + + def __init__(self, name=""): + """Construct a TarInfo object. name is the optional name + of the member. + """ + self.name = name # member name + self.mode = 0o644 # file permissions + self.uid = 0 # user id + self.gid = 0 # group id + self.size = 0 # file size + self.mtime = 0 # modification time + self.chksum = 0 # header checksum + self.type = REGTYPE # member type + self.linkname = "" # link name + self.uname = "" # user name + self.gname = "" # group name + self.devmajor = 0 # device major number + self.devminor = 0 # device minor number + + self.offset = 0 # the tar header starts here + self.offset_data = 0 # the file's data starts here + + self.sparse = None # sparse member information + self.pax_headers = {} # pax header information + + # In pax headers the "name" and "linkname" field are called + # "path" and "linkpath". + def _getpath(self): + return self.name + def _setpath(self, name): + self.name = name + path = property(_getpath, _setpath) + + def _getlinkpath(self): + return self.linkname + def _setlinkpath(self, linkname): + self.linkname = linkname + linkpath = property(_getlinkpath, _setlinkpath) + + def __repr__(self): + return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self)) + + def get_info(self): + """Return the TarInfo's attributes as a dictionary. + """ + info = { + "name": self.name, + "mode": self.mode & 0o7777, + "uid": self.uid, + "gid": self.gid, + "size": self.size, + "mtime": self.mtime, + "chksum": self.chksum, + "type": self.type, + "linkname": self.linkname, + "uname": self.uname, + "gname": self.gname, + "devmajor": self.devmajor, + "devminor": self.devminor + } + + if info["type"] == DIRTYPE and not info["name"].endswith("/"): + info["name"] += "/" + + return info + + def tobuf(self, format=DEFAULT_FORMAT, encoding=ENCODING, errors="surrogateescape"): + """Return a tar header as a string of 512 byte blocks. + """ + info = self.get_info() + + if format == USTAR_FORMAT: + return self.create_ustar_header(info, encoding, errors) + elif format == GNU_FORMAT: + return self.create_gnu_header(info, encoding, errors) + elif format == PAX_FORMAT: + return self.create_pax_header(info, encoding) + else: + raise ValueError("invalid format") + + def create_ustar_header(self, info, encoding, errors): + """Return the object as a ustar header block. + """ + info["magic"] = POSIX_MAGIC + + if len(info["linkname"]) > LENGTH_LINK: + raise ValueError("linkname is too long") + + if len(info["name"]) > LENGTH_NAME: + info["prefix"], info["name"] = self._posix_split_name(info["name"]) + + return self._create_header(info, USTAR_FORMAT, encoding, errors) + + def create_gnu_header(self, info, encoding, errors): + """Return the object as a GNU header block sequence. + """ + info["magic"] = GNU_MAGIC + + buf = b"" + if len(info["linkname"]) > LENGTH_LINK: + buf += self._create_gnu_long_header(info["linkname"], GNUTYPE_LONGLINK, encoding, errors) + + if len(info["name"]) > LENGTH_NAME: + buf += self._create_gnu_long_header(info["name"], GNUTYPE_LONGNAME, encoding, errors) + + return buf + self._create_header(info, GNU_FORMAT, encoding, errors) + + def create_pax_header(self, info, encoding): + """Return the object as a ustar header block. If it cannot be + represented this way, prepend a pax extended header sequence + with supplement information. + """ + info["magic"] = POSIX_MAGIC + pax_headers = self.pax_headers.copy() + + # Test string fields for values that exceed the field length or cannot + # be represented in ASCII encoding. + for name, hname, length in ( + ("name", "path", LENGTH_NAME), ("linkname", "linkpath", LENGTH_LINK), + ("uname", "uname", 32), ("gname", "gname", 32)): + + if hname in pax_headers: + # The pax header has priority. + continue + + # Try to encode the string as ASCII. + try: + info[name].encode("ascii", "strict") + except UnicodeEncodeError: + pax_headers[hname] = info[name] + continue + + if len(info[name]) > length: + pax_headers[hname] = info[name] + + # Test number fields for values that exceed the field limit or values + # that like to be stored as float. + for name, digits in (("uid", 8), ("gid", 8), ("size", 12), ("mtime", 12)): + if name in pax_headers: + # The pax header has priority. Avoid overflow. + info[name] = 0 + continue + + val = info[name] + if not 0 <= val < 8 ** (digits - 1) or isinstance(val, float): + pax_headers[name] = str(val) + info[name] = 0 + + # Create a pax extended header if necessary. + if pax_headers: + buf = self._create_pax_generic_header(pax_headers, XHDTYPE, encoding) + else: + buf = b"" + + return buf + self._create_header(info, USTAR_FORMAT, "ascii", "replace") + + @classmethod + def create_pax_global_header(cls, pax_headers): + """Return the object as a pax global header block sequence. + """ + return cls._create_pax_generic_header(pax_headers, XGLTYPE, "utf8") + + def _posix_split_name(self, name): + """Split a name longer than 100 chars into a prefix + and a name part. + """ + prefix = name[:LENGTH_PREFIX + 1] + while prefix and prefix[-1] != "/": + prefix = prefix[:-1] + + name = name[len(prefix):] + prefix = prefix[:-1] + + if not prefix or len(name) > LENGTH_NAME: + raise ValueError("name is too long") + return prefix, name + + @staticmethod + def _create_header(info, format, encoding, errors): + """Return a header block. info is a dictionary with file + information, format must be one of the *_FORMAT constants. + """ + parts = [ + stn(info.get("name", ""), 100, encoding, errors), + itn(info.get("mode", 0) & 0o7777, 8, format), + itn(info.get("uid", 0), 8, format), + itn(info.get("gid", 0), 8, format), + itn(info.get("size", 0), 12, format), + itn(info.get("mtime", 0), 12, format), + b" ", # checksum field + info.get("type", REGTYPE), + stn(info.get("linkname", ""), 100, encoding, errors), + info.get("magic", POSIX_MAGIC), + stn(info.get("uname", ""), 32, encoding, errors), + stn(info.get("gname", ""), 32, encoding, errors), + itn(info.get("devmajor", 0), 8, format), + itn(info.get("devminor", 0), 8, format), + stn(info.get("prefix", ""), 155, encoding, errors) + ] + + buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts)) + chksum = calc_chksums(buf[-BLOCKSIZE:])[0] + buf = buf[:-364] + ("%06o\0" % chksum).encode("ascii") + buf[-357:] + return buf + + @staticmethod + def _create_payload(payload): + """Return the string payload filled with zero bytes + up to the next 512 byte border. + """ + blocks, remainder = divmod(len(payload), BLOCKSIZE) + if remainder > 0: + payload += (BLOCKSIZE - remainder) * NUL + return payload + + @classmethod + def _create_gnu_long_header(cls, name, type, encoding, errors): + """Return a GNUTYPE_LONGNAME or GNUTYPE_LONGLINK sequence + for name. + """ + name = name.encode(encoding, errors) + NUL + + info = {} + info["name"] = "././@LongLink" + info["type"] = type + info["size"] = len(name) + info["magic"] = GNU_MAGIC + + # create extended header + name blocks. + return cls._create_header(info, USTAR_FORMAT, encoding, errors) + \ + cls._create_payload(name) + + @classmethod + def _create_pax_generic_header(cls, pax_headers, type, encoding): + """Return a POSIX.1-2008 extended or global header sequence + that contains a list of keyword, value pairs. The values + must be strings. + """ + # Check if one of the fields contains surrogate characters and thereby + # forces hdrcharset=BINARY, see _proc_pax() for more information. + binary = False + for keyword, value in pax_headers.items(): + try: + value.encode("utf8", "strict") + except UnicodeEncodeError: + binary = True + break + + records = b"" + if binary: + # Put the hdrcharset field at the beginning of the header. + records += b"21 hdrcharset=BINARY\n" + + for keyword, value in pax_headers.items(): + keyword = keyword.encode("utf8") + if binary: + # Try to restore the original byte representation of `value'. + # Needless to say, that the encoding must match the string. + value = value.encode(encoding, "surrogateescape") + else: + value = value.encode("utf8") + + l = len(keyword) + len(value) + 3 # ' ' + '=' + '\n' + n = p = 0 + while True: + n = l + len(str(p)) + if n == p: + break + p = n + records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n" + + # We use a hardcoded "././@PaxHeader" name like star does + # instead of the one that POSIX recommends. + info = {} + info["name"] = "././@PaxHeader" + info["type"] = type + info["size"] = len(records) + info["magic"] = POSIX_MAGIC + + # Create pax header + record blocks. + return cls._create_header(info, USTAR_FORMAT, "ascii", "replace") + \ + cls._create_payload(records) + + @classmethod + def frombuf(cls, buf, encoding, errors): + """Construct a TarInfo object from a 512 byte bytes object. + """ + if len(buf) == 0: + raise EmptyHeaderError("empty header") + if len(buf) != BLOCKSIZE: + raise TruncatedHeaderError("truncated header") + if buf.count(NUL) == BLOCKSIZE: + raise EOFHeaderError("end of file header") + + chksum = nti(buf[148:156]) + if chksum not in calc_chksums(buf): + raise InvalidHeaderError("bad checksum") + + obj = cls() + obj.name = nts(buf[0:100], encoding, errors) + obj.mode = nti(buf[100:108]) + obj.uid = nti(buf[108:116]) + obj.gid = nti(buf[116:124]) + obj.size = nti(buf[124:136]) + obj.mtime = nti(buf[136:148]) + obj.chksum = chksum + obj.type = buf[156:157] + obj.linkname = nts(buf[157:257], encoding, errors) + obj.uname = nts(buf[265:297], encoding, errors) + obj.gname = nts(buf[297:329], encoding, errors) + obj.devmajor = nti(buf[329:337]) + obj.devminor = nti(buf[337:345]) + prefix = nts(buf[345:500], encoding, errors) + + # Old V7 tar format represents a directory as a regular + # file with a trailing slash. + if obj.type == AREGTYPE and obj.name.endswith("/"): + obj.type = DIRTYPE + + # The old GNU sparse format occupies some of the unused + # space in the buffer for up to 4 sparse structures. + # Save the them for later processing in _proc_sparse(). + if obj.type == GNUTYPE_SPARSE: + pos = 386 + structs = [] + for i in range(4): + try: + offset = nti(buf[pos:pos + 12]) + numbytes = nti(buf[pos + 12:pos + 24]) + except ValueError: + break + structs.append((offset, numbytes)) + pos += 24 + isextended = bool(buf[482]) + origsize = nti(buf[483:495]) + obj._sparse_structs = (structs, isextended, origsize) + + # Remove redundant slashes from directories. + if obj.isdir(): + obj.name = obj.name.rstrip("/") + + # Reconstruct a ustar longname. + if prefix and obj.type not in GNU_TYPES: + obj.name = prefix + "/" + obj.name + return obj + + @classmethod + def fromtarfile(cls, tarfile): + """Return the next TarInfo object from TarFile object + tarfile. + """ + buf = tarfile.fileobj.read(BLOCKSIZE) + obj = cls.frombuf(buf, tarfile.encoding, tarfile.errors) + obj.offset = tarfile.fileobj.tell() - BLOCKSIZE + return obj._proc_member(tarfile) + + #-------------------------------------------------------------------------- + # The following are methods that are called depending on the type of a + # member. The entry point is _proc_member() which can be overridden in a + # subclass to add custom _proc_*() methods. A _proc_*() method MUST + # implement the following + # operations: + # 1. Set self.offset_data to the position where the data blocks begin, + # if there is data that follows. + # 2. Set tarfile.offset to the position where the next member's header will + # begin. + # 3. Return self or another valid TarInfo object. + def _proc_member(self, tarfile): + """Choose the right processing method depending on + the type and call it. + """ + if self.type in (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK): + return self._proc_gnulong(tarfile) + elif self.type == GNUTYPE_SPARSE: + return self._proc_sparse(tarfile) + elif self.type in (XHDTYPE, XGLTYPE, SOLARIS_XHDTYPE): + return self._proc_pax(tarfile) + else: + return self._proc_builtin(tarfile) + + def _proc_builtin(self, tarfile): + """Process a builtin type or an unknown type which + will be treated as a regular file. + """ + self.offset_data = tarfile.fileobj.tell() + offset = self.offset_data + if self.isreg() or self.type not in SUPPORTED_TYPES: + # Skip the following data blocks. + offset += self._block(self.size) + tarfile.offset = offset + + # Patch the TarInfo object with saved global + # header information. + self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) + + return self + + def _proc_gnulong(self, tarfile): + """Process the blocks that hold a GNU longname + or longlink member. + """ + buf = tarfile.fileobj.read(self._block(self.size)) + + # Fetch the next header and process it. + try: + next = self.fromtarfile(tarfile) + except HeaderError: + raise SubsequentHeaderError("missing or bad subsequent header") + + # Patch the TarInfo object from the next header with + # the longname information. + next.offset = self.offset + if self.type == GNUTYPE_LONGNAME: + next.name = nts(buf, tarfile.encoding, tarfile.errors) + elif self.type == GNUTYPE_LONGLINK: + next.linkname = nts(buf, tarfile.encoding, tarfile.errors) + + return next + + def _proc_sparse(self, tarfile): + """Process a GNU sparse header plus extra headers. + """ + # We already collected some sparse structures in frombuf(). + structs, isextended, origsize = self._sparse_structs + del self._sparse_structs + + # Collect sparse structures from extended header blocks. + while isextended: + buf = tarfile.fileobj.read(BLOCKSIZE) + pos = 0 + for i in range(21): + try: + offset = nti(buf[pos:pos + 12]) + numbytes = nti(buf[pos + 12:pos + 24]) + except ValueError: + break + if offset and numbytes: + structs.append((offset, numbytes)) + pos += 24 + isextended = bool(buf[504]) + self.sparse = structs + + self.offset_data = tarfile.fileobj.tell() + tarfile.offset = self.offset_data + self._block(self.size) + self.size = origsize + return self + + def _proc_pax(self, tarfile): + """Process an extended or global header as described in + POSIX.1-2008. + """ + # Read the header information. + buf = tarfile.fileobj.read(self._block(self.size)) + + # A pax header stores supplemental information for either + # the following file (extended) or all following files + # (global). + if self.type == XGLTYPE: + pax_headers = tarfile.pax_headers + else: + pax_headers = tarfile.pax_headers.copy() + + # Check if the pax header contains a hdrcharset field. This tells us + # the encoding of the path, linkpath, uname and gname fields. Normally, + # these fields are UTF-8 encoded but since POSIX.1-2008 tar + # implementations are allowed to store them as raw binary strings if + # the translation to UTF-8 fails. + match = re.search(br"\d+ hdrcharset=([^\n]+)\n", buf) + if match is not None: + pax_headers["hdrcharset"] = match.group(1).decode("utf8") + + # For the time being, we don't care about anything other than "BINARY". + # The only other value that is currently allowed by the standard is + # "ISO-IR 10646 2000 UTF-8" in other words UTF-8. + hdrcharset = pax_headers.get("hdrcharset") + if hdrcharset == "BINARY": + encoding = tarfile.encoding + else: + encoding = "utf8" + + # Parse pax header information. A record looks like that: + # "%d %s=%s\n" % (length, keyword, value). length is the size + # of the complete record including the length field itself and + # the newline. keyword and value are both UTF-8 encoded strings. + regex = re.compile(br"(\d+) ([^=]+)=") + pos = 0 + while True: + match = regex.match(buf, pos) + if not match: + break + + length, keyword = match.groups() + length = int(length) + value = buf[match.end(2) + 1:match.start(1) + length - 1] + + # Normally, we could just use "utf8" as the encoding and "strict" + # as the error handler, but we better not take the risk. For + # example, GNU tar <= 1.23 is known to store filenames it cannot + # translate to UTF-8 as raw strings (unfortunately without a + # hdrcharset=BINARY header). + # We first try the strict standard encoding, and if that fails we + # fall back on the user's encoding and error handler. + keyword = self._decode_pax_field(keyword, "utf8", "utf8", + tarfile.errors) + if keyword in PAX_NAME_FIELDS: + value = self._decode_pax_field(value, encoding, tarfile.encoding, + tarfile.errors) + else: + value = self._decode_pax_field(value, "utf8", "utf8", + tarfile.errors) + + pax_headers[keyword] = value + pos += length + + # Fetch the next header. + try: + next = self.fromtarfile(tarfile) + except HeaderError: + raise SubsequentHeaderError("missing or bad subsequent header") + + # Process GNU sparse information. + if "GNU.sparse.map" in pax_headers: + # GNU extended sparse format version 0.1. + self._proc_gnusparse_01(next, pax_headers) + + elif "GNU.sparse.size" in pax_headers: + # GNU extended sparse format version 0.0. + self._proc_gnusparse_00(next, pax_headers, buf) + + elif pax_headers.get("GNU.sparse.major") == "1" and pax_headers.get("GNU.sparse.minor") == "0": + # GNU extended sparse format version 1.0. + self._proc_gnusparse_10(next, pax_headers, tarfile) + + if self.type in (XHDTYPE, SOLARIS_XHDTYPE): + # Patch the TarInfo object with the extended header info. + next._apply_pax_info(pax_headers, tarfile.encoding, tarfile.errors) + next.offset = self.offset + + if "size" in pax_headers: + # If the extended header replaces the size field, + # we need to recalculate the offset where the next + # header starts. + offset = next.offset_data + if next.isreg() or next.type not in SUPPORTED_TYPES: + offset += next._block(next.size) + tarfile.offset = offset + + return next + + def _proc_gnusparse_00(self, next, pax_headers, buf): + """Process a GNU tar extended sparse header, version 0.0. + """ + offsets = [] + for match in re.finditer(br"\d+ GNU.sparse.offset=(\d+)\n", buf): + offsets.append(int(match.group(1))) + numbytes = [] + for match in re.finditer(br"\d+ GNU.sparse.numbytes=(\d+)\n", buf): + numbytes.append(int(match.group(1))) + next.sparse = list(zip(offsets, numbytes)) + + def _proc_gnusparse_01(self, next, pax_headers): + """Process a GNU tar extended sparse header, version 0.1. + """ + sparse = [int(x) for x in pax_headers["GNU.sparse.map"].split(",")] + next.sparse = list(zip(sparse[::2], sparse[1::2])) + + def _proc_gnusparse_10(self, next, pax_headers, tarfile): + """Process a GNU tar extended sparse header, version 1.0. + """ + fields = None + sparse = [] + buf = tarfile.fileobj.read(BLOCKSIZE) + fields, buf = buf.split(b"\n", 1) + fields = int(fields) + while len(sparse) < fields * 2: + if b"\n" not in buf: + buf += tarfile.fileobj.read(BLOCKSIZE) + number, buf = buf.split(b"\n", 1) + sparse.append(int(number)) + next.offset_data = tarfile.fileobj.tell() + next.sparse = list(zip(sparse[::2], sparse[1::2])) + + def _apply_pax_info(self, pax_headers, encoding, errors): + """Replace fields with supplemental information from a previous + pax extended or global header. + """ + for keyword, value in pax_headers.items(): + if keyword == "GNU.sparse.name": + setattr(self, "path", value) + elif keyword == "GNU.sparse.size": + setattr(self, "size", int(value)) + elif keyword == "GNU.sparse.realsize": + setattr(self, "size", int(value)) + elif keyword in PAX_FIELDS: + if keyword in PAX_NUMBER_FIELDS: + try: + value = PAX_NUMBER_FIELDS[keyword](value) + except ValueError: + value = 0 + if keyword == "path": + value = value.rstrip("/") + setattr(self, keyword, value) + + self.pax_headers = pax_headers.copy() + + def _decode_pax_field(self, value, encoding, fallback_encoding, fallback_errors): + """Decode a single field from a pax record. + """ + try: + return value.decode(encoding, "strict") + except UnicodeDecodeError: + return value.decode(fallback_encoding, fallback_errors) + + def _block(self, count): + """Round up a byte count by BLOCKSIZE and return it, + e.g. _block(834) => 1024. + """ + blocks, remainder = divmod(count, BLOCKSIZE) + if remainder: + blocks += 1 + return blocks * BLOCKSIZE + + def isreg(self): + return self.type in REGULAR_TYPES + def isfile(self): + return self.isreg() + def isdir(self): + return self.type == DIRTYPE + def issym(self): + return self.type == SYMTYPE + def islnk(self): + return self.type == LNKTYPE + def ischr(self): + return self.type == CHRTYPE + def isblk(self): + return self.type == BLKTYPE + def isfifo(self): + return self.type == FIFOTYPE + def issparse(self): + return self.sparse is not None + def isdev(self): + return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE) +# class TarInfo + +class TarFile(object): + """The TarFile Class provides an interface to tar archives. + """ + + debug = 0 # May be set from 0 (no msgs) to 3 (all msgs) + + dereference = False # If true, add content of linked file to the + # tar file, else the link. + + ignore_zeros = False # If true, skips empty or invalid blocks and + # continues processing. + + errorlevel = 1 # If 0, fatal errors only appear in debug + # messages (if debug >= 0). If > 0, errors + # are passed to the caller as exceptions. + + format = DEFAULT_FORMAT # The format to use when creating an archive. + + encoding = ENCODING # Encoding for 8-bit character strings. + + errors = None # Error handler for unicode conversion. + + tarinfo = TarInfo # The default TarInfo class to use. + + fileobject = ExFileObject # The default ExFileObject class to use. + + def __init__(self, name=None, mode="r", fileobj=None, format=None, + tarinfo=None, dereference=None, ignore_zeros=None, encoding=None, + errors="surrogateescape", pax_headers=None, debug=None, errorlevel=None): + """Open an (uncompressed) tar archive `name'. `mode' is either 'r' to + read from an existing archive, 'a' to append data to an existing + file or 'w' to create a new file overwriting an existing one. `mode' + defaults to 'r'. + If `fileobj' is given, it is used for reading or writing data. If it + can be determined, `mode' is overridden by `fileobj's mode. + `fileobj' is not closed, when TarFile is closed. + """ + if len(mode) > 1 or mode not in "raw": + raise ValueError("mode must be 'r', 'a' or 'w'") + self.mode = mode + self._mode = {"r": "rb", "a": "r+b", "w": "wb"}[mode] + + if not fileobj: + if self.mode == "a" and not os.path.exists(name): + # Create nonexistent files in append mode. + self.mode = "w" + self._mode = "wb" + fileobj = bltn_open(name, self._mode) + self._extfileobj = False + else: + if name is None and hasattr(fileobj, "name"): + name = fileobj.name + if hasattr(fileobj, "mode"): + self._mode = fileobj.mode + self._extfileobj = True + self.name = os.path.abspath(name) if name else None + self.fileobj = fileobj + + # Init attributes. + if format is not None: + self.format = format + if tarinfo is not None: + self.tarinfo = tarinfo + if dereference is not None: + self.dereference = dereference + if ignore_zeros is not None: + self.ignore_zeros = ignore_zeros + if encoding is not None: + self.encoding = encoding + self.errors = errors + + if pax_headers is not None and self.format == PAX_FORMAT: + self.pax_headers = pax_headers + else: + self.pax_headers = {} + + if debug is not None: + self.debug = debug + if errorlevel is not None: + self.errorlevel = errorlevel + + # Init datastructures. + self.closed = False + self.members = [] # list of members as TarInfo objects + self._loaded = False # flag if all members have been read + self.offset = self.fileobj.tell() + # current position in the archive file + self.inodes = {} # dictionary caching the inodes of + # archive members already added + + try: + if self.mode == "r": + self.firstmember = None + self.firstmember = self.next() + + if self.mode == "a": + # Move to the end of the archive, + # before the first empty block. + while True: + self.fileobj.seek(self.offset) + try: + tarinfo = self.tarinfo.fromtarfile(self) + self.members.append(tarinfo) + except EOFHeaderError: + self.fileobj.seek(self.offset) + break + except HeaderError as e: + raise ReadError(str(e)) + + if self.mode in "aw": + self._loaded = True + + if self.pax_headers: + buf = self.tarinfo.create_pax_global_header(self.pax_headers.copy()) + self.fileobj.write(buf) + self.offset += len(buf) + except: + if not self._extfileobj: + self.fileobj.close() + self.closed = True + raise + + #-------------------------------------------------------------------------- + # Below are the classmethods which act as alternate constructors to the + # TarFile class. The open() method is the only one that is needed for + # public use; it is the "super"-constructor and is able to select an + # adequate "sub"-constructor for a particular compression using the mapping + # from OPEN_METH. + # + # This concept allows one to subclass TarFile without losing the comfort of + # the super-constructor. A sub-constructor is registered and made available + # by adding it to the mapping in OPEN_METH. + + @classmethod + def open(cls, name=None, mode="r", fileobj=None, bufsize=RECORDSIZE, **kwargs): + """Open a tar archive for reading, writing or appending. Return + an appropriate TarFile class. + + mode: + 'r' or 'r:*' open for reading with transparent compression + 'r:' open for reading exclusively uncompressed + 'r:gz' open for reading with gzip compression + 'r:bz2' open for reading with bzip2 compression + 'a' or 'a:' open for appending, creating the file if necessary + 'w' or 'w:' open for writing without compression + 'w:gz' open for writing with gzip compression + 'w:bz2' open for writing with bzip2 compression + + 'r|*' open a stream of tar blocks with transparent compression + 'r|' open an uncompressed stream of tar blocks for reading + 'r|gz' open a gzip compressed stream of tar blocks + 'r|bz2' open a bzip2 compressed stream of tar blocks + 'w|' open an uncompressed stream for writing + 'w|gz' open a gzip compressed stream for writing + 'w|bz2' open a bzip2 compressed stream for writing + """ + + if not name and not fileobj: + raise ValueError("nothing to open") + + if mode in ("r", "r:*"): + # Find out which *open() is appropriate for opening the file. + for comptype in cls.OPEN_METH: + func = getattr(cls, cls.OPEN_METH[comptype]) + if fileobj is not None: + saved_pos = fileobj.tell() + try: + return func(name, "r", fileobj, **kwargs) + except (ReadError, CompressionError) as e: + if fileobj is not None: + fileobj.seek(saved_pos) + continue + raise ReadError("file could not be opened successfully") + + elif ":" in mode: + filemode, comptype = mode.split(":", 1) + filemode = filemode or "r" + comptype = comptype or "tar" + + # Select the *open() function according to + # given compression. + if comptype in cls.OPEN_METH: + func = getattr(cls, cls.OPEN_METH[comptype]) + else: + raise CompressionError("unknown compression type %r" % comptype) + return func(name, filemode, fileobj, **kwargs) + + elif "|" in mode: + filemode, comptype = mode.split("|", 1) + filemode = filemode or "r" + comptype = comptype or "tar" + + if filemode not in "rw": + raise ValueError("mode must be 'r' or 'w'") + + stream = _Stream(name, filemode, comptype, fileobj, bufsize) + try: + t = cls(name, filemode, stream, **kwargs) + except: + stream.close() + raise + t._extfileobj = False + return t + + elif mode in "aw": + return cls.taropen(name, mode, fileobj, **kwargs) + + raise ValueError("undiscernible mode") + + @classmethod + def taropen(cls, name, mode="r", fileobj=None, **kwargs): + """Open uncompressed tar archive name for reading or writing. + """ + if len(mode) > 1 or mode not in "raw": + raise ValueError("mode must be 'r', 'a' or 'w'") + return cls(name, mode, fileobj, **kwargs) + + @classmethod + def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): + """Open gzip compressed tar archive name for reading or writing. + Appending is not allowed. + """ + if len(mode) > 1 or mode not in "rw": + raise ValueError("mode must be 'r' or 'w'") + + try: + import gzip + gzip.GzipFile + except (ImportError, AttributeError): + raise CompressionError("gzip module is not available") + + extfileobj = fileobj is not None + try: + fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj) + t = cls.taropen(name, mode, fileobj, **kwargs) + except IOError: + if not extfileobj and fileobj is not None: + fileobj.close() + if fileobj is None: + raise + raise ReadError("not a gzip file") + except: + if not extfileobj and fileobj is not None: + fileobj.close() + raise + t._extfileobj = extfileobj + return t + + @classmethod + def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): + """Open bzip2 compressed tar archive name for reading or writing. + Appending is not allowed. + """ + if len(mode) > 1 or mode not in "rw": + raise ValueError("mode must be 'r' or 'w'.") + + try: + import bz2 + except ImportError: + raise CompressionError("bz2 module is not available") + + if fileobj is not None: + fileobj = _BZ2Proxy(fileobj, mode) + else: + fileobj = bz2.BZ2File(name, mode, compresslevel=compresslevel) + + try: + t = cls.taropen(name, mode, fileobj, **kwargs) + except (IOError, EOFError): + fileobj.close() + raise ReadError("not a bzip2 file") + t._extfileobj = False + return t + + # All *open() methods are registered here. + OPEN_METH = { + "tar": "taropen", # uncompressed tar + "gz": "gzopen", # gzip compressed tar + "bz2": "bz2open" # bzip2 compressed tar + } + + #-------------------------------------------------------------------------- + # The public methods which TarFile provides: + + def close(self): + """Close the TarFile. In write-mode, two finishing zero blocks are + appended to the archive. + """ + if self.closed: + return + + if self.mode in "aw": + self.fileobj.write(NUL * (BLOCKSIZE * 2)) + self.offset += (BLOCKSIZE * 2) + # fill up the end with zero-blocks + # (like option -b20 for tar does) + blocks, remainder = divmod(self.offset, RECORDSIZE) + if remainder > 0: + self.fileobj.write(NUL * (RECORDSIZE - remainder)) + + if not self._extfileobj: + self.fileobj.close() + self.closed = True + + def getmember(self, name): + """Return a TarInfo object for member `name'. If `name' can not be + found in the archive, KeyError is raised. If a member occurs more + than once in the archive, its last occurrence is assumed to be the + most up-to-date version. + """ + tarinfo = self._getmember(name) + if tarinfo is None: + raise KeyError("filename %r not found" % name) + return tarinfo + + def getmembers(self): + """Return the members of the archive as a list of TarInfo objects. The + list has the same order as the members in the archive. + """ + self._check() + if not self._loaded: # if we want to obtain a list of + self._load() # all members, we first have to + # scan the whole archive. + return self.members + + def getnames(self): + """Return the members of the archive as a list of their names. It has + the same order as the list returned by getmembers(). + """ + return [tarinfo.name for tarinfo in self.getmembers()] + + def gettarinfo(self, name=None, arcname=None, fileobj=None): + """Create a TarInfo object for either the file `name' or the file + object `fileobj' (using os.fstat on its file descriptor). You can + modify some of the TarInfo's attributes before you add it using + addfile(). If given, `arcname' specifies an alternative name for the + file in the archive. + """ + self._check("aw") + + # When fileobj is given, replace name by + # fileobj's real name. + if fileobj is not None: + name = fileobj.name + + # Building the name of the member in the archive. + # Backward slashes are converted to forward slashes, + # Absolute paths are turned to relative paths. + if arcname is None: + arcname = name + drv, arcname = os.path.splitdrive(arcname) + arcname = arcname.replace(os.sep, "/") + arcname = arcname.lstrip("/") + + # Now, fill the TarInfo object with + # information specific for the file. + tarinfo = self.tarinfo() + tarinfo.tarfile = self + + # Use os.stat or os.lstat, depending on platform + # and if symlinks shall be resolved. + if fileobj is None: + if hasattr(os, "lstat") and not self.dereference: + statres = os.lstat(name) + else: + statres = os.stat(name) + else: + statres = os.fstat(fileobj.fileno()) + linkname = "" + + stmd = statres.st_mode + if stat.S_ISREG(stmd): + inode = (statres.st_ino, statres.st_dev) + if not self.dereference and statres.st_nlink > 1 and \ + inode in self.inodes and arcname != self.inodes[inode]: + # Is it a hardlink to an already + # archived file? + type = LNKTYPE + linkname = self.inodes[inode] + else: + # The inode is added only if its valid. + # For win32 it is always 0. + type = REGTYPE + if inode[0]: + self.inodes[inode] = arcname + elif stat.S_ISDIR(stmd): + type = DIRTYPE + elif stat.S_ISFIFO(stmd): + type = FIFOTYPE + elif stat.S_ISLNK(stmd): + type = SYMTYPE + linkname = os.readlink(name) + elif stat.S_ISCHR(stmd): + type = CHRTYPE + elif stat.S_ISBLK(stmd): + type = BLKTYPE + else: + return None + + # Fill the TarInfo object with all + # information we can get. + tarinfo.name = arcname + tarinfo.mode = stmd + tarinfo.uid = statres.st_uid + tarinfo.gid = statres.st_gid + if type == REGTYPE: + tarinfo.size = statres.st_size + else: + tarinfo.size = 0 + tarinfo.mtime = statres.st_mtime + tarinfo.type = type + tarinfo.linkname = linkname + if pwd: + try: + tarinfo.uname = pwd.getpwuid(tarinfo.uid)[0] + except KeyError: + pass + if grp: + try: + tarinfo.gname = grp.getgrgid(tarinfo.gid)[0] + except KeyError: + pass + + if type in (CHRTYPE, BLKTYPE): + if hasattr(os, "major") and hasattr(os, "minor"): + tarinfo.devmajor = os.major(statres.st_rdev) + tarinfo.devminor = os.minor(statres.st_rdev) + return tarinfo + + def list(self, verbose=True): + """Print a table of contents to sys.stdout. If `verbose' is False, only + the names of the members are printed. If it is True, an `ls -l'-like + output is produced. + """ + self._check() + + for tarinfo in self: + if verbose: + print(filemode(tarinfo.mode), end=' ') + print("%s/%s" % (tarinfo.uname or tarinfo.uid, + tarinfo.gname or tarinfo.gid), end=' ') + if tarinfo.ischr() or tarinfo.isblk(): + print("%10s" % ("%d,%d" \ + % (tarinfo.devmajor, tarinfo.devminor)), end=' ') + else: + print("%10d" % tarinfo.size, end=' ') + print("%d-%02d-%02d %02d:%02d:%02d" \ + % time.localtime(tarinfo.mtime)[:6], end=' ') + + print(tarinfo.name + ("/" if tarinfo.isdir() else ""), end=' ') + + if verbose: + if tarinfo.issym(): + print("->", tarinfo.linkname, end=' ') + if tarinfo.islnk(): + print("link to", tarinfo.linkname, end=' ') + print() + + def add(self, name, arcname=None, recursive=True, exclude=None, filter=None): + """Add the file `name' to the archive. `name' may be any type of file + (directory, fifo, symbolic link, etc.). If given, `arcname' + specifies an alternative name for the file in the archive. + Directories are added recursively by default. This can be avoided by + setting `recursive' to False. `exclude' is a function that should + return True for each filename to be excluded. `filter' is a function + that expects a TarInfo object argument and returns the changed + TarInfo object, if it returns None the TarInfo object will be + excluded from the archive. + """ + self._check("aw") + + if arcname is None: + arcname = name + + # Exclude pathnames. + if exclude is not None: + import warnings + warnings.warn("use the filter argument instead", + DeprecationWarning, 2) + if exclude(name): + self._dbg(2, "tarfile: Excluded %r" % name) + return + + # Skip if somebody tries to archive the archive... + if self.name is not None and os.path.abspath(name) == self.name: + self._dbg(2, "tarfile: Skipped %r" % name) + return + + self._dbg(1, name) + + # Create a TarInfo object from the file. + tarinfo = self.gettarinfo(name, arcname) + + if tarinfo is None: + self._dbg(1, "tarfile: Unsupported type %r" % name) + return + + # Change or exclude the TarInfo object. + if filter is not None: + tarinfo = filter(tarinfo) + if tarinfo is None: + self._dbg(2, "tarfile: Excluded %r" % name) + return + + # Append the tar header and data to the archive. + if tarinfo.isreg(): + f = bltn_open(name, "rb") + self.addfile(tarinfo, f) + f.close() + + elif tarinfo.isdir(): + self.addfile(tarinfo) + if recursive: + for f in os.listdir(name): + self.add(os.path.join(name, f), os.path.join(arcname, f), + recursive, exclude, filter=filter) + + else: + self.addfile(tarinfo) + + def addfile(self, tarinfo, fileobj=None): + """Add the TarInfo object `tarinfo' to the archive. If `fileobj' is + given, tarinfo.size bytes are read from it and added to the archive. + You can create TarInfo objects using gettarinfo(). + On Windows platforms, `fileobj' should always be opened with mode + 'rb' to avoid irritation about the file size. + """ + self._check("aw") + + tarinfo = copy.copy(tarinfo) + + buf = tarinfo.tobuf(self.format, self.encoding, self.errors) + self.fileobj.write(buf) + self.offset += len(buf) + + # If there's data to follow, append it. + if fileobj is not None: + copyfileobj(fileobj, self.fileobj, tarinfo.size) + blocks, remainder = divmod(tarinfo.size, BLOCKSIZE) + if remainder > 0: + self.fileobj.write(NUL * (BLOCKSIZE - remainder)) + blocks += 1 + self.offset += blocks * BLOCKSIZE + + self.members.append(tarinfo) + + def extractall(self, path=".", members=None): + """Extract all members from the archive to the current working + directory and set owner, modification time and permissions on + directories afterwards. `path' specifies a different directory + to extract to. `members' is optional and must be a subset of the + list returned by getmembers(). + """ + directories = [] + + if members is None: + members = self + + for tarinfo in members: + if tarinfo.isdir(): + # Extract directories with a safe mode. + directories.append(tarinfo) + tarinfo = copy.copy(tarinfo) + tarinfo.mode = 0o700 + # Do not set_attrs directories, as we will do that further down + self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) + + # Reverse sort directories. + directories.sort(key=lambda a: a.name) + directories.reverse() + + # Set correct owner, mtime and filemode on directories. + for tarinfo in directories: + dirpath = os.path.join(path, tarinfo.name) + try: + self.chown(tarinfo, dirpath) + self.utime(tarinfo, dirpath) + self.chmod(tarinfo, dirpath) + except ExtractError as e: + if self.errorlevel > 1: + raise + else: + self._dbg(1, "tarfile: %s" % e) + + def extract(self, member, path="", set_attrs=True): + """Extract a member from the archive to the current working directory, + using its full name. Its file information is extracted as accurately + as possible. `member' may be a filename or a TarInfo object. You can + specify a different directory using `path'. File attributes (owner, + mtime, mode) are set unless `set_attrs' is False. + """ + self._check("r") + + if isinstance(member, str): + tarinfo = self.getmember(member) + else: + tarinfo = member + + # Prepare the link target for makelink(). + if tarinfo.islnk(): + tarinfo._link_target = os.path.join(path, tarinfo.linkname) + + try: + self._extract_member(tarinfo, os.path.join(path, tarinfo.name), + set_attrs=set_attrs) + except EnvironmentError as e: + if self.errorlevel > 0: + raise + else: + if e.filename is None: + self._dbg(1, "tarfile: %s" % e.strerror) + else: + self._dbg(1, "tarfile: %s %r" % (e.strerror, e.filename)) + except ExtractError as e: + if self.errorlevel > 1: + raise + else: + self._dbg(1, "tarfile: %s" % e) + + def extractfile(self, member): + """Extract a member from the archive as a file object. `member' may be + a filename or a TarInfo object. If `member' is a regular file, a + file-like object is returned. If `member' is a link, a file-like + object is constructed from the link's target. If `member' is none of + the above, None is returned. + The file-like object is read-only and provides the following + methods: read(), readline(), readlines(), seek() and tell() + """ + self._check("r") + + if isinstance(member, str): + tarinfo = self.getmember(member) + else: + tarinfo = member + + if tarinfo.isreg(): + return self.fileobject(self, tarinfo) + + elif tarinfo.type not in SUPPORTED_TYPES: + # If a member's type is unknown, it is treated as a + # regular file. + return self.fileobject(self, tarinfo) + + elif tarinfo.islnk() or tarinfo.issym(): + if isinstance(self.fileobj, _Stream): + # A small but ugly workaround for the case that someone tries + # to extract a (sym)link as a file-object from a non-seekable + # stream of tar blocks. + raise StreamError("cannot extract (sym)link as file object") + else: + # A (sym)link's file object is its target's file object. + return self.extractfile(self._find_link_target(tarinfo)) + else: + # If there's no data associated with the member (directory, chrdev, + # blkdev, etc.), return None instead of a file object. + return None + + def _extract_member(self, tarinfo, targetpath, set_attrs=True): + """Extract the TarInfo object tarinfo to a physical + file called targetpath. + """ + # Fetch the TarInfo object for the given name + # and build the destination pathname, replacing + # forward slashes to platform specific separators. + targetpath = targetpath.rstrip("/") + targetpath = targetpath.replace("/", os.sep) + + # Create all upper directories. + upperdirs = os.path.dirname(targetpath) + if upperdirs and not os.path.exists(upperdirs): + # Create directories that are not part of the archive with + # default permissions. + os.makedirs(upperdirs) + + if tarinfo.islnk() or tarinfo.issym(): + self._dbg(1, "%s -> %s" % (tarinfo.name, tarinfo.linkname)) + else: + self._dbg(1, tarinfo.name) + + if tarinfo.isreg(): + self.makefile(tarinfo, targetpath) + elif tarinfo.isdir(): + self.makedir(tarinfo, targetpath) + elif tarinfo.isfifo(): + self.makefifo(tarinfo, targetpath) + elif tarinfo.ischr() or tarinfo.isblk(): + self.makedev(tarinfo, targetpath) + elif tarinfo.islnk() or tarinfo.issym(): + self.makelink(tarinfo, targetpath) + elif tarinfo.type not in SUPPORTED_TYPES: + self.makeunknown(tarinfo, targetpath) + else: + self.makefile(tarinfo, targetpath) + + if set_attrs: + self.chown(tarinfo, targetpath) + if not tarinfo.issym(): + self.chmod(tarinfo, targetpath) + self.utime(tarinfo, targetpath) + + #-------------------------------------------------------------------------- + # Below are the different file methods. They are called via + # _extract_member() when extract() is called. They can be replaced in a + # subclass to implement other functionality. + + def makedir(self, tarinfo, targetpath): + """Make a directory called targetpath. + """ + try: + # Use a safe mode for the directory, the real mode is set + # later in _extract_member(). + os.mkdir(targetpath, 0o700) + except EnvironmentError as e: + if e.errno != errno.EEXIST: + raise + + def makefile(self, tarinfo, targetpath): + """Make a file called targetpath. + """ + source = self.fileobj + source.seek(tarinfo.offset_data) + target = bltn_open(targetpath, "wb") + if tarinfo.sparse is not None: + for offset, size in tarinfo.sparse: + target.seek(offset) + copyfileobj(source, target, size) + else: + copyfileobj(source, target, tarinfo.size) + target.seek(tarinfo.size) + target.truncate() + target.close() + + def makeunknown(self, tarinfo, targetpath): + """Make a file from a TarInfo object with an unknown type + at targetpath. + """ + self.makefile(tarinfo, targetpath) + self._dbg(1, "tarfile: Unknown file type %r, " \ + "extracted as regular file." % tarinfo.type) + + def makefifo(self, tarinfo, targetpath): + """Make a fifo called targetpath. + """ + if hasattr(os, "mkfifo"): + os.mkfifo(targetpath) + else: + raise ExtractError("fifo not supported by system") + + def makedev(self, tarinfo, targetpath): + """Make a character or block device called targetpath. + """ + if not hasattr(os, "mknod") or not hasattr(os, "makedev"): + raise ExtractError("special devices not supported by system") + + mode = tarinfo.mode + if tarinfo.isblk(): + mode |= stat.S_IFBLK + else: + mode |= stat.S_IFCHR + + os.mknod(targetpath, mode, + os.makedev(tarinfo.devmajor, tarinfo.devminor)) + + def makelink(self, tarinfo, targetpath): + """Make a (symbolic) link called targetpath. If it cannot be created + (platform limitation), we try to make a copy of the referenced file + instead of a link. + """ + try: + # For systems that support symbolic and hard links. + if tarinfo.issym(): + os.symlink(tarinfo.linkname, targetpath) + else: + # See extract(). + if os.path.exists(tarinfo._link_target): + os.link(tarinfo._link_target, targetpath) + else: + self._extract_member(self._find_link_target(tarinfo), + targetpath) + except symlink_exception: + if tarinfo.issym(): + linkpath = os.path.join(os.path.dirname(tarinfo.name), + tarinfo.linkname) + else: + linkpath = tarinfo.linkname + else: + try: + self._extract_member(self._find_link_target(tarinfo), + targetpath) + except KeyError: + raise ExtractError("unable to resolve link inside archive") + + def chown(self, tarinfo, targetpath): + """Set owner of targetpath according to tarinfo. + """ + if pwd and hasattr(os, "geteuid") and os.geteuid() == 0: + # We have to be root to do so. + try: + g = grp.getgrnam(tarinfo.gname)[2] + except KeyError: + g = tarinfo.gid + try: + u = pwd.getpwnam(tarinfo.uname)[2] + except KeyError: + u = tarinfo.uid + try: + if tarinfo.issym() and hasattr(os, "lchown"): + os.lchown(targetpath, u, g) + else: + if sys.platform != "os2emx": + os.chown(targetpath, u, g) + except EnvironmentError as e: + raise ExtractError("could not change owner") + + def chmod(self, tarinfo, targetpath): + """Set file permissions of targetpath according to tarinfo. + """ + if hasattr(os, 'chmod'): + try: + os.chmod(targetpath, tarinfo.mode) + except EnvironmentError as e: + raise ExtractError("could not change mode") + + def utime(self, tarinfo, targetpath): + """Set modification time of targetpath according to tarinfo. + """ + if not hasattr(os, 'utime'): + return + try: + os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime)) + except EnvironmentError as e: + raise ExtractError("could not change modification time") + + #-------------------------------------------------------------------------- + def next(self): + """Return the next member of the archive as a TarInfo object, when + TarFile is opened for reading. Return None if there is no more + available. + """ + self._check("ra") + if self.firstmember is not None: + m = self.firstmember + self.firstmember = None + return m + + # Read the next block. + self.fileobj.seek(self.offset) + tarinfo = None + while True: + try: + tarinfo = self.tarinfo.fromtarfile(self) + except EOFHeaderError as e: + if self.ignore_zeros: + self._dbg(2, "0x%X: %s" % (self.offset, e)) + self.offset += BLOCKSIZE + continue + except InvalidHeaderError as e: + if self.ignore_zeros: + self._dbg(2, "0x%X: %s" % (self.offset, e)) + self.offset += BLOCKSIZE + continue + elif self.offset == 0: + raise ReadError(str(e)) + except EmptyHeaderError: + if self.offset == 0: + raise ReadError("empty file") + except TruncatedHeaderError as e: + if self.offset == 0: + raise ReadError(str(e)) + except SubsequentHeaderError as e: + raise ReadError(str(e)) + break + + if tarinfo is not None: + self.members.append(tarinfo) + else: + self._loaded = True + + return tarinfo + + #-------------------------------------------------------------------------- + # Little helper methods: + + def _getmember(self, name, tarinfo=None, normalize=False): + """Find an archive member by name from bottom to top. + If tarinfo is given, it is used as the starting point. + """ + # Ensure that all members have been loaded. + members = self.getmembers() + + # Limit the member search list up to tarinfo. + if tarinfo is not None: + members = members[:members.index(tarinfo)] + + if normalize: + name = os.path.normpath(name) + + for member in reversed(members): + if normalize: + member_name = os.path.normpath(member.name) + else: + member_name = member.name + + if name == member_name: + return member + + def _load(self): + """Read through the entire archive file and look for readable + members. + """ + while True: + tarinfo = self.next() + if tarinfo is None: + break + self._loaded = True + + def _check(self, mode=None): + """Check if TarFile is still open, and if the operation's mode + corresponds to TarFile's mode. + """ + if self.closed: + raise IOError("%s is closed" % self.__class__.__name__) + if mode is not None and self.mode not in mode: + raise IOError("bad operation for mode %r" % self.mode) + + def _find_link_target(self, tarinfo): + """Find the target member of a symlink or hardlink member in the + archive. + """ + if tarinfo.issym(): + # Always search the entire archive. + linkname = os.path.dirname(tarinfo.name) + "/" + tarinfo.linkname + limit = None + else: + # Search the archive before the link, because a hard link is + # just a reference to an already archived file. + linkname = tarinfo.linkname + limit = tarinfo + + member = self._getmember(linkname, tarinfo=limit, normalize=True) + if member is None: + raise KeyError("linkname %r not found" % linkname) + return member + + def __iter__(self): + """Provide an iterator object. + """ + if self._loaded: + return iter(self.members) + else: + return TarIter(self) + + def _dbg(self, level, msg): + """Write debugging output to sys.stderr. + """ + if level <= self.debug: + print(msg, file=sys.stderr) + + def __enter__(self): + self._check() + return self + + def __exit__(self, type, value, traceback): + if type is None: + self.close() + else: + # An exception occurred. We must not call close() because + # it would try to write end-of-archive blocks and padding. + if not self._extfileobj: + self.fileobj.close() + self.closed = True +# class TarFile + +class TarIter(object): + """Iterator Class. + + for tarinfo in TarFile(...): + suite... + """ + + def __init__(self, tarfile): + """Construct a TarIter object. + """ + self.tarfile = tarfile + self.index = 0 + def __iter__(self): + """Return iterator object. + """ + return self + + def __next__(self): + """Return the next item using TarFile's next() method. + When all members have been read, set TarFile as _loaded. + """ + # Fix for SF #1100429: Under rare circumstances it can + # happen that getmembers() is called during iteration, + # which will cause TarIter to stop prematurely. + if not self.tarfile._loaded: + tarinfo = self.tarfile.next() + if not tarinfo: + self.tarfile._loaded = True + raise StopIteration + else: + try: + tarinfo = self.tarfile.members[self.index] + except IndexError: + raise StopIteration + self.index += 1 + return tarinfo + + next = __next__ # for Python 2.x + +#-------------------- +# exported functions +#-------------------- +def is_tarfile(name): + """Return True if name points to a tar archive that we + are able to handle, else return False. + """ + try: + t = open(name) + t.close() + return True + except TarError: + return False + +bltn_open = open +open = TarFile.open diff --git a/venv/Lib/site-packages/distlib/compat.py b/venv/Lib/site-packages/distlib/compat.py new file mode 100644 index 00000000..c316fd97 --- /dev/null +++ b/venv/Lib/site-packages/distlib/compat.py @@ -0,0 +1,1120 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from __future__ import absolute_import + +import os +import re +import sys + +try: + import ssl +except ImportError: # pragma: no cover + ssl = None + +if sys.version_info[0] < 3: # pragma: no cover + from StringIO import StringIO + string_types = basestring, + text_type = unicode + from types import FileType as file_type + import __builtin__ as builtins + import ConfigParser as configparser + from ._backport import shutil + from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit + from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, + pathname2url, ContentTooShortError, splittype) + + def quote(s): + if isinstance(s, unicode): + s = s.encode('utf-8') + return _quote(s) + + import urllib2 + from urllib2 import (Request, urlopen, URLError, HTTPError, + HTTPBasicAuthHandler, HTTPPasswordMgr, + HTTPHandler, HTTPRedirectHandler, + build_opener) + if ssl: + from urllib2 import HTTPSHandler + import httplib + import xmlrpclib + import Queue as queue + from HTMLParser import HTMLParser + import htmlentitydefs + raw_input = raw_input + from itertools import ifilter as filter + from itertools import ifilterfalse as filterfalse + + _userprog = None + def splituser(host): + """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" + global _userprog + if _userprog is None: + import re + _userprog = re.compile('^(.*)@(.*)$') + + match = _userprog.match(host) + if match: return match.group(1, 2) + return None, host + +else: # pragma: no cover + from io import StringIO + string_types = str, + text_type = str + from io import TextIOWrapper as file_type + import builtins + import configparser + import shutil + from urllib.parse import (urlparse, urlunparse, urljoin, splituser, quote, + unquote, urlsplit, urlunsplit, splittype) + from urllib.request import (urlopen, urlretrieve, Request, url2pathname, + pathname2url, + HTTPBasicAuthHandler, HTTPPasswordMgr, + HTTPHandler, HTTPRedirectHandler, + build_opener) + if ssl: + from urllib.request import HTTPSHandler + from urllib.error import HTTPError, URLError, ContentTooShortError + import http.client as httplib + import urllib.request as urllib2 + import xmlrpc.client as xmlrpclib + import queue + from html.parser import HTMLParser + import html.entities as htmlentitydefs + raw_input = input + from itertools import filterfalse + filter = filter + +try: + from ssl import match_hostname, CertificateError +except ImportError: # pragma: no cover + class CertificateError(ValueError): + pass + + + def _dnsname_match(dn, hostname, max_wildcards=1): + """Matching according to RFC 6125, section 6.4.3 + + http://tools.ietf.org/html/rfc6125#section-6.4.3 + """ + pats = [] + if not dn: + return False + + parts = dn.split('.') + leftmost, remainder = parts[0], parts[1:] + + wildcards = leftmost.count('*') + if wildcards > max_wildcards: + # Issue #17980: avoid denials of service by refusing more + # than one wildcard per fragment. A survey of established + # policy among SSL implementations showed it to be a + # reasonable choice. + raise CertificateError( + "too many wildcards in certificate DNS name: " + repr(dn)) + + # speed up common case w/o wildcards + if not wildcards: + return dn.lower() == hostname.lower() + + # RFC 6125, section 6.4.3, subitem 1. + # The client SHOULD NOT attempt to match a presented identifier in which + # the wildcard character comprises a label other than the left-most label. + if leftmost == '*': + # When '*' is a fragment by itself, it matches a non-empty dotless + # fragment. + pats.append('[^.]+') + elif leftmost.startswith('xn--') or hostname.startswith('xn--'): + # RFC 6125, section 6.4.3, subitem 3. + # The client SHOULD NOT attempt to match a presented identifier + # where the wildcard character is embedded within an A-label or + # U-label of an internationalized domain name. + pats.append(re.escape(leftmost)) + else: + # Otherwise, '*' matches any dotless string, e.g. www* + pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) + + # add the remaining fragments, ignore any wildcards + for frag in remainder: + pats.append(re.escape(frag)) + + pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) + return pat.match(hostname) + + + def match_hostname(cert, hostname): + """Verify that *cert* (in decoded format as returned by + SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 + rules are followed, but IP addresses are not accepted for *hostname*. + + CertificateError is raised on failure. On success, the function + returns nothing. + """ + if not cert: + raise ValueError("empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED") + dnsnames = [] + san = cert.get('subjectAltName', ()) + for key, value in san: + if key == 'DNS': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if not dnsnames: + # The subject is only checked when there is no dNSName entry + # in subjectAltName + for sub in cert.get('subject', ()): + for key, value in sub: + # XXX according to RFC 2818, the most specific Common Name + # must be used. + if key == 'commonName': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if len(dnsnames) > 1: + raise CertificateError("hostname %r " + "doesn't match either of %s" + % (hostname, ', '.join(map(repr, dnsnames)))) + elif len(dnsnames) == 1: + raise CertificateError("hostname %r " + "doesn't match %r" + % (hostname, dnsnames[0])) + else: + raise CertificateError("no appropriate commonName or " + "subjectAltName fields were found") + + +try: + from types import SimpleNamespace as Container +except ImportError: # pragma: no cover + class Container(object): + """ + A generic container for when multiple values need to be returned + """ + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + +try: + from shutil import which +except ImportError: # pragma: no cover + # Implementation from Python 3.3 + def which(cmd, mode=os.F_OK | os.X_OK, path=None): + """Given a command, mode, and a PATH string, return the path which + conforms to the given mode on the PATH, or None if there is no such + file. + + `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result + of os.environ.get("PATH"), or can be overridden with a custom search + path. + + """ + # Check that a given file can be accessed with the correct mode. + # Additionally check that `file` is not a directory, as on Windows + # directories pass the os.access check. + def _access_check(fn, mode): + return (os.path.exists(fn) and os.access(fn, mode) + and not os.path.isdir(fn)) + + # If we're given a path with a directory part, look it up directly rather + # than referring to PATH directories. This includes checking relative to the + # current directory, e.g. ./script + if os.path.dirname(cmd): + if _access_check(cmd, mode): + return cmd + return None + + if path is None: + path = os.environ.get("PATH", os.defpath) + if not path: + return None + path = path.split(os.pathsep) + + if sys.platform == "win32": + # The current directory takes precedence on Windows. + if not os.curdir in path: + path.insert(0, os.curdir) + + # PATHEXT is necessary to check on Windows. + pathext = os.environ.get("PATHEXT", "").split(os.pathsep) + # See if the given file matches any of the expected path extensions. + # This will allow us to short circuit when given "python.exe". + # If it does match, only test that one, otherwise we have to try + # others. + if any(cmd.lower().endswith(ext.lower()) for ext in pathext): + files = [cmd] + else: + files = [cmd + ext for ext in pathext] + else: + # On other platforms you don't have things like PATHEXT to tell you + # what file suffixes are executable, so just pass on cmd as-is. + files = [cmd] + + seen = set() + for dir in path: + normdir = os.path.normcase(dir) + if not normdir in seen: + seen.add(normdir) + for thefile in files: + name = os.path.join(dir, thefile) + if _access_check(name, mode): + return name + return None + + +# ZipFile is a context manager in 2.7, but not in 2.6 + +from zipfile import ZipFile as BaseZipFile + +if hasattr(BaseZipFile, '__enter__'): # pragma: no cover + ZipFile = BaseZipFile +else: # pragma: no cover + from zipfile import ZipExtFile as BaseZipExtFile + + class ZipExtFile(BaseZipExtFile): + def __init__(self, base): + self.__dict__.update(base.__dict__) + + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.close() + # return None, so if an exception occurred, it will propagate + + class ZipFile(BaseZipFile): + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.close() + # return None, so if an exception occurred, it will propagate + + def open(self, *args, **kwargs): + base = BaseZipFile.open(self, *args, **kwargs) + return ZipExtFile(base) + +try: + from platform import python_implementation +except ImportError: # pragma: no cover + def python_implementation(): + """Return a string identifying the Python implementation.""" + if 'PyPy' in sys.version: + return 'PyPy' + if os.name == 'java': + return 'Jython' + if sys.version.startswith('IronPython'): + return 'IronPython' + return 'CPython' + +try: + import sysconfig +except ImportError: # pragma: no cover + from ._backport import sysconfig + +try: + callable = callable +except NameError: # pragma: no cover + from collections.abc import Callable + + def callable(obj): + return isinstance(obj, Callable) + + +try: + fsencode = os.fsencode + fsdecode = os.fsdecode +except AttributeError: # pragma: no cover + # Issue #99: on some systems (e.g. containerised), + # sys.getfilesystemencoding() returns None, and we need a real value, + # so fall back to utf-8. From the CPython 2.7 docs relating to Unix and + # sys.getfilesystemencoding(): the return value is "the user’s preference + # according to the result of nl_langinfo(CODESET), or None if the + # nl_langinfo(CODESET) failed." + _fsencoding = sys.getfilesystemencoding() or 'utf-8' + if _fsencoding == 'mbcs': + _fserrors = 'strict' + else: + _fserrors = 'surrogateescape' + + def fsencode(filename): + if isinstance(filename, bytes): + return filename + elif isinstance(filename, text_type): + return filename.encode(_fsencoding, _fserrors) + else: + raise TypeError("expect bytes or str, not %s" % + type(filename).__name__) + + def fsdecode(filename): + if isinstance(filename, text_type): + return filename + elif isinstance(filename, bytes): + return filename.decode(_fsencoding, _fserrors) + else: + raise TypeError("expect bytes or str, not %s" % + type(filename).__name__) + +try: + from tokenize import detect_encoding +except ImportError: # pragma: no cover + from codecs import BOM_UTF8, lookup + import re + + cookie_re = re.compile(r"coding[:=]\s*([-\w.]+)") + + def _get_normal_name(orig_enc): + """Imitates get_normal_name in tokenizer.c.""" + # Only care about the first 12 characters. + enc = orig_enc[:12].lower().replace("_", "-") + if enc == "utf-8" or enc.startswith("utf-8-"): + return "utf-8" + if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ + enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): + return "iso-8859-1" + return orig_enc + + def detect_encoding(readline): + """ + The detect_encoding() function is used to detect the encoding that should + be used to decode a Python source file. It requires one argument, readline, + in the same way as the tokenize() generator. + + It will call readline a maximum of twice, and return the encoding used + (as a string) and a list of any lines (left as bytes) it has read in. + + It detects the encoding from the presence of a utf-8 bom or an encoding + cookie as specified in pep-0263. If both a bom and a cookie are present, + but disagree, a SyntaxError will be raised. If the encoding cookie is an + invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, + 'utf-8-sig' is returned. + + If no encoding is specified, then the default of 'utf-8' will be returned. + """ + try: + filename = readline.__self__.name + except AttributeError: + filename = None + bom_found = False + encoding = None + default = 'utf-8' + def read_or_stop(): + try: + return readline() + except StopIteration: + return b'' + + def find_cookie(line): + try: + # Decode as UTF-8. Either the line is an encoding declaration, + # in which case it should be pure ASCII, or it must be UTF-8 + # per default encoding. + line_string = line.decode('utf-8') + except UnicodeDecodeError: + msg = "invalid or missing encoding declaration" + if filename is not None: + msg = '{} for {!r}'.format(msg, filename) + raise SyntaxError(msg) + + matches = cookie_re.findall(line_string) + if not matches: + return None + encoding = _get_normal_name(matches[0]) + try: + codec = lookup(encoding) + except LookupError: + # This behaviour mimics the Python interpreter + if filename is None: + msg = "unknown encoding: " + encoding + else: + msg = "unknown encoding for {!r}: {}".format(filename, + encoding) + raise SyntaxError(msg) + + if bom_found: + if codec.name != 'utf-8': + # This behaviour mimics the Python interpreter + if filename is None: + msg = 'encoding problem: utf-8' + else: + msg = 'encoding problem for {!r}: utf-8'.format(filename) + raise SyntaxError(msg) + encoding += '-sig' + return encoding + + first = read_or_stop() + if first.startswith(BOM_UTF8): + bom_found = True + first = first[3:] + default = 'utf-8-sig' + if not first: + return default, [] + + encoding = find_cookie(first) + if encoding: + return encoding, [first] + + second = read_or_stop() + if not second: + return default, [first] + + encoding = find_cookie(second) + if encoding: + return encoding, [first, second] + + return default, [first, second] + +# For converting & <-> & etc. +try: + from html import escape +except ImportError: + from cgi import escape +if sys.version_info[:2] < (3, 4): + unescape = HTMLParser().unescape +else: + from html import unescape + +try: + from collections import ChainMap +except ImportError: # pragma: no cover + from collections import MutableMapping + + try: + from reprlib import recursive_repr as _recursive_repr + except ImportError: + def _recursive_repr(fillvalue='...'): + ''' + Decorator to make a repr function return fillvalue for a recursive + call + ''' + + def decorating_function(user_function): + repr_running = set() + + def wrapper(self): + key = id(self), get_ident() + if key in repr_running: + return fillvalue + repr_running.add(key) + try: + result = user_function(self) + finally: + repr_running.discard(key) + return result + + # Can't use functools.wraps() here because of bootstrap issues + wrapper.__module__ = getattr(user_function, '__module__') + wrapper.__doc__ = getattr(user_function, '__doc__') + wrapper.__name__ = getattr(user_function, '__name__') + wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) + return wrapper + + return decorating_function + + class ChainMap(MutableMapping): + ''' A ChainMap groups multiple dicts (or other mappings) together + to create a single, updateable view. + + The underlying mappings are stored in a list. That list is public and can + accessed or updated using the *maps* attribute. There is no other state. + + Lookups search the underlying mappings successively until a key is found. + In contrast, writes, updates, and deletions only operate on the first + mapping. + + ''' + + def __init__(self, *maps): + '''Initialize a ChainMap by setting *maps* to the given mappings. + If no mappings are provided, a single empty dictionary is used. + + ''' + self.maps = list(maps) or [{}] # always at least one map + + def __missing__(self, key): + raise KeyError(key) + + def __getitem__(self, key): + for mapping in self.maps: + try: + return mapping[key] # can't use 'key in mapping' with defaultdict + except KeyError: + pass + return self.__missing__(key) # support subclasses that define __missing__ + + def get(self, key, default=None): + return self[key] if key in self else default + + def __len__(self): + return len(set().union(*self.maps)) # reuses stored hash values if possible + + def __iter__(self): + return iter(set().union(*self.maps)) + + def __contains__(self, key): + return any(key in m for m in self.maps) + + def __bool__(self): + return any(self.maps) + + @_recursive_repr() + def __repr__(self): + return '{0.__class__.__name__}({1})'.format( + self, ', '.join(map(repr, self.maps))) + + @classmethod + def fromkeys(cls, iterable, *args): + 'Create a ChainMap with a single dict created from the iterable.' + return cls(dict.fromkeys(iterable, *args)) + + def copy(self): + 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' + return self.__class__(self.maps[0].copy(), *self.maps[1:]) + + __copy__ = copy + + def new_child(self): # like Django's Context.push() + 'New ChainMap with a new dict followed by all previous maps.' + return self.__class__({}, *self.maps) + + @property + def parents(self): # like Django's Context.pop() + 'New ChainMap from maps[1:].' + return self.__class__(*self.maps[1:]) + + def __setitem__(self, key, value): + self.maps[0][key] = value + + def __delitem__(self, key): + try: + del self.maps[0][key] + except KeyError: + raise KeyError('Key not found in the first mapping: {!r}'.format(key)) + + def popitem(self): + 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' + try: + return self.maps[0].popitem() + except KeyError: + raise KeyError('No keys found in the first mapping.') + + def pop(self, key, *args): + 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' + try: + return self.maps[0].pop(key, *args) + except KeyError: + raise KeyError('Key not found in the first mapping: {!r}'.format(key)) + + def clear(self): + 'Clear maps[0], leaving maps[1:] intact.' + self.maps[0].clear() + +try: + from importlib.util import cache_from_source # Python >= 3.4 +except ImportError: # pragma: no cover + try: + from imp import cache_from_source + except ImportError: # pragma: no cover + def cache_from_source(path, debug_override=None): + assert path.endswith('.py') + if debug_override is None: + debug_override = __debug__ + if debug_override: + suffix = 'c' + else: + suffix = 'o' + return path + suffix + +try: + from collections import OrderedDict +except ImportError: # pragma: no cover +## {{{ http://code.activestate.com/recipes/576693/ (r9) +# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. +# Passes Python2.7's test suite and incorporates all the latest updates. + try: + from thread import get_ident as _get_ident + except ImportError: + from dummy_thread import get_ident as _get_ident + + try: + from _abcoll import KeysView, ValuesView, ItemsView + except ImportError: + pass + + + class OrderedDict(dict): + 'Dictionary that remembers insertion order' + # An inherited dict maps keys to values. + # The inherited dict provides __getitem__, __len__, __contains__, and get. + # The remaining methods are order-aware. + # Big-O running times for all methods are the same as for regular dictionaries. + + # The internal self.__map dictionary maps keys to links in a doubly linked list. + # The circular doubly linked list starts and ends with a sentinel element. + # The sentinel element never gets deleted (this simplifies the algorithm). + # Each link is stored as a list of length three: [PREV, NEXT, KEY]. + + def __init__(self, *args, **kwds): + '''Initialize an ordered dictionary. Signature is the same as for + regular dictionaries, but keyword arguments are not recommended + because their insertion order is arbitrary. + + ''' + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + try: + self.__root + except AttributeError: + self.__root = root = [] # sentinel node + root[:] = [root, root, None] + self.__map = {} + self.__update(*args, **kwds) + + def __setitem__(self, key, value, dict_setitem=dict.__setitem__): + 'od.__setitem__(i, y) <==> od[i]=y' + # Setting a new item creates a new link which goes at the end of the linked + # list, and the inherited dictionary is updated with the new key/value pair. + if key not in self: + root = self.__root + last = root[0] + last[1] = root[0] = self.__map[key] = [last, root, key] + dict_setitem(self, key, value) + + def __delitem__(self, key, dict_delitem=dict.__delitem__): + 'od.__delitem__(y) <==> del od[y]' + # Deleting an existing item uses self.__map to find the link which is + # then removed by updating the links in the predecessor and successor nodes. + dict_delitem(self, key) + link_prev, link_next, key = self.__map.pop(key) + link_prev[1] = link_next + link_next[0] = link_prev + + def __iter__(self): + 'od.__iter__() <==> iter(od)' + root = self.__root + curr = root[1] + while curr is not root: + yield curr[2] + curr = curr[1] + + def __reversed__(self): + 'od.__reversed__() <==> reversed(od)' + root = self.__root + curr = root[0] + while curr is not root: + yield curr[2] + curr = curr[0] + + def clear(self): + 'od.clear() -> None. Remove all items from od.' + try: + for node in self.__map.itervalues(): + del node[:] + root = self.__root + root[:] = [root, root, None] + self.__map.clear() + except AttributeError: + pass + dict.clear(self) + + def popitem(self, last=True): + '''od.popitem() -> (k, v), return and remove a (key, value) pair. + Pairs are returned in LIFO order if last is true or FIFO order if false. + + ''' + if not self: + raise KeyError('dictionary is empty') + root = self.__root + if last: + link = root[0] + link_prev = link[0] + link_prev[1] = root + root[0] = link_prev + else: + link = root[1] + link_next = link[1] + root[1] = link_next + link_next[0] = root + key = link[2] + del self.__map[key] + value = dict.pop(self, key) + return key, value + + # -- the following methods do not depend on the internal structure -- + + def keys(self): + 'od.keys() -> list of keys in od' + return list(self) + + def values(self): + 'od.values() -> list of values in od' + return [self[key] for key in self] + + def items(self): + 'od.items() -> list of (key, value) pairs in od' + return [(key, self[key]) for key in self] + + def iterkeys(self): + 'od.iterkeys() -> an iterator over the keys in od' + return iter(self) + + def itervalues(self): + 'od.itervalues -> an iterator over the values in od' + for k in self: + yield self[k] + + def iteritems(self): + 'od.iteritems -> an iterator over the (key, value) items in od' + for k in self: + yield (k, self[k]) + + def update(*args, **kwds): + '''od.update(E, **F) -> None. Update od from dict/iterable E and F. + + If E is a dict instance, does: for k in E: od[k] = E[k] + If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] + Or if E is an iterable of items, does: for k, v in E: od[k] = v + In either case, this is followed by: for k, v in F.items(): od[k] = v + + ''' + if len(args) > 2: + raise TypeError('update() takes at most 2 positional ' + 'arguments (%d given)' % (len(args),)) + elif not args: + raise TypeError('update() takes at least 1 argument (0 given)') + self = args[0] + # Make progressively weaker assumptions about "other" + other = () + if len(args) == 2: + other = args[1] + if isinstance(other, dict): + for key in other: + self[key] = other[key] + elif hasattr(other, 'keys'): + for key in other.keys(): + self[key] = other[key] + else: + for key, value in other: + self[key] = value + for key, value in kwds.items(): + self[key] = value + + __update = update # let subclasses override update without breaking __init__ + + __marker = object() + + def pop(self, key, default=__marker): + '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. + If key is not found, d is returned if given, otherwise KeyError is raised. + + ''' + if key in self: + result = self[key] + del self[key] + return result + if default is self.__marker: + raise KeyError(key) + return default + + def setdefault(self, key, default=None): + 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + if key in self: + return self[key] + self[key] = default + return default + + def __repr__(self, _repr_running=None): + 'od.__repr__() <==> repr(od)' + if not _repr_running: _repr_running = {} + call_key = id(self), _get_ident() + if call_key in _repr_running: + return '...' + _repr_running[call_key] = 1 + try: + if not self: + return '%s()' % (self.__class__.__name__,) + return '%s(%r)' % (self.__class__.__name__, self.items()) + finally: + del _repr_running[call_key] + + def __reduce__(self): + 'Return state information for pickling' + items = [[k, self[k]] for k in self] + inst_dict = vars(self).copy() + for k in vars(OrderedDict()): + inst_dict.pop(k, None) + if inst_dict: + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) + + def copy(self): + 'od.copy() -> a shallow copy of od' + return self.__class__(self) + + @classmethod + def fromkeys(cls, iterable, value=None): + '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S + and values equal to v (which defaults to None). + + ''' + d = cls() + for key in iterable: + d[key] = value + return d + + def __eq__(self, other): + '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + while comparison to a regular mapping is order-insensitive. + + ''' + if isinstance(other, OrderedDict): + return len(self)==len(other) and self.items() == other.items() + return dict.__eq__(self, other) + + def __ne__(self, other): + return not self == other + + # -- the following methods are only used in Python 2.7 -- + + def viewkeys(self): + "od.viewkeys() -> a set-like object providing a view on od's keys" + return KeysView(self) + + def viewvalues(self): + "od.viewvalues() -> an object providing a view on od's values" + return ValuesView(self) + + def viewitems(self): + "od.viewitems() -> a set-like object providing a view on od's items" + return ItemsView(self) + +try: + from logging.config import BaseConfigurator, valid_ident +except ImportError: # pragma: no cover + IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) + + + def valid_ident(s): + m = IDENTIFIER.match(s) + if not m: + raise ValueError('Not a valid Python identifier: %r' % s) + return True + + + # The ConvertingXXX classes are wrappers around standard Python containers, + # and they serve to convert any suitable values in the container. The + # conversion converts base dicts, lists and tuples to their wrapped + # equivalents, whereas strings which match a conversion format are converted + # appropriately. + # + # Each wrapper should have a configurator attribute holding the actual + # configurator to use for conversion. + + class ConvertingDict(dict): + """A converting dictionary wrapper.""" + + def __getitem__(self, key): + value = dict.__getitem__(self, key) + result = self.configurator.convert(value) + #If the converted value is different, save for next time + if value is not result: + self[key] = result + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + def get(self, key, default=None): + value = dict.get(self, key, default) + result = self.configurator.convert(value) + #If the converted value is different, save for next time + if value is not result: + self[key] = result + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + def pop(self, key, default=None): + value = dict.pop(self, key, default) + result = self.configurator.convert(value) + if value is not result: + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + class ConvertingList(list): + """A converting list wrapper.""" + def __getitem__(self, key): + value = list.__getitem__(self, key) + result = self.configurator.convert(value) + #If the converted value is different, save for next time + if value is not result: + self[key] = result + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + def pop(self, idx=-1): + value = list.pop(self, idx) + result = self.configurator.convert(value) + if value is not result: + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + return result + + class ConvertingTuple(tuple): + """A converting tuple wrapper.""" + def __getitem__(self, key): + value = tuple.__getitem__(self, key) + result = self.configurator.convert(value) + if value is not result: + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + class BaseConfigurator(object): + """ + The configurator base class which defines some useful defaults. + """ + + CONVERT_PATTERN = re.compile(r'^(?P[a-z]+)://(?P.*)$') + + WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') + DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') + INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') + DIGIT_PATTERN = re.compile(r'^\d+$') + + value_converters = { + 'ext' : 'ext_convert', + 'cfg' : 'cfg_convert', + } + + # We might want to use a different one, e.g. importlib + importer = staticmethod(__import__) + + def __init__(self, config): + self.config = ConvertingDict(config) + self.config.configurator = self + + def resolve(self, s): + """ + Resolve strings to objects using standard import and attribute + syntax. + """ + name = s.split('.') + used = name.pop(0) + try: + found = self.importer(used) + for frag in name: + used += '.' + frag + try: + found = getattr(found, frag) + except AttributeError: + self.importer(used) + found = getattr(found, frag) + return found + except ImportError: + e, tb = sys.exc_info()[1:] + v = ValueError('Cannot resolve %r: %s' % (s, e)) + v.__cause__, v.__traceback__ = e, tb + raise v + + def ext_convert(self, value): + """Default converter for the ext:// protocol.""" + return self.resolve(value) + + def cfg_convert(self, value): + """Default converter for the cfg:// protocol.""" + rest = value + m = self.WORD_PATTERN.match(rest) + if m is None: + raise ValueError("Unable to convert %r" % value) + else: + rest = rest[m.end():] + d = self.config[m.groups()[0]] + #print d, rest + while rest: + m = self.DOT_PATTERN.match(rest) + if m: + d = d[m.groups()[0]] + else: + m = self.INDEX_PATTERN.match(rest) + if m: + idx = m.groups()[0] + if not self.DIGIT_PATTERN.match(idx): + d = d[idx] + else: + try: + n = int(idx) # try as number first (most likely) + d = d[n] + except TypeError: + d = d[idx] + if m: + rest = rest[m.end():] + else: + raise ValueError('Unable to convert ' + '%r at %r' % (value, rest)) + #rest should be empty + return d + + def convert(self, value): + """ + Convert values to an appropriate type. dicts, lists and tuples are + replaced by their converting alternatives. Strings are checked to + see if they have a conversion format and are converted if they do. + """ + if not isinstance(value, ConvertingDict) and isinstance(value, dict): + value = ConvertingDict(value) + value.configurator = self + elif not isinstance(value, ConvertingList) and isinstance(value, list): + value = ConvertingList(value) + value.configurator = self + elif not isinstance(value, ConvertingTuple) and\ + isinstance(value, tuple): + value = ConvertingTuple(value) + value.configurator = self + elif isinstance(value, string_types): + m = self.CONVERT_PATTERN.match(value) + if m: + d = m.groupdict() + prefix = d['prefix'] + converter = self.value_converters.get(prefix, None) + if converter: + suffix = d['suffix'] + converter = getattr(self, converter) + value = converter(suffix) + return value + + def configure_custom(self, config): + """Configure an object with a user-supplied factory.""" + c = config.pop('()') + if not callable(c): + c = self.resolve(c) + props = config.pop('.', None) + # Check for valid identifiers + kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) + result = c(**kwargs) + if props: + for name, value in props.items(): + setattr(result, name, value) + return result + + def as_tuple(self, value): + """Utility function which converts lists to tuples.""" + if isinstance(value, list): + value = tuple(value) + return value diff --git a/venv/Lib/site-packages/distlib/database.py b/venv/Lib/site-packages/distlib/database.py new file mode 100644 index 00000000..0a90c300 --- /dev/null +++ b/venv/Lib/site-packages/distlib/database.py @@ -0,0 +1,1339 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2017 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""PEP 376 implementation.""" + +from __future__ import unicode_literals + +import base64 +import codecs +import contextlib +import hashlib +import logging +import os +import posixpath +import sys +import zipimport + +from . import DistlibException, resources +from .compat import StringIO +from .version import get_scheme, UnsupportedVersionError +from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, + LEGACY_METADATA_FILENAME) +from .util import (parse_requirement, cached_property, parse_name_and_version, + read_exports, write_exports, CSVReader, CSVWriter) + + +__all__ = ['Distribution', 'BaseInstalledDistribution', + 'InstalledDistribution', 'EggInfoDistribution', + 'DistributionPath'] + + +logger = logging.getLogger(__name__) + +EXPORTS_FILENAME = 'pydist-exports.json' +COMMANDS_FILENAME = 'pydist-commands.json' + +DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', + 'RESOURCES', EXPORTS_FILENAME, 'SHARED') + +DISTINFO_EXT = '.dist-info' + + +class _Cache(object): + """ + A simple cache mapping names and .dist-info paths to distributions + """ + def __init__(self): + """ + Initialise an instance. There is normally one for each DistributionPath. + """ + self.name = {} + self.path = {} + self.generated = False + + def clear(self): + """ + Clear the cache, setting it to its initial state. + """ + self.name.clear() + self.path.clear() + self.generated = False + + def add(self, dist): + """ + Add a distribution to the cache. + :param dist: The distribution to add. + """ + if dist.path not in self.path: + self.path[dist.path] = dist + self.name.setdefault(dist.key, []).append(dist) + + +class DistributionPath(object): + """ + Represents a set of distributions installed on a path (typically sys.path). + """ + def __init__(self, path=None, include_egg=False): + """ + Create an instance from a path, optionally including legacy (distutils/ + setuptools/distribute) distributions. + :param path: The path to use, as a list of directories. If not specified, + sys.path is used. + :param include_egg: If True, this instance will look for and return legacy + distributions as well as those based on PEP 376. + """ + if path is None: + path = sys.path + self.path = path + self._include_dist = True + self._include_egg = include_egg + + self._cache = _Cache() + self._cache_egg = _Cache() + self._cache_enabled = True + self._scheme = get_scheme('default') + + def _get_cache_enabled(self): + return self._cache_enabled + + def _set_cache_enabled(self, value): + self._cache_enabled = value + + cache_enabled = property(_get_cache_enabled, _set_cache_enabled) + + def clear_cache(self): + """ + Clears the internal cache. + """ + self._cache.clear() + self._cache_egg.clear() + + + def _yield_distributions(self): + """ + Yield .dist-info and/or .egg(-info) distributions. + """ + # We need to check if we've seen some resources already, because on + # some Linux systems (e.g. some Debian/Ubuntu variants) there are + # symlinks which alias other files in the environment. + seen = set() + for path in self.path: + finder = resources.finder_for_path(path) + if finder is None: + continue + r = finder.find('') + if not r or not r.is_container: + continue + rset = sorted(r.resources) + for entry in rset: + r = finder.find(entry) + if not r or r.path in seen: + continue + if self._include_dist and entry.endswith(DISTINFO_EXT): + possible_filenames = [METADATA_FILENAME, + WHEEL_METADATA_FILENAME, + LEGACY_METADATA_FILENAME] + for metadata_filename in possible_filenames: + metadata_path = posixpath.join(entry, metadata_filename) + pydist = finder.find(metadata_path) + if pydist: + break + else: + continue + + with contextlib.closing(pydist.as_stream()) as stream: + metadata = Metadata(fileobj=stream, scheme='legacy') + logger.debug('Found %s', r.path) + seen.add(r.path) + yield new_dist_class(r.path, metadata=metadata, + env=self) + elif self._include_egg and entry.endswith(('.egg-info', + '.egg')): + logger.debug('Found %s', r.path) + seen.add(r.path) + yield old_dist_class(r.path, self) + + def _generate_cache(self): + """ + Scan the path for distributions and populate the cache with + those that are found. + """ + gen_dist = not self._cache.generated + gen_egg = self._include_egg and not self._cache_egg.generated + if gen_dist or gen_egg: + for dist in self._yield_distributions(): + if isinstance(dist, InstalledDistribution): + self._cache.add(dist) + else: + self._cache_egg.add(dist) + + if gen_dist: + self._cache.generated = True + if gen_egg: + self._cache_egg.generated = True + + @classmethod + def distinfo_dirname(cls, name, version): + """ + The *name* and *version* parameters are converted into their + filename-escaped form, i.e. any ``'-'`` characters are replaced + with ``'_'`` other than the one in ``'dist-info'`` and the one + separating the name from the version number. + + :parameter name: is converted to a standard distribution name by replacing + any runs of non- alphanumeric characters with a single + ``'-'``. + :type name: string + :parameter version: is converted to a standard version string. Spaces + become dots, and all other non-alphanumeric characters + (except dots) become dashes, with runs of multiple + dashes condensed to a single dash. + :type version: string + :returns: directory name + :rtype: string""" + name = name.replace('-', '_') + return '-'.join([name, version]) + DISTINFO_EXT + + def get_distributions(self): + """ + Provides an iterator that looks for distributions and returns + :class:`InstalledDistribution` or + :class:`EggInfoDistribution` instances for each one of them. + + :rtype: iterator of :class:`InstalledDistribution` and + :class:`EggInfoDistribution` instances + """ + if not self._cache_enabled: + for dist in self._yield_distributions(): + yield dist + else: + self._generate_cache() + + for dist in self._cache.path.values(): + yield dist + + if self._include_egg: + for dist in self._cache_egg.path.values(): + yield dist + + def get_distribution(self, name): + """ + Looks for a named distribution on the path. + + This function only returns the first result found, as no more than one + value is expected. If nothing is found, ``None`` is returned. + + :rtype: :class:`InstalledDistribution`, :class:`EggInfoDistribution` + or ``None`` + """ + result = None + name = name.lower() + if not self._cache_enabled: + for dist in self._yield_distributions(): + if dist.key == name: + result = dist + break + else: + self._generate_cache() + + if name in self._cache.name: + result = self._cache.name[name][0] + elif self._include_egg and name in self._cache_egg.name: + result = self._cache_egg.name[name][0] + return result + + def provides_distribution(self, name, version=None): + """ + Iterates over all distributions to find which distributions provide *name*. + If a *version* is provided, it will be used to filter the results. + + This function only returns the first result found, since no more than + one values are expected. If the directory is not found, returns ``None``. + + :parameter version: a version specifier that indicates the version + required, conforming to the format in ``PEP-345`` + + :type name: string + :type version: string + """ + matcher = None + if version is not None: + try: + matcher = self._scheme.matcher('%s (%s)' % (name, version)) + except ValueError: + raise DistlibException('invalid name or version: %r, %r' % + (name, version)) + + for dist in self.get_distributions(): + # We hit a problem on Travis where enum34 was installed and doesn't + # have a provides attribute ... + if not hasattr(dist, 'provides'): + logger.debug('No "provides": %s', dist) + else: + provided = dist.provides + + for p in provided: + p_name, p_ver = parse_name_and_version(p) + if matcher is None: + if p_name == name: + yield dist + break + else: + if p_name == name and matcher.match(p_ver): + yield dist + break + + def get_file_path(self, name, relative_path): + """ + Return the path to a resource file. + """ + dist = self.get_distribution(name) + if dist is None: + raise LookupError('no distribution named %r found' % name) + return dist.get_resource_path(relative_path) + + def get_exported_entries(self, category, name=None): + """ + Return all of the exported entries in a particular category. + + :param category: The category to search for entries. + :param name: If specified, only entries with that name are returned. + """ + for dist in self.get_distributions(): + r = dist.exports + if category in r: + d = r[category] + if name is not None: + if name in d: + yield d[name] + else: + for v in d.values(): + yield v + + +class Distribution(object): + """ + A base class for distributions, whether installed or from indexes. + Either way, it must have some metadata, so that's all that's needed + for construction. + """ + + build_time_dependency = False + """ + Set to True if it's known to be only a build-time dependency (i.e. + not needed after installation). + """ + + requested = False + """A boolean that indicates whether the ``REQUESTED`` metadata file is + present (in other words, whether the package was installed by user + request or it was installed as a dependency).""" + + def __init__(self, metadata): + """ + Initialise an instance. + :param metadata: The instance of :class:`Metadata` describing this + distribution. + """ + self.metadata = metadata + self.name = metadata.name + self.key = self.name.lower() # for case-insensitive comparisons + self.version = metadata.version + self.locator = None + self.digest = None + self.extras = None # additional features requested + self.context = None # environment marker overrides + self.download_urls = set() + self.digests = {} + + @property + def source_url(self): + """ + The source archive download URL for this distribution. + """ + return self.metadata.source_url + + download_url = source_url # Backward compatibility + + @property + def name_and_version(self): + """ + A utility property which displays the name and version in parentheses. + """ + return '%s (%s)' % (self.name, self.version) + + @property + def provides(self): + """ + A set of distribution names and versions provided by this distribution. + :return: A set of "name (version)" strings. + """ + plist = self.metadata.provides + s = '%s (%s)' % (self.name, self.version) + if s not in plist: + plist.append(s) + return plist + + def _get_requirements(self, req_attr): + md = self.metadata + logger.debug('Getting requirements from metadata %r', md.todict()) + reqts = getattr(md, req_attr) + return set(md.get_requirements(reqts, extras=self.extras, + env=self.context)) + + @property + def run_requires(self): + return self._get_requirements('run_requires') + + @property + def meta_requires(self): + return self._get_requirements('meta_requires') + + @property + def build_requires(self): + return self._get_requirements('build_requires') + + @property + def test_requires(self): + return self._get_requirements('test_requires') + + @property + def dev_requires(self): + return self._get_requirements('dev_requires') + + def matches_requirement(self, req): + """ + Say if this instance matches (fulfills) a requirement. + :param req: The requirement to match. + :rtype req: str + :return: True if it matches, else False. + """ + # Requirement may contain extras - parse to lose those + # from what's passed to the matcher + r = parse_requirement(req) + scheme = get_scheme(self.metadata.scheme) + try: + matcher = scheme.matcher(r.requirement) + except UnsupportedVersionError: + # XXX compat-mode if cannot read the version + logger.warning('could not read version %r - using name only', + req) + name = req.split()[0] + matcher = scheme.matcher(name) + + name = matcher.key # case-insensitive + + result = False + for p in self.provides: + p_name, p_ver = parse_name_and_version(p) + if p_name != name: + continue + try: + result = matcher.match(p_ver) + break + except UnsupportedVersionError: + pass + return result + + def __repr__(self): + """ + Return a textual representation of this instance, + """ + if self.source_url: + suffix = ' [%s]' % self.source_url + else: + suffix = '' + return '' % (self.name, self.version, suffix) + + def __eq__(self, other): + """ + See if this distribution is the same as another. + :param other: The distribution to compare with. To be equal to one + another. distributions must have the same type, name, + version and source_url. + :return: True if it is the same, else False. + """ + if type(other) is not type(self): + result = False + else: + result = (self.name == other.name and + self.version == other.version and + self.source_url == other.source_url) + return result + + def __hash__(self): + """ + Compute hash in a way which matches the equality test. + """ + return hash(self.name) + hash(self.version) + hash(self.source_url) + + +class BaseInstalledDistribution(Distribution): + """ + This is the base class for installed distributions (whether PEP 376 or + legacy). + """ + + hasher = None + + def __init__(self, metadata, path, env=None): + """ + Initialise an instance. + :param metadata: An instance of :class:`Metadata` which describes the + distribution. This will normally have been initialised + from a metadata file in the ``path``. + :param path: The path of the ``.dist-info`` or ``.egg-info`` + directory for the distribution. + :param env: This is normally the :class:`DistributionPath` + instance where this distribution was found. + """ + super(BaseInstalledDistribution, self).__init__(metadata) + self.path = path + self.dist_path = env + + def get_hash(self, data, hasher=None): + """ + Get the hash of some data, using a particular hash algorithm, if + specified. + + :param data: The data to be hashed. + :type data: bytes + :param hasher: The name of a hash implementation, supported by hashlib, + or ``None``. Examples of valid values are ``'sha1'``, + ``'sha224'``, ``'sha384'``, '``sha256'``, ``'md5'`` and + ``'sha512'``. If no hasher is specified, the ``hasher`` + attribute of the :class:`InstalledDistribution` instance + is used. If the hasher is determined to be ``None``, MD5 + is used as the hashing algorithm. + :returns: The hash of the data. If a hasher was explicitly specified, + the returned hash will be prefixed with the specified hasher + followed by '='. + :rtype: str + """ + if hasher is None: + hasher = self.hasher + if hasher is None: + hasher = hashlib.md5 + prefix = '' + else: + hasher = getattr(hashlib, hasher) + prefix = '%s=' % self.hasher + digest = hasher(data).digest() + digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') + return '%s%s' % (prefix, digest) + + +class InstalledDistribution(BaseInstalledDistribution): + """ + Created with the *path* of the ``.dist-info`` directory provided to the + constructor. It reads the metadata contained in ``pydist.json`` when it is + instantiated., or uses a passed in Metadata instance (useful for when + dry-run mode is being used). + """ + + hasher = 'sha256' + + def __init__(self, path, metadata=None, env=None): + self.modules = [] + self.finder = finder = resources.finder_for_path(path) + if finder is None: + raise ValueError('finder unavailable for %s' % path) + if env and env._cache_enabled and path in env._cache.path: + metadata = env._cache.path[path].metadata + elif metadata is None: + r = finder.find(METADATA_FILENAME) + # Temporary - for Wheel 0.23 support + if r is None: + r = finder.find(WHEEL_METADATA_FILENAME) + # Temporary - for legacy support + if r is None: + r = finder.find(LEGACY_METADATA_FILENAME) + if r is None: + raise ValueError('no %s found in %s' % (METADATA_FILENAME, + path)) + with contextlib.closing(r.as_stream()) as stream: + metadata = Metadata(fileobj=stream, scheme='legacy') + + super(InstalledDistribution, self).__init__(metadata, path, env) + + if env and env._cache_enabled: + env._cache.add(self) + + r = finder.find('REQUESTED') + self.requested = r is not None + p = os.path.join(path, 'top_level.txt') + if os.path.exists(p): + with open(p, 'rb') as f: + data = f.read().decode('utf-8') + self.modules = data.splitlines() + + def __repr__(self): + return '' % ( + self.name, self.version, self.path) + + def __str__(self): + return "%s %s" % (self.name, self.version) + + def _get_records(self): + """ + Get the list of installed files for the distribution + :return: A list of tuples of path, hash and size. Note that hash and + size might be ``None`` for some entries. The path is exactly + as stored in the file (which is as in PEP 376). + """ + results = [] + r = self.get_distinfo_resource('RECORD') + with contextlib.closing(r.as_stream()) as stream: + with CSVReader(stream=stream) as record_reader: + # Base location is parent dir of .dist-info dir + #base_location = os.path.dirname(self.path) + #base_location = os.path.abspath(base_location) + for row in record_reader: + missing = [None for i in range(len(row), 3)] + path, checksum, size = row + missing + #if not os.path.isabs(path): + # path = path.replace('/', os.sep) + # path = os.path.join(base_location, path) + results.append((path, checksum, size)) + return results + + @cached_property + def exports(self): + """ + Return the information exported by this distribution. + :return: A dictionary of exports, mapping an export category to a dict + of :class:`ExportEntry` instances describing the individual + export entries, and keyed by name. + """ + result = {} + r = self.get_distinfo_resource(EXPORTS_FILENAME) + if r: + result = self.read_exports() + return result + + def read_exports(self): + """ + Read exports data from a file in .ini format. + + :return: A dictionary of exports, mapping an export category to a list + of :class:`ExportEntry` instances describing the individual + export entries. + """ + result = {} + r = self.get_distinfo_resource(EXPORTS_FILENAME) + if r: + with contextlib.closing(r.as_stream()) as stream: + result = read_exports(stream) + return result + + def write_exports(self, exports): + """ + Write a dictionary of exports to a file in .ini format. + :param exports: A dictionary of exports, mapping an export category to + a list of :class:`ExportEntry` instances describing the + individual export entries. + """ + rf = self.get_distinfo_file(EXPORTS_FILENAME) + with open(rf, 'w') as f: + write_exports(exports, f) + + def get_resource_path(self, relative_path): + """ + NOTE: This API may change in the future. + + Return the absolute path to a resource file with the given relative + path. + + :param relative_path: The path, relative to .dist-info, of the resource + of interest. + :return: The absolute path where the resource is to be found. + """ + r = self.get_distinfo_resource('RESOURCES') + with contextlib.closing(r.as_stream()) as stream: + with CSVReader(stream=stream) as resources_reader: + for relative, destination in resources_reader: + if relative == relative_path: + return destination + raise KeyError('no resource file with relative path %r ' + 'is installed' % relative_path) + + def list_installed_files(self): + """ + Iterates over the ``RECORD`` entries and returns a tuple + ``(path, hash, size)`` for each line. + + :returns: iterator of (path, hash, size) + """ + for result in self._get_records(): + yield result + + def write_installed_files(self, paths, prefix, dry_run=False): + """ + Writes the ``RECORD`` file, using the ``paths`` iterable passed in. Any + existing ``RECORD`` file is silently overwritten. + + prefix is used to determine when to write absolute paths. + """ + prefix = os.path.join(prefix, '') + base = os.path.dirname(self.path) + base_under_prefix = base.startswith(prefix) + base = os.path.join(base, '') + record_path = self.get_distinfo_file('RECORD') + logger.info('creating %s', record_path) + if dry_run: + return None + with CSVWriter(record_path) as writer: + for path in paths: + if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): + # do not put size and hash, as in PEP-376 + hash_value = size = '' + else: + size = '%d' % os.path.getsize(path) + with open(path, 'rb') as fp: + hash_value = self.get_hash(fp.read()) + if path.startswith(base) or (base_under_prefix and + path.startswith(prefix)): + path = os.path.relpath(path, base) + writer.writerow((path, hash_value, size)) + + # add the RECORD file itself + if record_path.startswith(base): + record_path = os.path.relpath(record_path, base) + writer.writerow((record_path, '', '')) + return record_path + + def check_installed_files(self): + """ + Checks that the hashes and sizes of the files in ``RECORD`` are + matched by the files themselves. Returns a (possibly empty) list of + mismatches. Each entry in the mismatch list will be a tuple consisting + of the path, 'exists', 'size' or 'hash' according to what didn't match + (existence is checked first, then size, then hash), the expected + value and the actual value. + """ + mismatches = [] + base = os.path.dirname(self.path) + record_path = self.get_distinfo_file('RECORD') + for path, hash_value, size in self.list_installed_files(): + if not os.path.isabs(path): + path = os.path.join(base, path) + if path == record_path: + continue + if not os.path.exists(path): + mismatches.append((path, 'exists', True, False)) + elif os.path.isfile(path): + actual_size = str(os.path.getsize(path)) + if size and actual_size != size: + mismatches.append((path, 'size', size, actual_size)) + elif hash_value: + if '=' in hash_value: + hasher = hash_value.split('=', 1)[0] + else: + hasher = None + + with open(path, 'rb') as f: + actual_hash = self.get_hash(f.read(), hasher) + if actual_hash != hash_value: + mismatches.append((path, 'hash', hash_value, actual_hash)) + return mismatches + + @cached_property + def shared_locations(self): + """ + A dictionary of shared locations whose keys are in the set 'prefix', + 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. + The corresponding value is the absolute path of that category for + this distribution, and takes into account any paths selected by the + user at installation time (e.g. via command-line arguments). In the + case of the 'namespace' key, this would be a list of absolute paths + for the roots of namespace packages in this distribution. + + The first time this property is accessed, the relevant information is + read from the SHARED file in the .dist-info directory. + """ + result = {} + shared_path = os.path.join(self.path, 'SHARED') + if os.path.isfile(shared_path): + with codecs.open(shared_path, 'r', encoding='utf-8') as f: + lines = f.read().splitlines() + for line in lines: + key, value = line.split('=', 1) + if key == 'namespace': + result.setdefault(key, []).append(value) + else: + result[key] = value + return result + + def write_shared_locations(self, paths, dry_run=False): + """ + Write shared location information to the SHARED file in .dist-info. + :param paths: A dictionary as described in the documentation for + :meth:`shared_locations`. + :param dry_run: If True, the action is logged but no file is actually + written. + :return: The path of the file written to. + """ + shared_path = os.path.join(self.path, 'SHARED') + logger.info('creating %s', shared_path) + if dry_run: + return None + lines = [] + for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): + path = paths[key] + if os.path.isdir(paths[key]): + lines.append('%s=%s' % (key, path)) + for ns in paths.get('namespace', ()): + lines.append('namespace=%s' % ns) + + with codecs.open(shared_path, 'w', encoding='utf-8') as f: + f.write('\n'.join(lines)) + return shared_path + + def get_distinfo_resource(self, path): + if path not in DIST_FILES: + raise DistlibException('invalid path for a dist-info file: ' + '%r at %r' % (path, self.path)) + finder = resources.finder_for_path(self.path) + if finder is None: + raise DistlibException('Unable to get a finder for %s' % self.path) + return finder.find(path) + + def get_distinfo_file(self, path): + """ + Returns a path located under the ``.dist-info`` directory. Returns a + string representing the path. + + :parameter path: a ``'/'``-separated path relative to the + ``.dist-info`` directory or an absolute path; + If *path* is an absolute path and doesn't start + with the ``.dist-info`` directory path, + a :class:`DistlibException` is raised + :type path: str + :rtype: str + """ + # Check if it is an absolute path # XXX use relpath, add tests + if path.find(os.sep) >= 0: + # it's an absolute path? + distinfo_dirname, path = path.split(os.sep)[-2:] + if distinfo_dirname != self.path.split(os.sep)[-1]: + raise DistlibException( + 'dist-info file %r does not belong to the %r %s ' + 'distribution' % (path, self.name, self.version)) + + # The file must be relative + if path not in DIST_FILES: + raise DistlibException('invalid path for a dist-info file: ' + '%r at %r' % (path, self.path)) + + return os.path.join(self.path, path) + + def list_distinfo_files(self): + """ + Iterates over the ``RECORD`` entries and returns paths for each line if + the path is pointing to a file located in the ``.dist-info`` directory + or one of its subdirectories. + + :returns: iterator of paths + """ + base = os.path.dirname(self.path) + for path, checksum, size in self._get_records(): + # XXX add separator or use real relpath algo + if not os.path.isabs(path): + path = os.path.join(base, path) + if path.startswith(self.path): + yield path + + def __eq__(self, other): + return (isinstance(other, InstalledDistribution) and + self.path == other.path) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + __hash__ = object.__hash__ + + +class EggInfoDistribution(BaseInstalledDistribution): + """Created with the *path* of the ``.egg-info`` directory or file provided + to the constructor. It reads the metadata contained in the file itself, or + if the given path happens to be a directory, the metadata is read from the + file ``PKG-INFO`` under that directory.""" + + requested = True # as we have no way of knowing, assume it was + shared_locations = {} + + def __init__(self, path, env=None): + def set_name_and_version(s, n, v): + s.name = n + s.key = n.lower() # for case-insensitive comparisons + s.version = v + + self.path = path + self.dist_path = env + if env and env._cache_enabled and path in env._cache_egg.path: + metadata = env._cache_egg.path[path].metadata + set_name_and_version(self, metadata.name, metadata.version) + else: + metadata = self._get_metadata(path) + + # Need to be set before caching + set_name_and_version(self, metadata.name, metadata.version) + + if env and env._cache_enabled: + env._cache_egg.add(self) + super(EggInfoDistribution, self).__init__(metadata, path, env) + + def _get_metadata(self, path): + requires = None + + def parse_requires_data(data): + """Create a list of dependencies from a requires.txt file. + + *data*: the contents of a setuptools-produced requires.txt file. + """ + reqs = [] + lines = data.splitlines() + for line in lines: + line = line.strip() + if line.startswith('['): + logger.warning('Unexpected line: quitting requirement scan: %r', + line) + break + r = parse_requirement(line) + if not r: + logger.warning('Not recognised as a requirement: %r', line) + continue + if r.extras: + logger.warning('extra requirements in requires.txt are ' + 'not supported') + if not r.constraints: + reqs.append(r.name) + else: + cons = ', '.join('%s%s' % c for c in r.constraints) + reqs.append('%s (%s)' % (r.name, cons)) + return reqs + + def parse_requires_path(req_path): + """Create a list of dependencies from a requires.txt file. + + *req_path*: the path to a setuptools-produced requires.txt file. + """ + + reqs = [] + try: + with codecs.open(req_path, 'r', 'utf-8') as fp: + reqs = parse_requires_data(fp.read()) + except IOError: + pass + return reqs + + tl_path = tl_data = None + if path.endswith('.egg'): + if os.path.isdir(path): + p = os.path.join(path, 'EGG-INFO') + meta_path = os.path.join(p, 'PKG-INFO') + metadata = Metadata(path=meta_path, scheme='legacy') + req_path = os.path.join(p, 'requires.txt') + tl_path = os.path.join(p, 'top_level.txt') + requires = parse_requires_path(req_path) + else: + # FIXME handle the case where zipfile is not available + zipf = zipimport.zipimporter(path) + fileobj = StringIO( + zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) + metadata = Metadata(fileobj=fileobj, scheme='legacy') + try: + data = zipf.get_data('EGG-INFO/requires.txt') + tl_data = zipf.get_data('EGG-INFO/top_level.txt').decode('utf-8') + requires = parse_requires_data(data.decode('utf-8')) + except IOError: + requires = None + elif path.endswith('.egg-info'): + if os.path.isdir(path): + req_path = os.path.join(path, 'requires.txt') + requires = parse_requires_path(req_path) + path = os.path.join(path, 'PKG-INFO') + tl_path = os.path.join(path, 'top_level.txt') + metadata = Metadata(path=path, scheme='legacy') + else: + raise DistlibException('path must end with .egg-info or .egg, ' + 'got %r' % path) + + if requires: + metadata.add_requirements(requires) + # look for top-level modules in top_level.txt, if present + if tl_data is None: + if tl_path is not None and os.path.exists(tl_path): + with open(tl_path, 'rb') as f: + tl_data = f.read().decode('utf-8') + if not tl_data: + tl_data = [] + else: + tl_data = tl_data.splitlines() + self.modules = tl_data + return metadata + + def __repr__(self): + return '' % ( + self.name, self.version, self.path) + + def __str__(self): + return "%s %s" % (self.name, self.version) + + def check_installed_files(self): + """ + Checks that the hashes and sizes of the files in ``RECORD`` are + matched by the files themselves. Returns a (possibly empty) list of + mismatches. Each entry in the mismatch list will be a tuple consisting + of the path, 'exists', 'size' or 'hash' according to what didn't match + (existence is checked first, then size, then hash), the expected + value and the actual value. + """ + mismatches = [] + record_path = os.path.join(self.path, 'installed-files.txt') + if os.path.exists(record_path): + for path, _, _ in self.list_installed_files(): + if path == record_path: + continue + if not os.path.exists(path): + mismatches.append((path, 'exists', True, False)) + return mismatches + + def list_installed_files(self): + """ + Iterates over the ``installed-files.txt`` entries and returns a tuple + ``(path, hash, size)`` for each line. + + :returns: a list of (path, hash, size) + """ + + def _md5(path): + f = open(path, 'rb') + try: + content = f.read() + finally: + f.close() + return hashlib.md5(content).hexdigest() + + def _size(path): + return os.stat(path).st_size + + record_path = os.path.join(self.path, 'installed-files.txt') + result = [] + if os.path.exists(record_path): + with codecs.open(record_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + p = os.path.normpath(os.path.join(self.path, line)) + # "./" is present as a marker between installed files + # and installation metadata files + if not os.path.exists(p): + logger.warning('Non-existent file: %s', p) + if p.endswith(('.pyc', '.pyo')): + continue + #otherwise fall through and fail + if not os.path.isdir(p): + result.append((p, _md5(p), _size(p))) + result.append((record_path, None, None)) + return result + + def list_distinfo_files(self, absolute=False): + """ + Iterates over the ``installed-files.txt`` entries and returns paths for + each line if the path is pointing to a file located in the + ``.egg-info`` directory or one of its subdirectories. + + :parameter absolute: If *absolute* is ``True``, each returned path is + transformed into a local absolute path. Otherwise the + raw value from ``installed-files.txt`` is returned. + :type absolute: boolean + :returns: iterator of paths + """ + record_path = os.path.join(self.path, 'installed-files.txt') + if os.path.exists(record_path): + skip = True + with codecs.open(record_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line == './': + skip = False + continue + if not skip: + p = os.path.normpath(os.path.join(self.path, line)) + if p.startswith(self.path): + if absolute: + yield p + else: + yield line + + def __eq__(self, other): + return (isinstance(other, EggInfoDistribution) and + self.path == other.path) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + __hash__ = object.__hash__ + +new_dist_class = InstalledDistribution +old_dist_class = EggInfoDistribution + + +class DependencyGraph(object): + """ + Represents a dependency graph between distributions. + + The dependency relationships are stored in an ``adjacency_list`` that maps + distributions to a list of ``(other, label)`` tuples where ``other`` + is a distribution and the edge is labeled with ``label`` (i.e. the version + specifier, if such was provided). Also, for more efficient traversal, for + every distribution ``x``, a list of predecessors is kept in + ``reverse_list[x]``. An edge from distribution ``a`` to + distribution ``b`` means that ``a`` depends on ``b``. If any missing + dependencies are found, they are stored in ``missing``, which is a + dictionary that maps distributions to a list of requirements that were not + provided by any other distributions. + """ + + def __init__(self): + self.adjacency_list = {} + self.reverse_list = {} + self.missing = {} + + def add_distribution(self, distribution): + """Add the *distribution* to the graph. + + :type distribution: :class:`distutils2.database.InstalledDistribution` + or :class:`distutils2.database.EggInfoDistribution` + """ + self.adjacency_list[distribution] = [] + self.reverse_list[distribution] = [] + #self.missing[distribution] = [] + + def add_edge(self, x, y, label=None): + """Add an edge from distribution *x* to distribution *y* with the given + *label*. + + :type x: :class:`distutils2.database.InstalledDistribution` or + :class:`distutils2.database.EggInfoDistribution` + :type y: :class:`distutils2.database.InstalledDistribution` or + :class:`distutils2.database.EggInfoDistribution` + :type label: ``str`` or ``None`` + """ + self.adjacency_list[x].append((y, label)) + # multiple edges are allowed, so be careful + if x not in self.reverse_list[y]: + self.reverse_list[y].append(x) + + def add_missing(self, distribution, requirement): + """ + Add a missing *requirement* for the given *distribution*. + + :type distribution: :class:`distutils2.database.InstalledDistribution` + or :class:`distutils2.database.EggInfoDistribution` + :type requirement: ``str`` + """ + logger.debug('%s missing %r', distribution, requirement) + self.missing.setdefault(distribution, []).append(requirement) + + def _repr_dist(self, dist): + return '%s %s' % (dist.name, dist.version) + + def repr_node(self, dist, level=1): + """Prints only a subgraph""" + output = [self._repr_dist(dist)] + for other, label in self.adjacency_list[dist]: + dist = self._repr_dist(other) + if label is not None: + dist = '%s [%s]' % (dist, label) + output.append(' ' * level + str(dist)) + suboutput = self.repr_node(other, level + 1) + subs = suboutput.split('\n') + output.extend(subs[1:]) + return '\n'.join(output) + + def to_dot(self, f, skip_disconnected=True): + """Writes a DOT output for the graph to the provided file *f*. + + If *skip_disconnected* is set to ``True``, then all distributions + that are not dependent on any other distribution are skipped. + + :type f: has to support ``file``-like operations + :type skip_disconnected: ``bool`` + """ + disconnected = [] + + f.write("digraph dependencies {\n") + for dist, adjs in self.adjacency_list.items(): + if len(adjs) == 0 and not skip_disconnected: + disconnected.append(dist) + for other, label in adjs: + if not label is None: + f.write('"%s" -> "%s" [label="%s"]\n' % + (dist.name, other.name, label)) + else: + f.write('"%s" -> "%s"\n' % (dist.name, other.name)) + if not skip_disconnected and len(disconnected) > 0: + f.write('subgraph disconnected {\n') + f.write('label = "Disconnected"\n') + f.write('bgcolor = red\n') + + for dist in disconnected: + f.write('"%s"' % dist.name) + f.write('\n') + f.write('}\n') + f.write('}\n') + + def topological_sort(self): + """ + Perform a topological sort of the graph. + :return: A tuple, the first element of which is a topologically sorted + list of distributions, and the second element of which is a + list of distributions that cannot be sorted because they have + circular dependencies and so form a cycle. + """ + result = [] + # Make a shallow copy of the adjacency list + alist = {} + for k, v in self.adjacency_list.items(): + alist[k] = v[:] + while True: + # See what we can remove in this run + to_remove = [] + for k, v in list(alist.items())[:]: + if not v: + to_remove.append(k) + del alist[k] + if not to_remove: + # What's left in alist (if anything) is a cycle. + break + # Remove from the adjacency list of others + for k, v in alist.items(): + alist[k] = [(d, r) for d, r in v if d not in to_remove] + logger.debug('Moving to result: %s', + ['%s (%s)' % (d.name, d.version) for d in to_remove]) + result.extend(to_remove) + return result, list(alist.keys()) + + def __repr__(self): + """Representation of the graph""" + output = [] + for dist, adjs in self.adjacency_list.items(): + output.append(self.repr_node(dist)) + return '\n'.join(output) + + +def make_graph(dists, scheme='default'): + """Makes a dependency graph from the given distributions. + + :parameter dists: a list of distributions + :type dists: list of :class:`distutils2.database.InstalledDistribution` and + :class:`distutils2.database.EggInfoDistribution` instances + :rtype: a :class:`DependencyGraph` instance + """ + scheme = get_scheme(scheme) + graph = DependencyGraph() + provided = {} # maps names to lists of (version, dist) tuples + + # first, build the graph and find out what's provided + for dist in dists: + graph.add_distribution(dist) + + for p in dist.provides: + name, version = parse_name_and_version(p) + logger.debug('Add to provided: %s, %s, %s', name, version, dist) + provided.setdefault(name, []).append((version, dist)) + + # now make the edges + for dist in dists: + requires = (dist.run_requires | dist.meta_requires | + dist.build_requires | dist.dev_requires) + for req in requires: + try: + matcher = scheme.matcher(req) + except UnsupportedVersionError: + # XXX compat-mode if cannot read the version + logger.warning('could not read version %r - using name only', + req) + name = req.split()[0] + matcher = scheme.matcher(name) + + name = matcher.key # case-insensitive + + matched = False + if name in provided: + for version, provider in provided[name]: + try: + match = matcher.match(version) + except UnsupportedVersionError: + match = False + + if match: + graph.add_edge(dist, provider, req) + matched = True + break + if not matched: + graph.add_missing(dist, req) + return graph + + +def get_dependent_dists(dists, dist): + """Recursively generate a list of distributions from *dists* that are + dependent on *dist*. + + :param dists: a list of distributions + :param dist: a distribution, member of *dists* for which we are interested + """ + if dist not in dists: + raise DistlibException('given distribution %r is not a member ' + 'of the list' % dist.name) + graph = make_graph(dists) + + dep = [dist] # dependent distributions + todo = graph.reverse_list[dist] # list of nodes we should inspect + + while todo: + d = todo.pop() + dep.append(d) + for succ in graph.reverse_list[d]: + if succ not in dep: + todo.append(succ) + + dep.pop(0) # remove dist from dep, was there to prevent infinite loops + return dep + + +def get_required_dists(dists, dist): + """Recursively generate a list of distributions from *dists* that are + required by *dist*. + + :param dists: a list of distributions + :param dist: a distribution, member of *dists* for which we are interested + """ + if dist not in dists: + raise DistlibException('given distribution %r is not a member ' + 'of the list' % dist.name) + graph = make_graph(dists) + + req = [] # required distributions + todo = graph.adjacency_list[dist] # list of nodes we should inspect + + while todo: + d = todo.pop()[0] + req.append(d) + for pred in graph.adjacency_list[d]: + if pred not in req: + todo.append(pred) + + return req + + +def make_dist(name, version, **kwargs): + """ + A convenience method for making a dist given just a name and version. + """ + summary = kwargs.pop('summary', 'Placeholder for summary') + md = Metadata(**kwargs) + md.name = name + md.version = version + md.summary = summary or 'Placeholder for summary' + return Distribution(md) diff --git a/venv/Lib/site-packages/distlib/index.py b/venv/Lib/site-packages/distlib/index.py new file mode 100644 index 00000000..7a87cdcf --- /dev/null +++ b/venv/Lib/site-packages/distlib/index.py @@ -0,0 +1,516 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +import hashlib +import logging +import os +import shutil +import subprocess +import tempfile +try: + from threading import Thread +except ImportError: + from dummy_threading import Thread + +from . import DistlibException +from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, + urlparse, build_opener, string_types) +from .util import cached_property, zip_dir, ServerProxy + +logger = logging.getLogger(__name__) + +DEFAULT_INDEX = 'https://pypi.org/pypi' +DEFAULT_REALM = 'pypi' + +class PackageIndex(object): + """ + This class represents a package index compatible with PyPI, the Python + Package Index. + """ + + boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' + + def __init__(self, url=None): + """ + Initialise an instance. + + :param url: The URL of the index. If not specified, the URL for PyPI is + used. + """ + self.url = url or DEFAULT_INDEX + self.read_configuration() + scheme, netloc, path, params, query, frag = urlparse(self.url) + if params or query or frag or scheme not in ('http', 'https'): + raise DistlibException('invalid repository: %s' % self.url) + self.password_handler = None + self.ssl_verifier = None + self.gpg = None + self.gpg_home = None + with open(os.devnull, 'w') as sink: + # Use gpg by default rather than gpg2, as gpg2 insists on + # prompting for passwords + for s in ('gpg', 'gpg2'): + try: + rc = subprocess.check_call([s, '--version'], stdout=sink, + stderr=sink) + if rc == 0: + self.gpg = s + break + except OSError: + pass + + def _get_pypirc_command(self): + """ + Get the distutils command for interacting with PyPI configurations. + :return: the command. + """ + from distutils.core import Distribution + from distutils.config import PyPIRCCommand + d = Distribution() + return PyPIRCCommand(d) + + def read_configuration(self): + """ + Read the PyPI access configuration as supported by distutils, getting + PyPI to do the actual work. This populates ``username``, ``password``, + ``realm`` and ``url`` attributes from the configuration. + """ + # get distutils to do the work + c = self._get_pypirc_command() + c.repository = self.url + cfg = c._read_pypirc() + self.username = cfg.get('username') + self.password = cfg.get('password') + self.realm = cfg.get('realm', 'pypi') + self.url = cfg.get('repository', self.url) + + def save_configuration(self): + """ + Save the PyPI access configuration. You must have set ``username`` and + ``password`` attributes before calling this method. + + Again, distutils is used to do the actual work. + """ + self.check_credentials() + # get distutils to do the work + c = self._get_pypirc_command() + c._store_pypirc(self.username, self.password) + + def check_credentials(self): + """ + Check that ``username`` and ``password`` have been set, and raise an + exception if not. + """ + if self.username is None or self.password is None: + raise DistlibException('username and password must be set') + pm = HTTPPasswordMgr() + _, netloc, _, _, _, _ = urlparse(self.url) + pm.add_password(self.realm, netloc, self.username, self.password) + self.password_handler = HTTPBasicAuthHandler(pm) + + def register(self, metadata): + """ + Register a distribution on PyPI, using the provided metadata. + + :param metadata: A :class:`Metadata` instance defining at least a name + and version number for the distribution to be + registered. + :return: The HTTP response received from PyPI upon submission of the + request. + """ + self.check_credentials() + metadata.validate() + d = metadata.todict() + d[':action'] = 'verify' + request = self.encode_request(d.items(), []) + response = self.send_request(request) + d[':action'] = 'submit' + request = self.encode_request(d.items(), []) + return self.send_request(request) + + def _reader(self, name, stream, outbuf): + """ + Thread runner for reading lines of from a subprocess into a buffer. + + :param name: The logical name of the stream (used for logging only). + :param stream: The stream to read from. This will typically a pipe + connected to the output stream of a subprocess. + :param outbuf: The list to append the read lines to. + """ + while True: + s = stream.readline() + if not s: + break + s = s.decode('utf-8').rstrip() + outbuf.append(s) + logger.debug('%s: %s' % (name, s)) + stream.close() + + def get_sign_command(self, filename, signer, sign_password, + keystore=None): + """ + Return a suitable command for signing a file. + + :param filename: The pathname to the file to be signed. + :param signer: The identifier of the signer of the file. + :param sign_password: The passphrase for the signer's + private key used for signing. + :param keystore: The path to a directory which contains the keys + used in verification. If not specified, the + instance's ``gpg_home`` attribute is used instead. + :return: The signing command as a list suitable to be + passed to :class:`subprocess.Popen`. + """ + cmd = [self.gpg, '--status-fd', '2', '--no-tty'] + if keystore is None: + keystore = self.gpg_home + if keystore: + cmd.extend(['--homedir', keystore]) + if sign_password is not None: + cmd.extend(['--batch', '--passphrase-fd', '0']) + td = tempfile.mkdtemp() + sf = os.path.join(td, os.path.basename(filename) + '.asc') + cmd.extend(['--detach-sign', '--armor', '--local-user', + signer, '--output', sf, filename]) + logger.debug('invoking: %s', ' '.join(cmd)) + return cmd, sf + + def run_command(self, cmd, input_data=None): + """ + Run a command in a child process , passing it any input data specified. + + :param cmd: The command to run. + :param input_data: If specified, this must be a byte string containing + data to be sent to the child process. + :return: A tuple consisting of the subprocess' exit code, a list of + lines read from the subprocess' ``stdout``, and a list of + lines read from the subprocess' ``stderr``. + """ + kwargs = { + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE, + } + if input_data is not None: + kwargs['stdin'] = subprocess.PIPE + stdout = [] + stderr = [] + p = subprocess.Popen(cmd, **kwargs) + # We don't use communicate() here because we may need to + # get clever with interacting with the command + t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) + t1.start() + t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) + t2.start() + if input_data is not None: + p.stdin.write(input_data) + p.stdin.close() + + p.wait() + t1.join() + t2.join() + return p.returncode, stdout, stderr + + def sign_file(self, filename, signer, sign_password, keystore=None): + """ + Sign a file. + + :param filename: The pathname to the file to be signed. + :param signer: The identifier of the signer of the file. + :param sign_password: The passphrase for the signer's + private key used for signing. + :param keystore: The path to a directory which contains the keys + used in signing. If not specified, the instance's + ``gpg_home`` attribute is used instead. + :return: The absolute pathname of the file where the signature is + stored. + """ + cmd, sig_file = self.get_sign_command(filename, signer, sign_password, + keystore) + rc, stdout, stderr = self.run_command(cmd, + sign_password.encode('utf-8')) + if rc != 0: + raise DistlibException('sign command failed with error ' + 'code %s' % rc) + return sig_file + + def upload_file(self, metadata, filename, signer=None, sign_password=None, + filetype='sdist', pyversion='source', keystore=None): + """ + Upload a release file to the index. + + :param metadata: A :class:`Metadata` instance defining at least a name + and version number for the file to be uploaded. + :param filename: The pathname of the file to be uploaded. + :param signer: The identifier of the signer of the file. + :param sign_password: The passphrase for the signer's + private key used for signing. + :param filetype: The type of the file being uploaded. This is the + distutils command which produced that file, e.g. + ``sdist`` or ``bdist_wheel``. + :param pyversion: The version of Python which the release relates + to. For code compatible with any Python, this would + be ``source``, otherwise it would be e.g. ``3.2``. + :param keystore: The path to a directory which contains the keys + used in signing. If not specified, the instance's + ``gpg_home`` attribute is used instead. + :return: The HTTP response received from PyPI upon submission of the + request. + """ + self.check_credentials() + if not os.path.exists(filename): + raise DistlibException('not found: %s' % filename) + metadata.validate() + d = metadata.todict() + sig_file = None + if signer: + if not self.gpg: + logger.warning('no signing program available - not signed') + else: + sig_file = self.sign_file(filename, signer, sign_password, + keystore) + with open(filename, 'rb') as f: + file_data = f.read() + md5_digest = hashlib.md5(file_data).hexdigest() + sha256_digest = hashlib.sha256(file_data).hexdigest() + d.update({ + ':action': 'file_upload', + 'protocol_version': '1', + 'filetype': filetype, + 'pyversion': pyversion, + 'md5_digest': md5_digest, + 'sha256_digest': sha256_digest, + }) + files = [('content', os.path.basename(filename), file_data)] + if sig_file: + with open(sig_file, 'rb') as f: + sig_data = f.read() + files.append(('gpg_signature', os.path.basename(sig_file), + sig_data)) + shutil.rmtree(os.path.dirname(sig_file)) + request = self.encode_request(d.items(), files) + return self.send_request(request) + + def upload_documentation(self, metadata, doc_dir): + """ + Upload documentation to the index. + + :param metadata: A :class:`Metadata` instance defining at least a name + and version number for the documentation to be + uploaded. + :param doc_dir: The pathname of the directory which contains the + documentation. This should be the directory that + contains the ``index.html`` for the documentation. + :return: The HTTP response received from PyPI upon submission of the + request. + """ + self.check_credentials() + if not os.path.isdir(doc_dir): + raise DistlibException('not a directory: %r' % doc_dir) + fn = os.path.join(doc_dir, 'index.html') + if not os.path.exists(fn): + raise DistlibException('not found: %r' % fn) + metadata.validate() + name, version = metadata.name, metadata.version + zip_data = zip_dir(doc_dir).getvalue() + fields = [(':action', 'doc_upload'), + ('name', name), ('version', version)] + files = [('content', name, zip_data)] + request = self.encode_request(fields, files) + return self.send_request(request) + + def get_verify_command(self, signature_filename, data_filename, + keystore=None): + """ + Return a suitable command for verifying a file. + + :param signature_filename: The pathname to the file containing the + signature. + :param data_filename: The pathname to the file containing the + signed data. + :param keystore: The path to a directory which contains the keys + used in verification. If not specified, the + instance's ``gpg_home`` attribute is used instead. + :return: The verifying command as a list suitable to be + passed to :class:`subprocess.Popen`. + """ + cmd = [self.gpg, '--status-fd', '2', '--no-tty'] + if keystore is None: + keystore = self.gpg_home + if keystore: + cmd.extend(['--homedir', keystore]) + cmd.extend(['--verify', signature_filename, data_filename]) + logger.debug('invoking: %s', ' '.join(cmd)) + return cmd + + def verify_signature(self, signature_filename, data_filename, + keystore=None): + """ + Verify a signature for a file. + + :param signature_filename: The pathname to the file containing the + signature. + :param data_filename: The pathname to the file containing the + signed data. + :param keystore: The path to a directory which contains the keys + used in verification. If not specified, the + instance's ``gpg_home`` attribute is used instead. + :return: True if the signature was verified, else False. + """ + if not self.gpg: + raise DistlibException('verification unavailable because gpg ' + 'unavailable') + cmd = self.get_verify_command(signature_filename, data_filename, + keystore) + rc, stdout, stderr = self.run_command(cmd) + if rc not in (0, 1): + raise DistlibException('verify command failed with error ' + 'code %s' % rc) + return rc == 0 + + def download_file(self, url, destfile, digest=None, reporthook=None): + """ + This is a convenience method for downloading a file from an URL. + Normally, this will be a file from the index, though currently + no check is made for this (i.e. a file can be downloaded from + anywhere). + + The method is just like the :func:`urlretrieve` function in the + standard library, except that it allows digest computation to be + done during download and checking that the downloaded data + matched any expected value. + + :param url: The URL of the file to be downloaded (assumed to be + available via an HTTP GET request). + :param destfile: The pathname where the downloaded file is to be + saved. + :param digest: If specified, this must be a (hasher, value) + tuple, where hasher is the algorithm used (e.g. + ``'md5'``) and ``value`` is the expected value. + :param reporthook: The same as for :func:`urlretrieve` in the + standard library. + """ + if digest is None: + digester = None + logger.debug('No digest specified') + else: + if isinstance(digest, (list, tuple)): + hasher, digest = digest + else: + hasher = 'md5' + digester = getattr(hashlib, hasher)() + logger.debug('Digest specified: %s' % digest) + # The following code is equivalent to urlretrieve. + # We need to do it this way so that we can compute the + # digest of the file as we go. + with open(destfile, 'wb') as dfp: + # addinfourl is not a context manager on 2.x + # so we have to use try/finally + sfp = self.send_request(Request(url)) + try: + headers = sfp.info() + blocksize = 8192 + size = -1 + read = 0 + blocknum = 0 + if "content-length" in headers: + size = int(headers["Content-Length"]) + if reporthook: + reporthook(blocknum, blocksize, size) + while True: + block = sfp.read(blocksize) + if not block: + break + read += len(block) + dfp.write(block) + if digester: + digester.update(block) + blocknum += 1 + if reporthook: + reporthook(blocknum, blocksize, size) + finally: + sfp.close() + + # check that we got the whole file, if we can + if size >= 0 and read < size: + raise DistlibException( + 'retrieval incomplete: got only %d out of %d bytes' + % (read, size)) + # if we have a digest, it must match. + if digester: + actual = digester.hexdigest() + if digest != actual: + raise DistlibException('%s digest mismatch for %s: expected ' + '%s, got %s' % (hasher, destfile, + digest, actual)) + logger.debug('Digest verified: %s', digest) + + def send_request(self, req): + """ + Send a standard library :class:`Request` to PyPI and return its + response. + + :param req: The request to send. + :return: The HTTP response from PyPI (a standard library HTTPResponse). + """ + handlers = [] + if self.password_handler: + handlers.append(self.password_handler) + if self.ssl_verifier: + handlers.append(self.ssl_verifier) + opener = build_opener(*handlers) + return opener.open(req) + + def encode_request(self, fields, files): + """ + Encode fields and files for posting to an HTTP server. + + :param fields: The fields to send as a list of (fieldname, value) + tuples. + :param files: The files to send as a list of (fieldname, filename, + file_bytes) tuple. + """ + # Adapted from packaging, which in turn was adapted from + # http://code.activestate.com/recipes/146306 + + parts = [] + boundary = self.boundary + for k, values in fields: + if not isinstance(values, (list, tuple)): + values = [values] + + for v in values: + parts.extend(( + b'--' + boundary, + ('Content-Disposition: form-data; name="%s"' % + k).encode('utf-8'), + b'', + v.encode('utf-8'))) + for key, filename, value in files: + parts.extend(( + b'--' + boundary, + ('Content-Disposition: form-data; name="%s"; filename="%s"' % + (key, filename)).encode('utf-8'), + b'', + value)) + + parts.extend((b'--' + boundary + b'--', b'')) + + body = b'\r\n'.join(parts) + ct = b'multipart/form-data; boundary=' + boundary + headers = { + 'Content-type': ct, + 'Content-length': str(len(body)) + } + return Request(self.url, body, headers) + + def search(self, terms, operator=None): + if isinstance(terms, string_types): + terms = {'name': terms} + rpc_proxy = ServerProxy(self.url, timeout=3.0) + try: + return rpc_proxy.search(terms, operator or 'and') + finally: + rpc_proxy('close')() diff --git a/venv/Lib/site-packages/distlib/locators.py b/venv/Lib/site-packages/distlib/locators.py new file mode 100644 index 00000000..12a1d063 --- /dev/null +++ b/venv/Lib/site-packages/distlib/locators.py @@ -0,0 +1,1302 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2015 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# + +import gzip +from io import BytesIO +import json +import logging +import os +import posixpath +import re +try: + import threading +except ImportError: # pragma: no cover + import dummy_threading as threading +import zlib + +from . import DistlibException +from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, + queue, quote, unescape, string_types, build_opener, + HTTPRedirectHandler as BaseRedirectHandler, text_type, + Request, HTTPError, URLError) +from .database import Distribution, DistributionPath, make_dist +from .metadata import Metadata, MetadataInvalidError +from .util import (cached_property, parse_credentials, ensure_slash, + split_filename, get_project_data, parse_requirement, + parse_name_and_version, ServerProxy, normalize_name) +from .version import get_scheme, UnsupportedVersionError +from .wheel import Wheel, is_compatible + +logger = logging.getLogger(__name__) + +HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)') +CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) +HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') +DEFAULT_INDEX = 'https://pypi.org/pypi' + +def get_all_distribution_names(url=None): + """ + Return all distribution names known by an index. + :param url: The URL of the index. + :return: A list of all known distribution names. + """ + if url is None: + url = DEFAULT_INDEX + client = ServerProxy(url, timeout=3.0) + try: + return client.list_packages() + finally: + client('close')() + +class RedirectHandler(BaseRedirectHandler): + """ + A class to work around a bug in some Python 3.2.x releases. + """ + # There's a bug in the base version for some 3.2.x + # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header + # returns e.g. /abc, it bails because it says the scheme '' + # is bogus, when actually it should use the request's + # URL for the scheme. See Python issue #13696. + def http_error_302(self, req, fp, code, msg, headers): + # Some servers (incorrectly) return multiple Location headers + # (so probably same goes for URI). Use first header. + newurl = None + for key in ('location', 'uri'): + if key in headers: + newurl = headers[key] + break + if newurl is None: # pragma: no cover + return + urlparts = urlparse(newurl) + if urlparts.scheme == '': + newurl = urljoin(req.get_full_url(), newurl) + if hasattr(headers, 'replace_header'): + headers.replace_header(key, newurl) + else: + headers[key] = newurl + return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, + headers) + + http_error_301 = http_error_303 = http_error_307 = http_error_302 + +class Locator(object): + """ + A base class for locators - things that locate distributions. + """ + source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') + binary_extensions = ('.egg', '.exe', '.whl') + excluded_extensions = ('.pdf',) + + # A list of tags indicating which wheels you want to match. The default + # value of None matches against the tags compatible with the running + # Python. If you want to match other values, set wheel_tags on a locator + # instance to a list of tuples (pyver, abi, arch) which you want to match. + wheel_tags = None + + downloadable_extensions = source_extensions + ('.whl',) + + def __init__(self, scheme='default'): + """ + Initialise an instance. + :param scheme: Because locators look for most recent versions, they + need to know the version scheme to use. This specifies + the current PEP-recommended scheme - use ``'legacy'`` + if you need to support existing distributions on PyPI. + """ + self._cache = {} + self.scheme = scheme + # Because of bugs in some of the handlers on some of the platforms, + # we use our own opener rather than just using urlopen. + self.opener = build_opener(RedirectHandler()) + # If get_project() is called from locate(), the matcher instance + # is set from the requirement passed to locate(). See issue #18 for + # why this can be useful to know. + self.matcher = None + self.errors = queue.Queue() + + def get_errors(self): + """ + Return any errors which have occurred. + """ + result = [] + while not self.errors.empty(): # pragma: no cover + try: + e = self.errors.get(False) + result.append(e) + except self.errors.Empty: + continue + self.errors.task_done() + return result + + def clear_errors(self): + """ + Clear any errors which may have been logged. + """ + # Just get the errors and throw them away + self.get_errors() + + def clear_cache(self): + self._cache.clear() + + def _get_scheme(self): + return self._scheme + + def _set_scheme(self, value): + self._scheme = value + + scheme = property(_get_scheme, _set_scheme) + + def _get_project(self, name): + """ + For a given project, get a dictionary mapping available versions to Distribution + instances. + + This should be implemented in subclasses. + + If called from a locate() request, self.matcher will be set to a + matcher for the requirement to satisfy, otherwise it will be None. + """ + raise NotImplementedError('Please implement in the subclass') + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + raise NotImplementedError('Please implement in the subclass') + + def get_project(self, name): + """ + For a given project, get a dictionary mapping available versions to Distribution + instances. + + This calls _get_project to do all the work, and just implements a caching layer on top. + """ + if self._cache is None: # pragma: no cover + result = self._get_project(name) + elif name in self._cache: + result = self._cache[name] + else: + self.clear_errors() + result = self._get_project(name) + self._cache[name] = result + return result + + def score_url(self, url): + """ + Give an url a score which can be used to choose preferred URLs + for a given project release. + """ + t = urlparse(url) + basename = posixpath.basename(t.path) + compatible = True + is_wheel = basename.endswith('.whl') + is_downloadable = basename.endswith(self.downloadable_extensions) + if is_wheel: + compatible = is_compatible(Wheel(basename), self.wheel_tags) + return (t.scheme == 'https', 'pypi.org' in t.netloc, + is_downloadable, is_wheel, compatible, basename) + + def prefer_url(self, url1, url2): + """ + Choose one of two URLs where both are candidates for distribution + archives for the same version of a distribution (for example, + .tar.gz vs. zip). + + The current implementation favours https:// URLs over http://, archives + from PyPI over those from other locations, wheel compatibility (if a + wheel) and then the archive name. + """ + result = url2 + if url1: + s1 = self.score_url(url1) + s2 = self.score_url(url2) + if s1 > s2: + result = url1 + if result != url2: + logger.debug('Not replacing %r with %r', url1, url2) + else: + logger.debug('Replacing %r with %r', url1, url2) + return result + + def split_filename(self, filename, project_name): + """ + Attempt to split a filename in project name, version and Python version. + """ + return split_filename(filename, project_name) + + def convert_url_to_download_info(self, url, project_name): + """ + See if a URL is a candidate for a download URL for a project (the URL + has typically been scraped from an HTML page). + + If it is, a dictionary is returned with keys "name", "version", + "filename" and "url"; otherwise, None is returned. + """ + def same_project(name1, name2): + return normalize_name(name1) == normalize_name(name2) + + result = None + scheme, netloc, path, params, query, frag = urlparse(url) + if frag.lower().startswith('egg='): # pragma: no cover + logger.debug('%s: version hint in fragment: %r', + project_name, frag) + m = HASHER_HASH.match(frag) + if m: + algo, digest = m.groups() + else: + algo, digest = None, None + origpath = path + if path and path[-1] == '/': # pragma: no cover + path = path[:-1] + if path.endswith('.whl'): + try: + wheel = Wheel(path) + if not is_compatible(wheel, self.wheel_tags): + logger.debug('Wheel not compatible: %s', path) + else: + if project_name is None: + include = True + else: + include = same_project(wheel.name, project_name) + if include: + result = { + 'name': wheel.name, + 'version': wheel.version, + 'filename': wheel.filename, + 'url': urlunparse((scheme, netloc, origpath, + params, query, '')), + 'python-version': ', '.join( + ['.'.join(list(v[2:])) for v in wheel.pyver]), + } + except Exception as e: # pragma: no cover + logger.warning('invalid path for wheel: %s', path) + elif not path.endswith(self.downloadable_extensions): # pragma: no cover + logger.debug('Not downloadable: %s', path) + else: # downloadable extension + path = filename = posixpath.basename(path) + for ext in self.downloadable_extensions: + if path.endswith(ext): + path = path[:-len(ext)] + t = self.split_filename(path, project_name) + if not t: # pragma: no cover + logger.debug('No match for project/version: %s', path) + else: + name, version, pyver = t + if not project_name or same_project(project_name, name): + result = { + 'name': name, + 'version': version, + 'filename': filename, + 'url': urlunparse((scheme, netloc, origpath, + params, query, '')), + #'packagetype': 'sdist', + } + if pyver: # pragma: no cover + result['python-version'] = pyver + break + if result and algo: + result['%s_digest' % algo] = digest + return result + + def _get_digest(self, info): + """ + Get a digest from a dictionary by looking at a "digests" dictionary + or keys of the form 'algo_digest'. + + Returns a 2-tuple (algo, digest) if found, else None. Currently + looks only for SHA256, then MD5. + """ + result = None + if 'digests' in info: + digests = info['digests'] + for algo in ('sha256', 'md5'): + if algo in digests: + result = (algo, digests[algo]) + break + if not result: + for algo in ('sha256', 'md5'): + key = '%s_digest' % algo + if key in info: + result = (algo, info[key]) + break + return result + + def _update_version_data(self, result, info): + """ + Update a result dictionary (the final result from _get_project) with a + dictionary for a specific version, which typically holds information + gleaned from a filename or URL for an archive for the distribution. + """ + name = info.pop('name') + version = info.pop('version') + if version in result: + dist = result[version] + md = dist.metadata + else: + dist = make_dist(name, version, scheme=self.scheme) + md = dist.metadata + dist.digest = digest = self._get_digest(info) + url = info['url'] + result['digests'][url] = digest + if md.source_url != info['url']: + md.source_url = self.prefer_url(md.source_url, url) + result['urls'].setdefault(version, set()).add(url) + dist.locator = self + result[version] = dist + + def locate(self, requirement, prereleases=False): + """ + Find the most recent distribution which matches the given + requirement. + + :param requirement: A requirement of the form 'foo (1.0)' or perhaps + 'foo (>= 1.0, < 2.0, != 1.3)' + :param prereleases: If ``True``, allow pre-release versions + to be located. Otherwise, pre-release versions + are not returned. + :return: A :class:`Distribution` instance, or ``None`` if no such + distribution could be located. + """ + result = None + r = parse_requirement(requirement) + if r is None: # pragma: no cover + raise DistlibException('Not a valid requirement: %r' % requirement) + scheme = get_scheme(self.scheme) + self.matcher = matcher = scheme.matcher(r.requirement) + logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) + versions = self.get_project(r.name) + if len(versions) > 2: # urls and digests keys are present + # sometimes, versions are invalid + slist = [] + vcls = matcher.version_class + for k in versions: + if k in ('urls', 'digests'): + continue + try: + if not matcher.match(k): + logger.debug('%s did not match %r', matcher, k) + else: + if prereleases or not vcls(k).is_prerelease: + slist.append(k) + else: + logger.debug('skipping pre-release ' + 'version %s of %s', k, matcher.name) + except Exception: # pragma: no cover + logger.warning('error matching %s with %r', matcher, k) + pass # slist.append(k) + if len(slist) > 1: + slist = sorted(slist, key=scheme.key) + if slist: + logger.debug('sorted list: %s', slist) + version = slist[-1] + result = versions[version] + if result: + if r.extras: + result.extras = r.extras + result.download_urls = versions.get('urls', {}).get(version, set()) + d = {} + sd = versions.get('digests', {}) + for url in result.download_urls: + if url in sd: # pragma: no cover + d[url] = sd[url] + result.digests = d + self.matcher = None + return result + + +class PyPIRPCLocator(Locator): + """ + This locator uses XML-RPC to locate distributions. It therefore + cannot be used with simple mirrors (that only mirror file content). + """ + def __init__(self, url, **kwargs): + """ + Initialise an instance. + + :param url: The URL to use for XML-RPC. + :param kwargs: Passed to the superclass constructor. + """ + super(PyPIRPCLocator, self).__init__(**kwargs) + self.base_url = url + self.client = ServerProxy(url, timeout=3.0) + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + return set(self.client.list_packages()) + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + versions = self.client.package_releases(name, True) + for v in versions: + urls = self.client.release_urls(name, v) + data = self.client.release_data(name, v) + metadata = Metadata(scheme=self.scheme) + metadata.name = data['name'] + metadata.version = data['version'] + metadata.license = data.get('license') + metadata.keywords = data.get('keywords', []) + metadata.summary = data.get('summary') + dist = Distribution(metadata) + if urls: + info = urls[0] + metadata.source_url = info['url'] + dist.digest = self._get_digest(info) + dist.locator = self + result[v] = dist + for info in urls: + url = info['url'] + digest = self._get_digest(info) + result['urls'].setdefault(v, set()).add(url) + result['digests'][url] = digest + return result + +class PyPIJSONLocator(Locator): + """ + This locator uses PyPI's JSON interface. It's very limited in functionality + and probably not worth using. + """ + def __init__(self, url, **kwargs): + super(PyPIJSONLocator, self).__init__(**kwargs) + self.base_url = ensure_slash(url) + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + raise NotImplementedError('Not available from this locator') + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + url = urljoin(self.base_url, '%s/json' % quote(name)) + try: + resp = self.opener.open(url) + data = resp.read().decode() # for now + d = json.loads(data) + md = Metadata(scheme=self.scheme) + data = d['info'] + md.name = data['name'] + md.version = data['version'] + md.license = data.get('license') + md.keywords = data.get('keywords', []) + md.summary = data.get('summary') + dist = Distribution(md) + dist.locator = self + urls = d['urls'] + result[md.version] = dist + for info in d['urls']: + url = info['url'] + dist.download_urls.add(url) + dist.digests[url] = self._get_digest(info) + result['urls'].setdefault(md.version, set()).add(url) + result['digests'][url] = self._get_digest(info) + # Now get other releases + for version, infos in d['releases'].items(): + if version == md.version: + continue # already done + omd = Metadata(scheme=self.scheme) + omd.name = md.name + omd.version = version + odist = Distribution(omd) + odist.locator = self + result[version] = odist + for info in infos: + url = info['url'] + odist.download_urls.add(url) + odist.digests[url] = self._get_digest(info) + result['urls'].setdefault(version, set()).add(url) + result['digests'][url] = self._get_digest(info) +# for info in urls: +# md.source_url = info['url'] +# dist.digest = self._get_digest(info) +# dist.locator = self +# for info in urls: +# url = info['url'] +# result['urls'].setdefault(md.version, set()).add(url) +# result['digests'][url] = self._get_digest(info) + except Exception as e: + self.errors.put(text_type(e)) + logger.exception('JSON fetch failed: %s', e) + return result + + +class Page(object): + """ + This class represents a scraped HTML page. + """ + # The following slightly hairy-looking regex just looks for the contents of + # an anchor link, which has an attribute "href" either immediately preceded + # or immediately followed by a "rel" attribute. The attribute values can be + # declared with double quotes, single quotes or no quotes - which leads to + # the length of the expression. + _href = re.compile(""" +(rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*))\\s+)? +href\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)) +(\\s+rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)))? +""", re.I | re.S | re.X) + _base = re.compile(r"""]+)""", re.I | re.S) + + def __init__(self, data, url): + """ + Initialise an instance with the Unicode page contents and the URL they + came from. + """ + self.data = data + self.base_url = self.url = url + m = self._base.search(self.data) + if m: + self.base_url = m.group(1) + + _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) + + @cached_property + def links(self): + """ + Return the URLs of all the links on a page together with information + about their "rel" attribute, for determining which ones to treat as + downloads and which ones to queue for further scraping. + """ + def clean(url): + "Tidy up an URL." + scheme, netloc, path, params, query, frag = urlparse(url) + return urlunparse((scheme, netloc, quote(path), + params, query, frag)) + + result = set() + for match in self._href.finditer(self.data): + d = match.groupdict('') + rel = (d['rel1'] or d['rel2'] or d['rel3'] or + d['rel4'] or d['rel5'] or d['rel6']) + url = d['url1'] or d['url2'] or d['url3'] + url = urljoin(self.base_url, url) + url = unescape(url) + url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) + result.add((url, rel)) + # We sort the result, hoping to bring the most recent versions + # to the front + result = sorted(result, key=lambda t: t[0], reverse=True) + return result + + +class SimpleScrapingLocator(Locator): + """ + A locator which scrapes HTML pages to locate downloads for a distribution. + This runs multiple threads to do the I/O; performance is at least as good + as pip's PackageFinder, which works in an analogous fashion. + """ + + # These are used to deal with various Content-Encoding schemes. + decoders = { + 'deflate': zlib.decompress, + 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(d)).read(), + 'none': lambda b: b, + } + + def __init__(self, url, timeout=None, num_workers=10, **kwargs): + """ + Initialise an instance. + :param url: The root URL to use for scraping. + :param timeout: The timeout, in seconds, to be applied to requests. + This defaults to ``None`` (no timeout specified). + :param num_workers: The number of worker threads you want to do I/O, + This defaults to 10. + :param kwargs: Passed to the superclass. + """ + super(SimpleScrapingLocator, self).__init__(**kwargs) + self.base_url = ensure_slash(url) + self.timeout = timeout + self._page_cache = {} + self._seen = set() + self._to_fetch = queue.Queue() + self._bad_hosts = set() + self.skip_externals = False + self.num_workers = num_workers + self._lock = threading.RLock() + # See issue #45: we need to be resilient when the locator is used + # in a thread, e.g. with concurrent.futures. We can't use self._lock + # as it is for coordinating our internal threads - the ones created + # in _prepare_threads. + self._gplock = threading.RLock() + self.platform_check = False # See issue #112 + + def _prepare_threads(self): + """ + Threads are created only when get_project is called, and terminate + before it returns. They are there primarily to parallelise I/O (i.e. + fetching web pages). + """ + self._threads = [] + for i in range(self.num_workers): + t = threading.Thread(target=self._fetch) + t.setDaemon(True) + t.start() + self._threads.append(t) + + def _wait_threads(self): + """ + Tell all the threads to terminate (by sending a sentinel value) and + wait for them to do so. + """ + # Note that you need two loops, since you can't say which + # thread will get each sentinel + for t in self._threads: + self._to_fetch.put(None) # sentinel + for t in self._threads: + t.join() + self._threads = [] + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + with self._gplock: + self.result = result + self.project_name = name + url = urljoin(self.base_url, '%s/' % quote(name)) + self._seen.clear() + self._page_cache.clear() + self._prepare_threads() + try: + logger.debug('Queueing %s', url) + self._to_fetch.put(url) + self._to_fetch.join() + finally: + self._wait_threads() + del self.result + return result + + platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|' + r'win(32|_amd64)|macosx_?\d+)\b', re.I) + + def _is_platform_dependent(self, url): + """ + Does an URL refer to a platform-specific download? + """ + return self.platform_dependent.search(url) + + def _process_download(self, url): + """ + See if an URL is a suitable download for a project. + + If it is, register information in the result dictionary (for + _get_project) about the specific version it's for. + + Note that the return value isn't actually used other than as a boolean + value. + """ + if self.platform_check and self._is_platform_dependent(url): + info = None + else: + info = self.convert_url_to_download_info(url, self.project_name) + logger.debug('process_download: %s -> %s', url, info) + if info: + with self._lock: # needed because self.result is shared + self._update_version_data(self.result, info) + return info + + def _should_queue(self, link, referrer, rel): + """ + Determine whether a link URL from a referring page and with a + particular "rel" attribute should be queued for scraping. + """ + scheme, netloc, path, _, _, _ = urlparse(link) + if path.endswith(self.source_extensions + self.binary_extensions + + self.excluded_extensions): + result = False + elif self.skip_externals and not link.startswith(self.base_url): + result = False + elif not referrer.startswith(self.base_url): + result = False + elif rel not in ('homepage', 'download'): + result = False + elif scheme not in ('http', 'https', 'ftp'): + result = False + elif self._is_platform_dependent(link): + result = False + else: + host = netloc.split(':', 1)[0] + if host.lower() == 'localhost': + result = False + else: + result = True + logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, + referrer, result) + return result + + def _fetch(self): + """ + Get a URL to fetch from the work queue, get the HTML page, examine its + links for download candidates and candidates for further scraping. + + This is a handy method to run in a thread. + """ + while True: + url = self._to_fetch.get() + try: + if url: + page = self.get_page(url) + if page is None: # e.g. after an error + continue + for link, rel in page.links: + if link not in self._seen: + try: + self._seen.add(link) + if (not self._process_download(link) and + self._should_queue(link, url, rel)): + logger.debug('Queueing %s from %s', link, url) + self._to_fetch.put(link) + except MetadataInvalidError: # e.g. invalid versions + pass + except Exception as e: # pragma: no cover + self.errors.put(text_type(e)) + finally: + # always do this, to avoid hangs :-) + self._to_fetch.task_done() + if not url: + #logger.debug('Sentinel seen, quitting.') + break + + def get_page(self, url): + """ + Get the HTML for an URL, possibly from an in-memory cache. + + XXX TODO Note: this cache is never actually cleared. It's assumed that + the data won't get stale over the lifetime of a locator instance (not + necessarily true for the default_locator). + """ + # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api + scheme, netloc, path, _, _, _ = urlparse(url) + if scheme == 'file' and os.path.isdir(url2pathname(path)): + url = urljoin(ensure_slash(url), 'index.html') + + if url in self._page_cache: + result = self._page_cache[url] + logger.debug('Returning %s from cache: %s', url, result) + else: + host = netloc.split(':', 1)[0] + result = None + if host in self._bad_hosts: + logger.debug('Skipping %s due to bad host %s', url, host) + else: + req = Request(url, headers={'Accept-encoding': 'identity'}) + try: + logger.debug('Fetching %s', url) + resp = self.opener.open(req, timeout=self.timeout) + logger.debug('Fetched %s', url) + headers = resp.info() + content_type = headers.get('Content-Type', '') + if HTML_CONTENT_TYPE.match(content_type): + final_url = resp.geturl() + data = resp.read() + encoding = headers.get('Content-Encoding') + if encoding: + decoder = self.decoders[encoding] # fail if not found + data = decoder(data) + encoding = 'utf-8' + m = CHARSET.search(content_type) + if m: + encoding = m.group(1) + try: + data = data.decode(encoding) + except UnicodeError: # pragma: no cover + data = data.decode('latin-1') # fallback + result = Page(data, final_url) + self._page_cache[final_url] = result + except HTTPError as e: + if e.code != 404: + logger.exception('Fetch failed: %s: %s', url, e) + except URLError as e: # pragma: no cover + logger.exception('Fetch failed: %s: %s', url, e) + with self._lock: + self._bad_hosts.add(host) + except Exception as e: # pragma: no cover + logger.exception('Fetch failed: %s: %s', url, e) + finally: + self._page_cache[url] = result # even if None (failure) + return result + + _distname_re = re.compile(']*>([^<]+)<') + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + result = set() + page = self.get_page(self.base_url) + if not page: + raise DistlibException('Unable to get %s' % self.base_url) + for match in self._distname_re.finditer(page.data): + result.add(match.group(1)) + return result + +class DirectoryLocator(Locator): + """ + This class locates distributions in a directory tree. + """ + + def __init__(self, path, **kwargs): + """ + Initialise an instance. + :param path: The root of the directory tree to search. + :param kwargs: Passed to the superclass constructor, + except for: + * recursive - if True (the default), subdirectories are + recursed into. If False, only the top-level directory + is searched, + """ + self.recursive = kwargs.pop('recursive', True) + super(DirectoryLocator, self).__init__(**kwargs) + path = os.path.abspath(path) + if not os.path.isdir(path): # pragma: no cover + raise DistlibException('Not a directory: %r' % path) + self.base_dir = path + + def should_include(self, filename, parent): + """ + Should a filename be considered as a candidate for a distribution + archive? As well as the filename, the directory which contains it + is provided, though not used by the current implementation. + """ + return filename.endswith(self.downloadable_extensions) + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + for root, dirs, files in os.walk(self.base_dir): + for fn in files: + if self.should_include(fn, root): + fn = os.path.join(root, fn) + url = urlunparse(('file', '', + pathname2url(os.path.abspath(fn)), + '', '', '')) + info = self.convert_url_to_download_info(url, name) + if info: + self._update_version_data(result, info) + if not self.recursive: + break + return result + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + result = set() + for root, dirs, files in os.walk(self.base_dir): + for fn in files: + if self.should_include(fn, root): + fn = os.path.join(root, fn) + url = urlunparse(('file', '', + pathname2url(os.path.abspath(fn)), + '', '', '')) + info = self.convert_url_to_download_info(url, None) + if info: + result.add(info['name']) + if not self.recursive: + break + return result + +class JSONLocator(Locator): + """ + This locator uses special extended metadata (not available on PyPI) and is + the basis of performant dependency resolution in distlib. Other locators + require archive downloads before dependencies can be determined! As you + might imagine, that can be slow. + """ + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + raise NotImplementedError('Not available from this locator') + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + data = get_project_data(name) + if data: + for info in data.get('files', []): + if info['ptype'] != 'sdist' or info['pyversion'] != 'source': + continue + # We don't store summary in project metadata as it makes + # the data bigger for no benefit during dependency + # resolution + dist = make_dist(data['name'], info['version'], + summary=data.get('summary', + 'Placeholder for summary'), + scheme=self.scheme) + md = dist.metadata + md.source_url = info['url'] + # TODO SHA256 digest + if 'digest' in info and info['digest']: + dist.digest = ('md5', info['digest']) + md.dependencies = info.get('requirements', {}) + dist.exports = info.get('exports', {}) + result[dist.version] = dist + result['urls'].setdefault(dist.version, set()).add(info['url']) + return result + +class DistPathLocator(Locator): + """ + This locator finds installed distributions in a path. It can be useful for + adding to an :class:`AggregatingLocator`. + """ + def __init__(self, distpath, **kwargs): + """ + Initialise an instance. + + :param distpath: A :class:`DistributionPath` instance to search. + """ + super(DistPathLocator, self).__init__(**kwargs) + assert isinstance(distpath, DistributionPath) + self.distpath = distpath + + def _get_project(self, name): + dist = self.distpath.get_distribution(name) + if dist is None: + result = {'urls': {}, 'digests': {}} + else: + result = { + dist.version: dist, + 'urls': {dist.version: set([dist.source_url])}, + 'digests': {dist.version: set([None])} + } + return result + + +class AggregatingLocator(Locator): + """ + This class allows you to chain and/or merge a list of locators. + """ + def __init__(self, *locators, **kwargs): + """ + Initialise an instance. + + :param locators: The list of locators to search. + :param kwargs: Passed to the superclass constructor, + except for: + * merge - if False (the default), the first successful + search from any of the locators is returned. If True, + the results from all locators are merged (this can be + slow). + """ + self.merge = kwargs.pop('merge', False) + self.locators = locators + super(AggregatingLocator, self).__init__(**kwargs) + + def clear_cache(self): + super(AggregatingLocator, self).clear_cache() + for locator in self.locators: + locator.clear_cache() + + def _set_scheme(self, value): + self._scheme = value + for locator in self.locators: + locator.scheme = value + + scheme = property(Locator.scheme.fget, _set_scheme) + + def _get_project(self, name): + result = {} + for locator in self.locators: + d = locator.get_project(name) + if d: + if self.merge: + files = result.get('urls', {}) + digests = result.get('digests', {}) + # next line could overwrite result['urls'], result['digests'] + result.update(d) + df = result.get('urls') + if files and df: + for k, v in files.items(): + if k in df: + df[k] |= v + else: + df[k] = v + dd = result.get('digests') + if digests and dd: + dd.update(digests) + else: + # See issue #18. If any dists are found and we're looking + # for specific constraints, we only return something if + # a match is found. For example, if a DirectoryLocator + # returns just foo (1.0) while we're looking for + # foo (>= 2.0), we'll pretend there was nothing there so + # that subsequent locators can be queried. Otherwise we + # would just return foo (1.0) which would then lead to a + # failure to find foo (>= 2.0), because other locators + # weren't searched. Note that this only matters when + # merge=False. + if self.matcher is None: + found = True + else: + found = False + for k in d: + if self.matcher.match(k): + found = True + break + if found: + result = d + break + return result + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + result = set() + for locator in self.locators: + try: + result |= locator.get_distribution_names() + except NotImplementedError: + pass + return result + + +# We use a legacy scheme simply because most of the dists on PyPI use legacy +# versions which don't conform to PEP 426 / PEP 440. +default_locator = AggregatingLocator( + JSONLocator(), + SimpleScrapingLocator('https://pypi.org/simple/', + timeout=3.0), + scheme='legacy') + +locate = default_locator.locate + +NAME_VERSION_RE = re.compile(r'(?P[\w-]+)\s*' + r'\(\s*(==\s*)?(?P[^)]+)\)$') + +class DependencyFinder(object): + """ + Locate dependencies for distributions. + """ + + def __init__(self, locator=None): + """ + Initialise an instance, using the specified locator + to locate distributions. + """ + self.locator = locator or default_locator + self.scheme = get_scheme(self.locator.scheme) + + def add_distribution(self, dist): + """ + Add a distribution to the finder. This will update internal information + about who provides what. + :param dist: The distribution to add. + """ + logger.debug('adding distribution %s', dist) + name = dist.key + self.dists_by_name[name] = dist + self.dists[(name, dist.version)] = dist + for p in dist.provides: + name, version = parse_name_and_version(p) + logger.debug('Add to provided: %s, %s, %s', name, version, dist) + self.provided.setdefault(name, set()).add((version, dist)) + + def remove_distribution(self, dist): + """ + Remove a distribution from the finder. This will update internal + information about who provides what. + :param dist: The distribution to remove. + """ + logger.debug('removing distribution %s', dist) + name = dist.key + del self.dists_by_name[name] + del self.dists[(name, dist.version)] + for p in dist.provides: + name, version = parse_name_and_version(p) + logger.debug('Remove from provided: %s, %s, %s', name, version, dist) + s = self.provided[name] + s.remove((version, dist)) + if not s: + del self.provided[name] + + def get_matcher(self, reqt): + """ + Get a version matcher for a requirement. + :param reqt: The requirement + :type reqt: str + :return: A version matcher (an instance of + :class:`distlib.version.Matcher`). + """ + try: + matcher = self.scheme.matcher(reqt) + except UnsupportedVersionError: # pragma: no cover + # XXX compat-mode if cannot read the version + name = reqt.split()[0] + matcher = self.scheme.matcher(name) + return matcher + + def find_providers(self, reqt): + """ + Find the distributions which can fulfill a requirement. + + :param reqt: The requirement. + :type reqt: str + :return: A set of distribution which can fulfill the requirement. + """ + matcher = self.get_matcher(reqt) + name = matcher.key # case-insensitive + result = set() + provided = self.provided + if name in provided: + for version, provider in provided[name]: + try: + match = matcher.match(version) + except UnsupportedVersionError: + match = False + + if match: + result.add(provider) + break + return result + + def try_to_replace(self, provider, other, problems): + """ + Attempt to replace one provider with another. This is typically used + when resolving dependencies from multiple sources, e.g. A requires + (B >= 1.0) while C requires (B >= 1.1). + + For successful replacement, ``provider`` must meet all the requirements + which ``other`` fulfills. + + :param provider: The provider we are trying to replace with. + :param other: The provider we're trying to replace. + :param problems: If False is returned, this will contain what + problems prevented replacement. This is currently + a tuple of the literal string 'cantreplace', + ``provider``, ``other`` and the set of requirements + that ``provider`` couldn't fulfill. + :return: True if we can replace ``other`` with ``provider``, else + False. + """ + rlist = self.reqts[other] + unmatched = set() + for s in rlist: + matcher = self.get_matcher(s) + if not matcher.match(provider.version): + unmatched.add(s) + if unmatched: + # can't replace other with provider + problems.add(('cantreplace', provider, other, + frozenset(unmatched))) + result = False + else: + # can replace other with provider + self.remove_distribution(other) + del self.reqts[other] + for s in rlist: + self.reqts.setdefault(provider, set()).add(s) + self.add_distribution(provider) + result = True + return result + + def find(self, requirement, meta_extras=None, prereleases=False): + """ + Find a distribution and all distributions it depends on. + + :param requirement: The requirement specifying the distribution to + find, or a Distribution instance. + :param meta_extras: A list of meta extras such as :test:, :build: and + so on. + :param prereleases: If ``True``, allow pre-release versions to be + returned - otherwise, don't return prereleases + unless they're all that's available. + + Return a set of :class:`Distribution` instances and a set of + problems. + + The distributions returned should be such that they have the + :attr:`required` attribute set to ``True`` if they were + from the ``requirement`` passed to ``find()``, and they have the + :attr:`build_time_dependency` attribute set to ``True`` unless they + are post-installation dependencies of the ``requirement``. + + The problems should be a tuple consisting of the string + ``'unsatisfied'`` and the requirement which couldn't be satisfied + by any distribution known to the locator. + """ + + self.provided = {} + self.dists = {} + self.dists_by_name = {} + self.reqts = {} + + meta_extras = set(meta_extras or []) + if ':*:' in meta_extras: + meta_extras.remove(':*:') + # :meta: and :run: are implicitly included + meta_extras |= set([':test:', ':build:', ':dev:']) + + if isinstance(requirement, Distribution): + dist = odist = requirement + logger.debug('passed %s as requirement', odist) + else: + dist = odist = self.locator.locate(requirement, + prereleases=prereleases) + if dist is None: + raise DistlibException('Unable to locate %r' % requirement) + logger.debug('located %s', odist) + dist.requested = True + problems = set() + todo = set([dist]) + install_dists = set([odist]) + while todo: + dist = todo.pop() + name = dist.key # case-insensitive + if name not in self.dists_by_name: + self.add_distribution(dist) + else: + #import pdb; pdb.set_trace() + other = self.dists_by_name[name] + if other != dist: + self.try_to_replace(dist, other, problems) + + ireqts = dist.run_requires | dist.meta_requires + sreqts = dist.build_requires + ereqts = set() + if meta_extras and dist in install_dists: + for key in ('test', 'build', 'dev'): + e = ':%s:' % key + if e in meta_extras: + ereqts |= getattr(dist, '%s_requires' % key) + all_reqts = ireqts | sreqts | ereqts + for r in all_reqts: + providers = self.find_providers(r) + if not providers: + logger.debug('No providers found for %r', r) + provider = self.locator.locate(r, prereleases=prereleases) + # If no provider is found and we didn't consider + # prereleases, consider them now. + if provider is None and not prereleases: + provider = self.locator.locate(r, prereleases=True) + if provider is None: + logger.debug('Cannot satisfy %r', r) + problems.add(('unsatisfied', r)) + else: + n, v = provider.key, provider.version + if (n, v) not in self.dists: + todo.add(provider) + providers.add(provider) + if r in ireqts and dist in install_dists: + install_dists.add(provider) + logger.debug('Adding %s to install_dists', + provider.name_and_version) + for p in providers: + name = p.key + if name not in self.dists_by_name: + self.reqts.setdefault(p, set()).add(r) + else: + other = self.dists_by_name[name] + if other != p: + # see if other can be replaced by p + self.try_to_replace(p, other, problems) + + dists = set(self.dists.values()) + for dist in dists: + dist.build_time_dependency = dist not in install_dists + if dist.build_time_dependency: + logger.debug('%s is a build-time dependency only.', + dist.name_and_version) + logger.debug('find done for %s', odist) + return dists, problems diff --git a/venv/Lib/site-packages/distlib/manifest.py b/venv/Lib/site-packages/distlib/manifest.py new file mode 100644 index 00000000..ca0fe442 --- /dev/null +++ b/venv/Lib/site-packages/distlib/manifest.py @@ -0,0 +1,393 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2013 Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +""" +Class representing the list of files in a distribution. + +Equivalent to distutils.filelist, but fixes some problems. +""" +import fnmatch +import logging +import os +import re +import sys + +from . import DistlibException +from .compat import fsdecode +from .util import convert_path + + +__all__ = ['Manifest'] + +logger = logging.getLogger(__name__) + +# a \ followed by some spaces + EOL +_COLLAPSE_PATTERN = re.compile('\\\\w*\n', re.M) +_COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) + +# +# Due to the different results returned by fnmatch.translate, we need +# to do slightly different processing for Python 2.7 and 3.2 ... this needed +# to be brought in for Python 3.6 onwards. +# +_PYTHON_VERSION = sys.version_info[:2] + +class Manifest(object): + """A list of files built by on exploring the filesystem and filtered by + applying various patterns to what we find there. + """ + + def __init__(self, base=None): + """ + Initialise an instance. + + :param base: The base directory to explore under. + """ + self.base = os.path.abspath(os.path.normpath(base or os.getcwd())) + self.prefix = self.base + os.sep + self.allfiles = None + self.files = set() + + # + # Public API + # + + def findall(self): + """Find all files under the base and set ``allfiles`` to the absolute + pathnames of files found. + """ + from stat import S_ISREG, S_ISDIR, S_ISLNK + + self.allfiles = allfiles = [] + root = self.base + stack = [root] + pop = stack.pop + push = stack.append + + while stack: + root = pop() + names = os.listdir(root) + + for name in names: + fullname = os.path.join(root, name) + + # Avoid excess stat calls -- just one will do, thank you! + stat = os.stat(fullname) + mode = stat.st_mode + if S_ISREG(mode): + allfiles.append(fsdecode(fullname)) + elif S_ISDIR(mode) and not S_ISLNK(mode): + push(fullname) + + def add(self, item): + """ + Add a file to the manifest. + + :param item: The pathname to add. This can be relative to the base. + """ + if not item.startswith(self.prefix): + item = os.path.join(self.base, item) + self.files.add(os.path.normpath(item)) + + def add_many(self, items): + """ + Add a list of files to the manifest. + + :param items: The pathnames to add. These can be relative to the base. + """ + for item in items: + self.add(item) + + def sorted(self, wantdirs=False): + """ + Return sorted files in directory order + """ + + def add_dir(dirs, d): + dirs.add(d) + logger.debug('add_dir added %s', d) + if d != self.base: + parent, _ = os.path.split(d) + assert parent not in ('', '/') + add_dir(dirs, parent) + + result = set(self.files) # make a copy! + if wantdirs: + dirs = set() + for f in result: + add_dir(dirs, os.path.dirname(f)) + result |= dirs + return [os.path.join(*path_tuple) for path_tuple in + sorted(os.path.split(path) for path in result)] + + def clear(self): + """Clear all collected files.""" + self.files = set() + self.allfiles = [] + + def process_directive(self, directive): + """ + Process a directive which either adds some files from ``allfiles`` to + ``files``, or removes some files from ``files``. + + :param directive: The directive to process. This should be in a format + compatible with distutils ``MANIFEST.in`` files: + + http://docs.python.org/distutils/sourcedist.html#commands + """ + # Parse the line: split it up, make sure the right number of words + # is there, and return the relevant words. 'action' is always + # defined: it's the first word of the line. Which of the other + # three are defined depends on the action; it'll be either + # patterns, (dir and patterns), or (dirpattern). + action, patterns, thedir, dirpattern = self._parse_directive(directive) + + # OK, now we know that the action is valid and we have the + # right number of words on the line for that action -- so we + # can proceed with minimal error-checking. + if action == 'include': + for pattern in patterns: + if not self._include_pattern(pattern, anchor=True): + logger.warning('no files found matching %r', pattern) + + elif action == 'exclude': + for pattern in patterns: + found = self._exclude_pattern(pattern, anchor=True) + #if not found: + # logger.warning('no previously-included files ' + # 'found matching %r', pattern) + + elif action == 'global-include': + for pattern in patterns: + if not self._include_pattern(pattern, anchor=False): + logger.warning('no files found matching %r ' + 'anywhere in distribution', pattern) + + elif action == 'global-exclude': + for pattern in patterns: + found = self._exclude_pattern(pattern, anchor=False) + #if not found: + # logger.warning('no previously-included files ' + # 'matching %r found anywhere in ' + # 'distribution', pattern) + + elif action == 'recursive-include': + for pattern in patterns: + if not self._include_pattern(pattern, prefix=thedir): + logger.warning('no files found matching %r ' + 'under directory %r', pattern, thedir) + + elif action == 'recursive-exclude': + for pattern in patterns: + found = self._exclude_pattern(pattern, prefix=thedir) + #if not found: + # logger.warning('no previously-included files ' + # 'matching %r found under directory %r', + # pattern, thedir) + + elif action == 'graft': + if not self._include_pattern(None, prefix=dirpattern): + logger.warning('no directories found matching %r', + dirpattern) + + elif action == 'prune': + if not self._exclude_pattern(None, prefix=dirpattern): + logger.warning('no previously-included directories found ' + 'matching %r', dirpattern) + else: # pragma: no cover + # This should never happen, as it should be caught in + # _parse_template_line + raise DistlibException( + 'invalid action %r' % action) + + # + # Private API + # + + def _parse_directive(self, directive): + """ + Validate a directive. + :param directive: The directive to validate. + :return: A tuple of action, patterns, thedir, dir_patterns + """ + words = directive.split() + if len(words) == 1 and words[0] not in ('include', 'exclude', + 'global-include', + 'global-exclude', + 'recursive-include', + 'recursive-exclude', + 'graft', 'prune'): + # no action given, let's use the default 'include' + words.insert(0, 'include') + + action = words[0] + patterns = thedir = dir_pattern = None + + if action in ('include', 'exclude', + 'global-include', 'global-exclude'): + if len(words) < 2: + raise DistlibException( + '%r expects ...' % action) + + patterns = [convert_path(word) for word in words[1:]] + + elif action in ('recursive-include', 'recursive-exclude'): + if len(words) < 3: + raise DistlibException( + '%r expects ...' % action) + + thedir = convert_path(words[1]) + patterns = [convert_path(word) for word in words[2:]] + + elif action in ('graft', 'prune'): + if len(words) != 2: + raise DistlibException( + '%r expects a single ' % action) + + dir_pattern = convert_path(words[1]) + + else: + raise DistlibException('unknown action %r' % action) + + return action, patterns, thedir, dir_pattern + + def _include_pattern(self, pattern, anchor=True, prefix=None, + is_regex=False): + """Select strings (presumably filenames) from 'self.files' that + match 'pattern', a Unix-style wildcard (glob) pattern. + + Patterns are not quite the same as implemented by the 'fnmatch' + module: '*' and '?' match non-special characters, where "special" + is platform-dependent: slash on Unix; colon, slash, and backslash on + DOS/Windows; and colon on Mac OS. + + If 'anchor' is true (the default), then the pattern match is more + stringent: "*.py" will match "foo.py" but not "foo/bar.py". If + 'anchor' is false, both of these will match. + + If 'prefix' is supplied, then only filenames starting with 'prefix' + (itself a pattern) and ending with 'pattern', with anything in between + them, will match. 'anchor' is ignored in this case. + + If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and + 'pattern' is assumed to be either a string containing a regex or a + regex object -- no translation is done, the regex is just compiled + and used as-is. + + Selected strings will be added to self.files. + + Return True if files are found. + """ + # XXX docstring lying about what the special chars are? + found = False + pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) + + # delayed loading of allfiles list + if self.allfiles is None: + self.findall() + + for name in self.allfiles: + if pattern_re.search(name): + self.files.add(name) + found = True + return found + + def _exclude_pattern(self, pattern, anchor=True, prefix=None, + is_regex=False): + """Remove strings (presumably filenames) from 'files' that match + 'pattern'. + + Other parameters are the same as for 'include_pattern()', above. + The list 'self.files' is modified in place. Return True if files are + found. + + This API is public to allow e.g. exclusion of SCM subdirs, e.g. when + packaging source distributions + """ + found = False + pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) + for f in list(self.files): + if pattern_re.search(f): + self.files.remove(f) + found = True + return found + + def _translate_pattern(self, pattern, anchor=True, prefix=None, + is_regex=False): + """Translate a shell-like wildcard pattern to a compiled regular + expression. + + Return the compiled regex. If 'is_regex' true, + then 'pattern' is directly compiled to a regex (if it's a string) + or just returned as-is (assumes it's a regex object). + """ + if is_regex: + if isinstance(pattern, str): + return re.compile(pattern) + else: + return pattern + + if _PYTHON_VERSION > (3, 2): + # ditch start and end characters + start, _, end = self._glob_to_re('_').partition('_') + + if pattern: + pattern_re = self._glob_to_re(pattern) + if _PYTHON_VERSION > (3, 2): + assert pattern_re.startswith(start) and pattern_re.endswith(end) + else: + pattern_re = '' + + base = re.escape(os.path.join(self.base, '')) + if prefix is not None: + # ditch end of pattern character + if _PYTHON_VERSION <= (3, 2): + empty_pattern = self._glob_to_re('') + prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] + else: + prefix_re = self._glob_to_re(prefix) + assert prefix_re.startswith(start) and prefix_re.endswith(end) + prefix_re = prefix_re[len(start): len(prefix_re) - len(end)] + sep = os.sep + if os.sep == '\\': + sep = r'\\' + if _PYTHON_VERSION <= (3, 2): + pattern_re = '^' + base + sep.join((prefix_re, + '.*' + pattern_re)) + else: + pattern_re = pattern_re[len(start): len(pattern_re) - len(end)] + pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep, + pattern_re, end) + else: # no prefix -- respect anchor flag + if anchor: + if _PYTHON_VERSION <= (3, 2): + pattern_re = '^' + base + pattern_re + else: + pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):]) + + return re.compile(pattern_re) + + def _glob_to_re(self, pattern): + """Translate a shell-like glob pattern to a regular expression. + + Return a string containing the regex. Differs from + 'fnmatch.translate()' in that '*' does not match "special characters" + (which are platform-specific). + """ + pattern_re = fnmatch.translate(pattern) + + # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which + # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, + # and by extension they shouldn't match such "special characters" under + # any OS. So change all non-escaped dots in the RE to match any + # character except the special characters (currently: just os.sep). + sep = os.sep + if os.sep == '\\': + # we're using a regex to manipulate a regex, so we need + # to escape the backslash twice + sep = r'\\\\' + escaped = r'\1[^%s]' % sep + pattern_re = re.sub(r'((? y, + '!=': lambda x, y: x != y, + '<': lambda x, y: x < y, + '<=': lambda x, y: x == y or x < y, + '>': lambda x, y: x > y, + '>=': lambda x, y: x == y or x > y, + 'and': lambda x, y: x and y, + 'or': lambda x, y: x or y, + 'in': lambda x, y: x in y, + 'not in': lambda x, y: x not in y, + } + + def evaluate(self, expr, context): + """ + Evaluate a marker expression returned by the :func:`parse_requirement` + function in the specified context. + """ + if isinstance(expr, string_types): + if expr[0] in '\'"': + result = expr[1:-1] + else: + if expr not in context: + raise SyntaxError('unknown variable: %s' % expr) + result = context[expr] + else: + assert isinstance(expr, dict) + op = expr['op'] + if op not in self.operations: + raise NotImplementedError('op not implemented: %s' % op) + elhs = expr['lhs'] + erhs = expr['rhs'] + if _is_literal(expr['lhs']) and _is_literal(expr['rhs']): + raise SyntaxError('invalid comparison: %s %s %s' % (elhs, op, erhs)) + + lhs = self.evaluate(elhs, context) + rhs = self.evaluate(erhs, context) + result = self.operations[op](lhs, rhs) + return result + +def default_context(): + def format_full_version(info): + version = '%s.%s.%s' % (info.major, info.minor, info.micro) + kind = info.releaselevel + if kind != 'final': + version += kind[0] + str(info.serial) + return version + + if hasattr(sys, 'implementation'): + implementation_version = format_full_version(sys.implementation.version) + implementation_name = sys.implementation.name + else: + implementation_version = '0' + implementation_name = '' + + result = { + 'implementation_name': implementation_name, + 'implementation_version': implementation_version, + 'os_name': os.name, + 'platform_machine': platform.machine(), + 'platform_python_implementation': platform.python_implementation(), + 'platform_release': platform.release(), + 'platform_system': platform.system(), + 'platform_version': platform.version(), + 'platform_in_venv': str(in_venv()), + 'python_full_version': platform.python_version(), + 'python_version': platform.python_version()[:3], + 'sys_platform': sys.platform, + } + return result + +DEFAULT_CONTEXT = default_context() +del default_context + +evaluator = Evaluator() + +def interpret(marker, execution_context=None): + """ + Interpret a marker and return a result depending on environment. + + :param marker: The marker to interpret. + :type marker: str + :param execution_context: The context used for name lookup. + :type execution_context: mapping + """ + try: + expr, rest = parse_marker(marker) + except Exception as e: + raise SyntaxError('Unable to interpret marker syntax: %s: %s' % (marker, e)) + if rest and rest[0] != '#': + raise SyntaxError('unexpected trailing data in marker: %s: %s' % (marker, rest)) + context = dict(DEFAULT_CONTEXT) + if execution_context: + context.update(execution_context) + return evaluator.evaluate(expr, context) diff --git a/venv/Lib/site-packages/distlib/metadata.py b/venv/Lib/site-packages/distlib/metadata.py new file mode 100644 index 00000000..6d5e2360 --- /dev/null +++ b/venv/Lib/site-packages/distlib/metadata.py @@ -0,0 +1,1056 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Implementation of the Metadata for Python packages PEPs. + +Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and withdrawn 2.0). +""" +from __future__ import unicode_literals + +import codecs +from email import message_from_file +import json +import logging +import re + + +from . import DistlibException, __version__ +from .compat import StringIO, string_types, text_type +from .markers import interpret +from .util import extract_by_key, get_extras +from .version import get_scheme, PEP440_VERSION_RE + +logger = logging.getLogger(__name__) + + +class MetadataMissingError(DistlibException): + """A required metadata is missing""" + + +class MetadataConflictError(DistlibException): + """Attempt to read or write metadata fields that are conflictual.""" + + +class MetadataUnrecognizedVersionError(DistlibException): + """Unknown metadata version number.""" + + +class MetadataInvalidError(DistlibException): + """A metadata value is invalid""" + +# public API of this module +__all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] + +# Encoding used for the PKG-INFO files +PKG_INFO_ENCODING = 'utf-8' + +# preferred version. Hopefully will be changed +# to 1.2 once PEP 345 is supported everywhere +PKG_INFO_PREFERRED_VERSION = '1.1' + +_LINE_PREFIX_1_2 = re.compile('\n \\|') +_LINE_PREFIX_PRE_1_2 = re.compile('\n ') +_241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'License') + +_314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Supported-Platform', 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'License', 'Classifier', 'Download-URL', 'Obsoletes', + 'Provides', 'Requires') + +_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', + 'Download-URL') + +_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Supported-Platform', 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'Maintainer', 'Maintainer-email', 'License', + 'Classifier', 'Download-URL', 'Obsoletes-Dist', + 'Project-URL', 'Provides-Dist', 'Requires-Dist', + 'Requires-Python', 'Requires-External') + +_345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', + 'Obsoletes-Dist', 'Requires-External', 'Maintainer', + 'Maintainer-email', 'Project-URL') + +_426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Supported-Platform', 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'Maintainer', 'Maintainer-email', 'License', + 'Classifier', 'Download-URL', 'Obsoletes-Dist', + 'Project-URL', 'Provides-Dist', 'Requires-Dist', + 'Requires-Python', 'Requires-External', 'Private-Version', + 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension', + 'Provides-Extra') + +_426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', + 'Setup-Requires-Dist', 'Extension') + +# See issue #106: Sometimes 'Requires' and 'Provides' occur wrongly in +# the metadata. Include them in the tuple literal below to allow them +# (for now). +_566_FIELDS = _426_FIELDS + ('Description-Content-Type', + 'Requires', 'Provides') + +_566_MARKERS = ('Description-Content-Type',) + +_ALL_FIELDS = set() +_ALL_FIELDS.update(_241_FIELDS) +_ALL_FIELDS.update(_314_FIELDS) +_ALL_FIELDS.update(_345_FIELDS) +_ALL_FIELDS.update(_426_FIELDS) +_ALL_FIELDS.update(_566_FIELDS) + +EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') + + +def _version2fieldlist(version): + if version == '1.0': + return _241_FIELDS + elif version == '1.1': + return _314_FIELDS + elif version == '1.2': + return _345_FIELDS + elif version in ('1.3', '2.1'): + return _345_FIELDS + _566_FIELDS + elif version == '2.0': + return _426_FIELDS + raise MetadataUnrecognizedVersionError(version) + + +def _best_version(fields): + """Detect the best version depending on the fields used.""" + def _has_marker(keys, markers): + for marker in markers: + if marker in keys: + return True + return False + + keys = [] + for key, value in fields.items(): + if value in ([], 'UNKNOWN', None): + continue + keys.append(key) + + possible_versions = ['1.0', '1.1', '1.2', '1.3', '2.0', '2.1'] + + # first let's try to see if a field is not part of one of the version + for key in keys: + if key not in _241_FIELDS and '1.0' in possible_versions: + possible_versions.remove('1.0') + logger.debug('Removed 1.0 due to %s', key) + if key not in _314_FIELDS and '1.1' in possible_versions: + possible_versions.remove('1.1') + logger.debug('Removed 1.1 due to %s', key) + if key not in _345_FIELDS and '1.2' in possible_versions: + possible_versions.remove('1.2') + logger.debug('Removed 1.2 due to %s', key) + if key not in _566_FIELDS and '1.3' in possible_versions: + possible_versions.remove('1.3') + logger.debug('Removed 1.3 due to %s', key) + if key not in _566_FIELDS and '2.1' in possible_versions: + if key != 'Description': # In 2.1, description allowed after headers + possible_versions.remove('2.1') + logger.debug('Removed 2.1 due to %s', key) + if key not in _426_FIELDS and '2.0' in possible_versions: + possible_versions.remove('2.0') + logger.debug('Removed 2.0 due to %s', key) + + # possible_version contains qualified versions + if len(possible_versions) == 1: + return possible_versions[0] # found ! + elif len(possible_versions) == 0: + logger.debug('Out of options - unknown metadata set: %s', fields) + raise MetadataConflictError('Unknown metadata set') + + # let's see if one unique marker is found + is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) + is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) + is_2_1 = '2.1' in possible_versions and _has_marker(keys, _566_MARKERS) + is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) + if int(is_1_1) + int(is_1_2) + int(is_2_1) + int(is_2_0) > 1: + raise MetadataConflictError('You used incompatible 1.1/1.2/2.0/2.1 fields') + + # we have the choice, 1.0, or 1.2, or 2.0 + # - 1.0 has a broken Summary field but works with all tools + # - 1.1 is to avoid + # - 1.2 fixes Summary but has little adoption + # - 2.0 adds more features and is very new + if not is_1_1 and not is_1_2 and not is_2_1 and not is_2_0: + # we couldn't find any specific marker + if PKG_INFO_PREFERRED_VERSION in possible_versions: + return PKG_INFO_PREFERRED_VERSION + if is_1_1: + return '1.1' + if is_1_2: + return '1.2' + if is_2_1: + return '2.1' + + return '2.0' + +# This follows the rules about transforming keys as described in +# https://www.python.org/dev/peps/pep-0566/#id17 +_ATTR2FIELD = { + name.lower().replace("-", "_"): name for name in _ALL_FIELDS +} +_FIELD2ATTR = {field: attr for attr, field in _ATTR2FIELD.items()} + +_PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') +_VERSIONS_FIELDS = ('Requires-Python',) +_VERSION_FIELDS = ('Version',) +_LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', + 'Requires', 'Provides', 'Obsoletes-Dist', + 'Provides-Dist', 'Requires-Dist', 'Requires-External', + 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', + 'Provides-Extra', 'Extension') +_LISTTUPLEFIELDS = ('Project-URL',) + +_ELEMENTSFIELD = ('Keywords',) + +_UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') + +_MISSING = object() + +_FILESAFE = re.compile('[^A-Za-z0-9.]+') + + +def _get_name_and_version(name, version, for_filename=False): + """Return the distribution name with version. + + If for_filename is true, return a filename-escaped form.""" + if for_filename: + # For both name and version any runs of non-alphanumeric or '.' + # characters are replaced with a single '-'. Additionally any + # spaces in the version string become '.' + name = _FILESAFE.sub('-', name) + version = _FILESAFE.sub('-', version.replace(' ', '.')) + return '%s-%s' % (name, version) + + +class LegacyMetadata(object): + """The legacy metadata of a release. + + Supports versions 1.0, 1.1, 1.2, 2.0 and 1.3/2.1 (auto-detected). You can + instantiate the class with one of these arguments (or none): + - *path*, the path to a metadata file + - *fileobj* give a file-like object with metadata as content + - *mapping* is a dict-like object + - *scheme* is a version scheme name + """ + # TODO document the mapping API and UNKNOWN default key + + def __init__(self, path=None, fileobj=None, mapping=None, + scheme='default'): + if [path, fileobj, mapping].count(None) < 2: + raise TypeError('path, fileobj and mapping are exclusive') + self._fields = {} + self.requires_files = [] + self._dependencies = None + self.scheme = scheme + if path is not None: + self.read(path) + elif fileobj is not None: + self.read_file(fileobj) + elif mapping is not None: + self.update(mapping) + self.set_metadata_version() + + def set_metadata_version(self): + self._fields['Metadata-Version'] = _best_version(self._fields) + + def _write_field(self, fileobj, name, value): + fileobj.write('%s: %s\n' % (name, value)) + + def __getitem__(self, name): + return self.get(name) + + def __setitem__(self, name, value): + return self.set(name, value) + + def __delitem__(self, name): + field_name = self._convert_name(name) + try: + del self._fields[field_name] + except KeyError: + raise KeyError(name) + + def __contains__(self, name): + return (name in self._fields or + self._convert_name(name) in self._fields) + + def _convert_name(self, name): + if name in _ALL_FIELDS: + return name + name = name.replace('-', '_').lower() + return _ATTR2FIELD.get(name, name) + + def _default_value(self, name): + if name in _LISTFIELDS or name in _ELEMENTSFIELD: + return [] + return 'UNKNOWN' + + def _remove_line_prefix(self, value): + if self.metadata_version in ('1.0', '1.1'): + return _LINE_PREFIX_PRE_1_2.sub('\n', value) + else: + return _LINE_PREFIX_1_2.sub('\n', value) + + def __getattr__(self, name): + if name in _ATTR2FIELD: + return self[name] + raise AttributeError(name) + + # + # Public API + # + +# dependencies = property(_get_dependencies, _set_dependencies) + + def get_fullname(self, filesafe=False): + """Return the distribution name with version. + + If filesafe is true, return a filename-escaped form.""" + return _get_name_and_version(self['Name'], self['Version'], filesafe) + + def is_field(self, name): + """return True if name is a valid metadata key""" + name = self._convert_name(name) + return name in _ALL_FIELDS + + def is_multi_field(self, name): + name = self._convert_name(name) + return name in _LISTFIELDS + + def read(self, filepath): + """Read the metadata values from a file path.""" + fp = codecs.open(filepath, 'r', encoding='utf-8') + try: + self.read_file(fp) + finally: + fp.close() + + def read_file(self, fileob): + """Read the metadata values from a file object.""" + msg = message_from_file(fileob) + self._fields['Metadata-Version'] = msg['metadata-version'] + + # When reading, get all the fields we can + for field in _ALL_FIELDS: + if field not in msg: + continue + if field in _LISTFIELDS: + # we can have multiple lines + values = msg.get_all(field) + if field in _LISTTUPLEFIELDS and values is not None: + values = [tuple(value.split(',')) for value in values] + self.set(field, values) + else: + # single line + value = msg[field] + if value is not None and value != 'UNKNOWN': + self.set(field, value) + + # PEP 566 specifies that the body be used for the description, if + # available + body = msg.get_payload() + self["Description"] = body if body else self["Description"] + # logger.debug('Attempting to set metadata for %s', self) + # self.set_metadata_version() + + def write(self, filepath, skip_unknown=False): + """Write the metadata fields to filepath.""" + fp = codecs.open(filepath, 'w', encoding='utf-8') + try: + self.write_file(fp, skip_unknown) + finally: + fp.close() + + def write_file(self, fileobject, skip_unknown=False): + """Write the PKG-INFO format data to a file object.""" + self.set_metadata_version() + + for field in _version2fieldlist(self['Metadata-Version']): + values = self.get(field) + if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): + continue + if field in _ELEMENTSFIELD: + self._write_field(fileobject, field, ','.join(values)) + continue + if field not in _LISTFIELDS: + if field == 'Description': + if self.metadata_version in ('1.0', '1.1'): + values = values.replace('\n', '\n ') + else: + values = values.replace('\n', '\n |') + values = [values] + + if field in _LISTTUPLEFIELDS: + values = [','.join(value) for value in values] + + for value in values: + self._write_field(fileobject, field, value) + + def update(self, other=None, **kwargs): + """Set metadata values from the given iterable `other` and kwargs. + + Behavior is like `dict.update`: If `other` has a ``keys`` method, + they are looped over and ``self[key]`` is assigned ``other[key]``. + Else, ``other`` is an iterable of ``(key, value)`` iterables. + + Keys that don't match a metadata field or that have an empty value are + dropped. + """ + def _set(key, value): + if key in _ATTR2FIELD and value: + self.set(self._convert_name(key), value) + + if not other: + # other is None or empty container + pass + elif hasattr(other, 'keys'): + for k in other.keys(): + _set(k, other[k]) + else: + for k, v in other: + _set(k, v) + + if kwargs: + for k, v in kwargs.items(): + _set(k, v) + + def set(self, name, value): + """Control then set a metadata field.""" + name = self._convert_name(name) + + if ((name in _ELEMENTSFIELD or name == 'Platform') and + not isinstance(value, (list, tuple))): + if isinstance(value, string_types): + value = [v.strip() for v in value.split(',')] + else: + value = [] + elif (name in _LISTFIELDS and + not isinstance(value, (list, tuple))): + if isinstance(value, string_types): + value = [value] + else: + value = [] + + if logger.isEnabledFor(logging.WARNING): + project_name = self['Name'] + + scheme = get_scheme(self.scheme) + if name in _PREDICATE_FIELDS and value is not None: + for v in value: + # check that the values are valid + if not scheme.is_valid_matcher(v.split(';')[0]): + logger.warning( + "'%s': '%s' is not valid (field '%s')", + project_name, v, name) + # FIXME this rejects UNKNOWN, is that right? + elif name in _VERSIONS_FIELDS and value is not None: + if not scheme.is_valid_constraint_list(value): + logger.warning("'%s': '%s' is not a valid version (field '%s')", + project_name, value, name) + elif name in _VERSION_FIELDS and value is not None: + if not scheme.is_valid_version(value): + logger.warning("'%s': '%s' is not a valid version (field '%s')", + project_name, value, name) + + if name in _UNICODEFIELDS: + if name == 'Description': + value = self._remove_line_prefix(value) + + self._fields[name] = value + + def get(self, name, default=_MISSING): + """Get a metadata field.""" + name = self._convert_name(name) + if name not in self._fields: + if default is _MISSING: + default = self._default_value(name) + return default + if name in _UNICODEFIELDS: + value = self._fields[name] + return value + elif name in _LISTFIELDS: + value = self._fields[name] + if value is None: + return [] + res = [] + for val in value: + if name not in _LISTTUPLEFIELDS: + res.append(val) + else: + # That's for Project-URL + res.append((val[0], val[1])) + return res + + elif name in _ELEMENTSFIELD: + value = self._fields[name] + if isinstance(value, string_types): + return value.split(',') + return self._fields[name] + + def check(self, strict=False): + """Check if the metadata is compliant. If strict is True then raise if + no Name or Version are provided""" + self.set_metadata_version() + + # XXX should check the versions (if the file was loaded) + missing, warnings = [], [] + + for attr in ('Name', 'Version'): # required by PEP 345 + if attr not in self: + missing.append(attr) + + if strict and missing != []: + msg = 'missing required metadata: %s' % ', '.join(missing) + raise MetadataMissingError(msg) + + for attr in ('Home-page', 'Author'): + if attr not in self: + missing.append(attr) + + # checking metadata 1.2 (XXX needs to check 1.1, 1.0) + if self['Metadata-Version'] != '1.2': + return missing, warnings + + scheme = get_scheme(self.scheme) + + def are_valid_constraints(value): + for v in value: + if not scheme.is_valid_matcher(v.split(';')[0]): + return False + return True + + for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), + (_VERSIONS_FIELDS, + scheme.is_valid_constraint_list), + (_VERSION_FIELDS, + scheme.is_valid_version)): + for field in fields: + value = self.get(field, None) + if value is not None and not controller(value): + warnings.append("Wrong value for '%s': %s" % (field, value)) + + return missing, warnings + + def todict(self, skip_missing=False): + """Return fields as a dict. + + Field names will be converted to use the underscore-lowercase style + instead of hyphen-mixed case (i.e. home_page instead of Home-page). + This is as per https://www.python.org/dev/peps/pep-0566/#id17. + """ + self.set_metadata_version() + + fields = _version2fieldlist(self['Metadata-Version']) + + data = {} + + for field_name in fields: + if not skip_missing or field_name in self._fields: + key = _FIELD2ATTR[field_name] + if key != 'project_url': + data[key] = self[field_name] + else: + data[key] = [','.join(u) for u in self[field_name]] + + return data + + def add_requirements(self, requirements): + if self['Metadata-Version'] == '1.1': + # we can't have 1.1 metadata *and* Setuptools requires + for field in ('Obsoletes', 'Requires', 'Provides'): + if field in self: + del self[field] + self['Requires-Dist'] += requirements + + # Mapping API + # TODO could add iter* variants + + def keys(self): + return list(_version2fieldlist(self['Metadata-Version'])) + + def __iter__(self): + for key in self.keys(): + yield key + + def values(self): + return [self[key] for key in self.keys()] + + def items(self): + return [(key, self[key]) for key in self.keys()] + + def __repr__(self): + return '<%s %s %s>' % (self.__class__.__name__, self.name, + self.version) + + +METADATA_FILENAME = 'pydist.json' +WHEEL_METADATA_FILENAME = 'metadata.json' +LEGACY_METADATA_FILENAME = 'METADATA' + + +class Metadata(object): + """ + The metadata of a release. This implementation uses 2.0 (JSON) + metadata where possible. If not possible, it wraps a LegacyMetadata + instance which handles the key-value metadata format. + """ + + METADATA_VERSION_MATCHER = re.compile(r'^\d+(\.\d+)*$') + + NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) + + VERSION_MATCHER = PEP440_VERSION_RE + + SUMMARY_MATCHER = re.compile('.{1,2047}') + + METADATA_VERSION = '2.0' + + GENERATOR = 'distlib (%s)' % __version__ + + MANDATORY_KEYS = { + 'name': (), + 'version': (), + 'summary': ('legacy',), + } + + INDEX_KEYS = ('name version license summary description author ' + 'author_email keywords platform home_page classifiers ' + 'download_url') + + DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' + 'dev_requires provides meta_requires obsoleted_by ' + 'supports_environments') + + SYNTAX_VALIDATORS = { + 'metadata_version': (METADATA_VERSION_MATCHER, ()), + 'name': (NAME_MATCHER, ('legacy',)), + 'version': (VERSION_MATCHER, ('legacy',)), + 'summary': (SUMMARY_MATCHER, ('legacy',)), + } + + __slots__ = ('_legacy', '_data', 'scheme') + + def __init__(self, path=None, fileobj=None, mapping=None, + scheme='default'): + if [path, fileobj, mapping].count(None) < 2: + raise TypeError('path, fileobj and mapping are exclusive') + self._legacy = None + self._data = None + self.scheme = scheme + #import pdb; pdb.set_trace() + if mapping is not None: + try: + self._validate_mapping(mapping, scheme) + self._data = mapping + except MetadataUnrecognizedVersionError: + self._legacy = LegacyMetadata(mapping=mapping, scheme=scheme) + self.validate() + else: + data = None + if path: + with open(path, 'rb') as f: + data = f.read() + elif fileobj: + data = fileobj.read() + if data is None: + # Initialised with no args - to be added + self._data = { + 'metadata_version': self.METADATA_VERSION, + 'generator': self.GENERATOR, + } + else: + if not isinstance(data, text_type): + data = data.decode('utf-8') + try: + self._data = json.loads(data) + self._validate_mapping(self._data, scheme) + except ValueError: + # Note: MetadataUnrecognizedVersionError does not + # inherit from ValueError (it's a DistlibException, + # which should not inherit from ValueError). + # The ValueError comes from the json.load - if that + # succeeds and we get a validation error, we want + # that to propagate + self._legacy = LegacyMetadata(fileobj=StringIO(data), + scheme=scheme) + self.validate() + + common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) + + none_list = (None, list) + none_dict = (None, dict) + + mapped_keys = { + 'run_requires': ('Requires-Dist', list), + 'build_requires': ('Setup-Requires-Dist', list), + 'dev_requires': none_list, + 'test_requires': none_list, + 'meta_requires': none_list, + 'extras': ('Provides-Extra', list), + 'modules': none_list, + 'namespaces': none_list, + 'exports': none_dict, + 'commands': none_dict, + 'classifiers': ('Classifier', list), + 'source_url': ('Download-URL', None), + 'metadata_version': ('Metadata-Version', None), + } + + del none_list, none_dict + + def __getattribute__(self, key): + common = object.__getattribute__(self, 'common_keys') + mapped = object.__getattribute__(self, 'mapped_keys') + if key in mapped: + lk, maker = mapped[key] + if self._legacy: + if lk is None: + result = None if maker is None else maker() + else: + result = self._legacy.get(lk) + else: + value = None if maker is None else maker() + if key not in ('commands', 'exports', 'modules', 'namespaces', + 'classifiers'): + result = self._data.get(key, value) + else: + # special cases for PEP 459 + sentinel = object() + result = sentinel + d = self._data.get('extensions') + if d: + if key == 'commands': + result = d.get('python.commands', value) + elif key == 'classifiers': + d = d.get('python.details') + if d: + result = d.get(key, value) + else: + d = d.get('python.exports') + if not d: + d = self._data.get('python.exports') + if d: + result = d.get(key, value) + if result is sentinel: + result = value + elif key not in common: + result = object.__getattribute__(self, key) + elif self._legacy: + result = self._legacy.get(key) + else: + result = self._data.get(key) + return result + + def _validate_value(self, key, value, scheme=None): + if key in self.SYNTAX_VALIDATORS: + pattern, exclusions = self.SYNTAX_VALIDATORS[key] + if (scheme or self.scheme) not in exclusions: + m = pattern.match(value) + if not m: + raise MetadataInvalidError("'%s' is an invalid value for " + "the '%s' property" % (value, + key)) + + def __setattr__(self, key, value): + self._validate_value(key, value) + common = object.__getattribute__(self, 'common_keys') + mapped = object.__getattribute__(self, 'mapped_keys') + if key in mapped: + lk, _ = mapped[key] + if self._legacy: + if lk is None: + raise NotImplementedError + self._legacy[lk] = value + elif key not in ('commands', 'exports', 'modules', 'namespaces', + 'classifiers'): + self._data[key] = value + else: + # special cases for PEP 459 + d = self._data.setdefault('extensions', {}) + if key == 'commands': + d['python.commands'] = value + elif key == 'classifiers': + d = d.setdefault('python.details', {}) + d[key] = value + else: + d = d.setdefault('python.exports', {}) + d[key] = value + elif key not in common: + object.__setattr__(self, key, value) + else: + if key == 'keywords': + if isinstance(value, string_types): + value = value.strip() + if value: + value = value.split() + else: + value = [] + if self._legacy: + self._legacy[key] = value + else: + self._data[key] = value + + @property + def name_and_version(self): + return _get_name_and_version(self.name, self.version, True) + + @property + def provides(self): + if self._legacy: + result = self._legacy['Provides-Dist'] + else: + result = self._data.setdefault('provides', []) + s = '%s (%s)' % (self.name, self.version) + if s not in result: + result.append(s) + return result + + @provides.setter + def provides(self, value): + if self._legacy: + self._legacy['Provides-Dist'] = value + else: + self._data['provides'] = value + + def get_requirements(self, reqts, extras=None, env=None): + """ + Base method to get dependencies, given a set of extras + to satisfy and an optional environment context. + :param reqts: A list of sometimes-wanted dependencies, + perhaps dependent on extras and environment. + :param extras: A list of optional components being requested. + :param env: An optional environment for marker evaluation. + """ + if self._legacy: + result = reqts + else: + result = [] + extras = get_extras(extras or [], self.extras) + for d in reqts: + if 'extra' not in d and 'environment' not in d: + # unconditional + include = True + else: + if 'extra' not in d: + # Not extra-dependent - only environment-dependent + include = True + else: + include = d.get('extra') in extras + if include: + # Not excluded because of extras, check environment + marker = d.get('environment') + if marker: + include = interpret(marker, env) + if include: + result.extend(d['requires']) + for key in ('build', 'dev', 'test'): + e = ':%s:' % key + if e in extras: + extras.remove(e) + # A recursive call, but it should terminate since 'test' + # has been removed from the extras + reqts = self._data.get('%s_requires' % key, []) + result.extend(self.get_requirements(reqts, extras=extras, + env=env)) + return result + + @property + def dictionary(self): + if self._legacy: + return self._from_legacy() + return self._data + + @property + def dependencies(self): + if self._legacy: + raise NotImplementedError + else: + return extract_by_key(self._data, self.DEPENDENCY_KEYS) + + @dependencies.setter + def dependencies(self, value): + if self._legacy: + raise NotImplementedError + else: + self._data.update(value) + + def _validate_mapping(self, mapping, scheme): + if mapping.get('metadata_version') != self.METADATA_VERSION: + raise MetadataUnrecognizedVersionError() + missing = [] + for key, exclusions in self.MANDATORY_KEYS.items(): + if key not in mapping: + if scheme not in exclusions: + missing.append(key) + if missing: + msg = 'Missing metadata items: %s' % ', '.join(missing) + raise MetadataMissingError(msg) + for k, v in mapping.items(): + self._validate_value(k, v, scheme) + + def validate(self): + if self._legacy: + missing, warnings = self._legacy.check(True) + if missing or warnings: + logger.warning('Metadata: missing: %s, warnings: %s', + missing, warnings) + else: + self._validate_mapping(self._data, self.scheme) + + def todict(self): + if self._legacy: + return self._legacy.todict(True) + else: + result = extract_by_key(self._data, self.INDEX_KEYS) + return result + + def _from_legacy(self): + assert self._legacy and not self._data + result = { + 'metadata_version': self.METADATA_VERSION, + 'generator': self.GENERATOR, + } + lmd = self._legacy.todict(True) # skip missing ones + for k in ('name', 'version', 'license', 'summary', 'description', + 'classifier'): + if k in lmd: + if k == 'classifier': + nk = 'classifiers' + else: + nk = k + result[nk] = lmd[k] + kw = lmd.get('Keywords', []) + if kw == ['']: + kw = [] + result['keywords'] = kw + keys = (('requires_dist', 'run_requires'), + ('setup_requires_dist', 'build_requires')) + for ok, nk in keys: + if ok in lmd and lmd[ok]: + result[nk] = [{'requires': lmd[ok]}] + result['provides'] = self.provides + author = {} + maintainer = {} + return result + + LEGACY_MAPPING = { + 'name': 'Name', + 'version': 'Version', + ('extensions', 'python.details', 'license'): 'License', + 'summary': 'Summary', + 'description': 'Description', + ('extensions', 'python.project', 'project_urls', 'Home'): 'Home-page', + ('extensions', 'python.project', 'contacts', 0, 'name'): 'Author', + ('extensions', 'python.project', 'contacts', 0, 'email'): 'Author-email', + 'source_url': 'Download-URL', + ('extensions', 'python.details', 'classifiers'): 'Classifier', + } + + def _to_legacy(self): + def process_entries(entries): + reqts = set() + for e in entries: + extra = e.get('extra') + env = e.get('environment') + rlist = e['requires'] + for r in rlist: + if not env and not extra: + reqts.add(r) + else: + marker = '' + if extra: + marker = 'extra == "%s"' % extra + if env: + if marker: + marker = '(%s) and %s' % (env, marker) + else: + marker = env + reqts.add(';'.join((r, marker))) + return reqts + + assert self._data and not self._legacy + result = LegacyMetadata() + nmd = self._data + # import pdb; pdb.set_trace() + for nk, ok in self.LEGACY_MAPPING.items(): + if not isinstance(nk, tuple): + if nk in nmd: + result[ok] = nmd[nk] + else: + d = nmd + found = True + for k in nk: + try: + d = d[k] + except (KeyError, IndexError): + found = False + break + if found: + result[ok] = d + r1 = process_entries(self.run_requires + self.meta_requires) + r2 = process_entries(self.build_requires + self.dev_requires) + if self.extras: + result['Provides-Extra'] = sorted(self.extras) + result['Requires-Dist'] = sorted(r1) + result['Setup-Requires-Dist'] = sorted(r2) + # TODO: any other fields wanted + return result + + def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): + if [path, fileobj].count(None) != 1: + raise ValueError('Exactly one of path and fileobj is needed') + self.validate() + if legacy: + if self._legacy: + legacy_md = self._legacy + else: + legacy_md = self._to_legacy() + if path: + legacy_md.write(path, skip_unknown=skip_unknown) + else: + legacy_md.write_file(fileobj, skip_unknown=skip_unknown) + else: + if self._legacy: + d = self._from_legacy() + else: + d = self._data + if fileobj: + json.dump(d, fileobj, ensure_ascii=True, indent=2, + sort_keys=True) + else: + with codecs.open(path, 'w', 'utf-8') as f: + json.dump(d, f, ensure_ascii=True, indent=2, + sort_keys=True) + + def add_requirements(self, requirements): + if self._legacy: + self._legacy.add_requirements(requirements) + else: + run_requires = self._data.setdefault('run_requires', []) + always = None + for entry in run_requires: + if 'environment' not in entry and 'extra' not in entry: + always = entry + break + if always is None: + always = { 'requires': requirements } + run_requires.insert(0, always) + else: + rset = set(always['requires']) | set(requirements) + always['requires'] = sorted(rset) + + def __repr__(self): + name = self.name or '(no name)' + version = self.version or 'no version' + return '<%s %s %s (%s)>' % (self.__class__.__name__, + self.metadata_version, name, version) diff --git a/venv/Lib/site-packages/distlib/resources.py b/venv/Lib/site-packages/distlib/resources.py new file mode 100644 index 00000000..18840167 --- /dev/null +++ b/venv/Lib/site-packages/distlib/resources.py @@ -0,0 +1,355 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from __future__ import unicode_literals + +import bisect +import io +import logging +import os +import pkgutil +import shutil +import sys +import types +import zipimport + +from . import DistlibException +from .util import cached_property, get_cache_base, path_to_cache_dir, Cache + +logger = logging.getLogger(__name__) + + +cache = None # created when needed + + +class ResourceCache(Cache): + def __init__(self, base=None): + if base is None: + # Use native string to avoid issues on 2.x: see Python #20140. + base = os.path.join(get_cache_base(), str('resource-cache')) + super(ResourceCache, self).__init__(base) + + def is_stale(self, resource, path): + """ + Is the cache stale for the given resource? + + :param resource: The :class:`Resource` being cached. + :param path: The path of the resource in the cache. + :return: True if the cache is stale. + """ + # Cache invalidation is a hard problem :-) + return True + + def get(self, resource): + """ + Get a resource into the cache, + + :param resource: A :class:`Resource` instance. + :return: The pathname of the resource in the cache. + """ + prefix, path = resource.finder.get_cache_info(resource) + if prefix is None: + result = path + else: + result = os.path.join(self.base, self.prefix_to_dir(prefix), path) + dirname = os.path.dirname(result) + if not os.path.isdir(dirname): + os.makedirs(dirname) + if not os.path.exists(result): + stale = True + else: + stale = self.is_stale(resource, path) + if stale: + # write the bytes of the resource to the cache location + with open(result, 'wb') as f: + f.write(resource.bytes) + return result + + +class ResourceBase(object): + def __init__(self, finder, name): + self.finder = finder + self.name = name + + +class Resource(ResourceBase): + """ + A class representing an in-package resource, such as a data file. This is + not normally instantiated by user code, but rather by a + :class:`ResourceFinder` which manages the resource. + """ + is_container = False # Backwards compatibility + + def as_stream(self): + """ + Get the resource as a stream. + + This is not a property to make it obvious that it returns a new stream + each time. + """ + return self.finder.get_stream(self) + + @cached_property + def file_path(self): + global cache + if cache is None: + cache = ResourceCache() + return cache.get(self) + + @cached_property + def bytes(self): + return self.finder.get_bytes(self) + + @cached_property + def size(self): + return self.finder.get_size(self) + + +class ResourceContainer(ResourceBase): + is_container = True # Backwards compatibility + + @cached_property + def resources(self): + return self.finder.get_resources(self) + + +class ResourceFinder(object): + """ + Resource finder for file system resources. + """ + + if sys.platform.startswith('java'): + skipped_extensions = ('.pyc', '.pyo', '.class') + else: + skipped_extensions = ('.pyc', '.pyo') + + def __init__(self, module): + self.module = module + self.loader = getattr(module, '__loader__', None) + self.base = os.path.dirname(getattr(module, '__file__', '')) + + def _adjust_path(self, path): + return os.path.realpath(path) + + def _make_path(self, resource_name): + # Issue #50: need to preserve type of path on Python 2.x + # like os.path._get_sep + if isinstance(resource_name, bytes): # should only happen on 2.x + sep = b'/' + else: + sep = '/' + parts = resource_name.split(sep) + parts.insert(0, self.base) + result = os.path.join(*parts) + return self._adjust_path(result) + + def _find(self, path): + return os.path.exists(path) + + def get_cache_info(self, resource): + return None, resource.path + + def find(self, resource_name): + path = self._make_path(resource_name) + if not self._find(path): + result = None + else: + if self._is_directory(path): + result = ResourceContainer(self, resource_name) + else: + result = Resource(self, resource_name) + result.path = path + return result + + def get_stream(self, resource): + return open(resource.path, 'rb') + + def get_bytes(self, resource): + with open(resource.path, 'rb') as f: + return f.read() + + def get_size(self, resource): + return os.path.getsize(resource.path) + + def get_resources(self, resource): + def allowed(f): + return (f != '__pycache__' and not + f.endswith(self.skipped_extensions)) + return set([f for f in os.listdir(resource.path) if allowed(f)]) + + def is_container(self, resource): + return self._is_directory(resource.path) + + _is_directory = staticmethod(os.path.isdir) + + def iterator(self, resource_name): + resource = self.find(resource_name) + if resource is not None: + todo = [resource] + while todo: + resource = todo.pop(0) + yield resource + if resource.is_container: + rname = resource.name + for name in resource.resources: + if not rname: + new_name = name + else: + new_name = '/'.join([rname, name]) + child = self.find(new_name) + if child.is_container: + todo.append(child) + else: + yield child + + +class ZipResourceFinder(ResourceFinder): + """ + Resource finder for resources in .zip files. + """ + def __init__(self, module): + super(ZipResourceFinder, self).__init__(module) + archive = self.loader.archive + self.prefix_len = 1 + len(archive) + # PyPy doesn't have a _files attr on zipimporter, and you can't set one + if hasattr(self.loader, '_files'): + self._files = self.loader._files + else: + self._files = zipimport._zip_directory_cache[archive] + self.index = sorted(self._files) + + def _adjust_path(self, path): + return path + + def _find(self, path): + path = path[self.prefix_len:] + if path in self._files: + result = True + else: + if path and path[-1] != os.sep: + path = path + os.sep + i = bisect.bisect(self.index, path) + try: + result = self.index[i].startswith(path) + except IndexError: + result = False + if not result: + logger.debug('_find failed: %r %r', path, self.loader.prefix) + else: + logger.debug('_find worked: %r %r', path, self.loader.prefix) + return result + + def get_cache_info(self, resource): + prefix = self.loader.archive + path = resource.path[1 + len(prefix):] + return prefix, path + + def get_bytes(self, resource): + return self.loader.get_data(resource.path) + + def get_stream(self, resource): + return io.BytesIO(self.get_bytes(resource)) + + def get_size(self, resource): + path = resource.path[self.prefix_len:] + return self._files[path][3] + + def get_resources(self, resource): + path = resource.path[self.prefix_len:] + if path and path[-1] != os.sep: + path += os.sep + plen = len(path) + result = set() + i = bisect.bisect(self.index, path) + while i < len(self.index): + if not self.index[i].startswith(path): + break + s = self.index[i][plen:] + result.add(s.split(os.sep, 1)[0]) # only immediate children + i += 1 + return result + + def _is_directory(self, path): + path = path[self.prefix_len:] + if path and path[-1] != os.sep: + path += os.sep + i = bisect.bisect(self.index, path) + try: + result = self.index[i].startswith(path) + except IndexError: + result = False + return result + +_finder_registry = { + type(None): ResourceFinder, + zipimport.zipimporter: ZipResourceFinder +} + +try: + # In Python 3.6, _frozen_importlib -> _frozen_importlib_external + try: + import _frozen_importlib_external as _fi + except ImportError: + import _frozen_importlib as _fi + _finder_registry[_fi.SourceFileLoader] = ResourceFinder + _finder_registry[_fi.FileFinder] = ResourceFinder + del _fi +except (ImportError, AttributeError): + pass + + +def register_finder(loader, finder_maker): + _finder_registry[type(loader)] = finder_maker + +_finder_cache = {} + + +def finder(package): + """ + Return a resource finder for a package. + :param package: The name of the package. + :return: A :class:`ResourceFinder` instance for the package. + """ + if package in _finder_cache: + result = _finder_cache[package] + else: + if package not in sys.modules: + __import__(package) + module = sys.modules[package] + path = getattr(module, '__path__', None) + if path is None: + raise DistlibException('You cannot get a finder for a module, ' + 'only for a package') + loader = getattr(module, '__loader__', None) + finder_maker = _finder_registry.get(type(loader)) + if finder_maker is None: + raise DistlibException('Unable to locate finder for %r' % package) + result = finder_maker(module) + _finder_cache[package] = result + return result + + +_dummy_module = types.ModuleType(str('__dummy__')) + + +def finder_for_path(path): + """ + Return a resource finder for a path, which should represent a container. + + :param path: The path. + :return: A :class:`ResourceFinder` instance for the path. + """ + result = None + # calls any path hooks, gets importer into cache + pkgutil.get_importer(path) + loader = sys.path_importer_cache.get(path) + finder = _finder_registry.get(type(loader)) + if finder: + module = _dummy_module + module.__file__ = os.path.join(path, '') + module.__loader__ = loader + result = finder(module) + return result diff --git a/venv/Lib/site-packages/distlib/scripts.py b/venv/Lib/site-packages/distlib/scripts.py new file mode 100644 index 00000000..03f8f21e --- /dev/null +++ b/venv/Lib/site-packages/distlib/scripts.py @@ -0,0 +1,419 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2015 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from io import BytesIO +import logging +import os +import re +import struct +import sys + +from .compat import sysconfig, detect_encoding, ZipFile +from .resources import finder +from .util import (FileOperator, get_export_entry, convert_path, + get_executable, in_venv) + +logger = logging.getLogger(__name__) + +_DEFAULT_MANIFEST = ''' + + + + + + + + + + + + +'''.strip() + +# check if Python is called on the first line with this expression +FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') +SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- +import re +import sys +from %(module)s import %(import_name)s +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(%(func)s()) +''' + + +def enquote_executable(executable): + if ' ' in executable: + # make sure we quote only the executable in case of env + # for example /usr/bin/env "/dir with spaces/bin/jython" + # instead of "/usr/bin/env /dir with spaces/bin/jython" + # otherwise whole + if executable.startswith('/usr/bin/env '): + env, _executable = executable.split(' ', 1) + if ' ' in _executable and not _executable.startswith('"'): + executable = '%s "%s"' % (env, _executable) + else: + if not executable.startswith('"'): + executable = '"%s"' % executable + return executable + +# Keep the old name around (for now), as there is at least one project using it! +_enquote_executable = enquote_executable + +class ScriptMaker(object): + """ + A class to copy or create scripts from source scripts or callable + specifications. + """ + script_template = SCRIPT_TEMPLATE + + executable = None # for shebangs + + def __init__(self, source_dir, target_dir, add_launchers=True, + dry_run=False, fileop=None): + self.source_dir = source_dir + self.target_dir = target_dir + self.add_launchers = add_launchers + self.force = False + self.clobber = False + # It only makes sense to set mode bits on POSIX. + self.set_mode = (os.name == 'posix') or (os.name == 'java' and + os._name == 'posix') + self.variants = set(('', 'X.Y')) + self._fileop = fileop or FileOperator(dry_run) + + self._is_nt = os.name == 'nt' or ( + os.name == 'java' and os._name == 'nt') + self.version_info = sys.version_info + + def _get_alternate_executable(self, executable, options): + if options.get('gui', False) and self._is_nt: # pragma: no cover + dn, fn = os.path.split(executable) + fn = fn.replace('python', 'pythonw') + executable = os.path.join(dn, fn) + return executable + + if sys.platform.startswith('java'): # pragma: no cover + def _is_shell(self, executable): + """ + Determine if the specified executable is a script + (contains a #! line) + """ + try: + with open(executable) as fp: + return fp.read(2) == '#!' + except (OSError, IOError): + logger.warning('Failed to open %s', executable) + return False + + def _fix_jython_executable(self, executable): + if self._is_shell(executable): + # Workaround for Jython is not needed on Linux systems. + import java + + if java.lang.System.getProperty('os.name') == 'Linux': + return executable + elif executable.lower().endswith('jython.exe'): + # Use wrapper exe for Jython on Windows + return executable + return '/usr/bin/env %s' % executable + + def _build_shebang(self, executable, post_interp): + """ + Build a shebang line. In the simple case (on Windows, or a shebang line + which is not too long or contains spaces) use a simple formulation for + the shebang. Otherwise, use /bin/sh as the executable, with a contrived + shebang which allows the script to run either under Python or sh, using + suitable quoting. Thanks to Harald Nordgren for his input. + + See also: http://www.in-ulm.de/~mascheck/various/shebang/#length + https://hg.mozilla.org/mozilla-central/file/tip/mach + """ + if os.name != 'posix': + simple_shebang = True + else: + # Add 3 for '#!' prefix and newline suffix. + shebang_length = len(executable) + len(post_interp) + 3 + if sys.platform == 'darwin': + max_shebang_length = 512 + else: + max_shebang_length = 127 + simple_shebang = ((b' ' not in executable) and + (shebang_length <= max_shebang_length)) + + if simple_shebang: + result = b'#!' + executable + post_interp + b'\n' + else: + result = b'#!/bin/sh\n' + result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' + result += b"' '''" + return result + + def _get_shebang(self, encoding, post_interp=b'', options=None): + enquote = True + if self.executable: + executable = self.executable + enquote = False # assume this will be taken care of + elif not sysconfig.is_python_build(): + executable = get_executable() + elif in_venv(): # pragma: no cover + executable = os.path.join(sysconfig.get_path('scripts'), + 'python%s' % sysconfig.get_config_var('EXE')) + else: # pragma: no cover + executable = os.path.join( + sysconfig.get_config_var('BINDIR'), + 'python%s%s' % (sysconfig.get_config_var('VERSION'), + sysconfig.get_config_var('EXE'))) + if options: + executable = self._get_alternate_executable(executable, options) + + if sys.platform.startswith('java'): # pragma: no cover + executable = self._fix_jython_executable(executable) + + # Normalise case for Windows - COMMENTED OUT + # executable = os.path.normcase(executable) + # N.B. The normalising operation above has been commented out: See + # issue #124. Although paths in Windows are generally case-insensitive, + # they aren't always. For example, a path containing a ẞ (which is a + # LATIN CAPITAL LETTER SHARP S - U+1E9E) is normcased to ß (which is a + # LATIN SMALL LETTER SHARP S' - U+00DF). The two are not considered by + # Windows as equivalent in path names. + + # If the user didn't specify an executable, it may be necessary to + # cater for executable paths with spaces (not uncommon on Windows) + if enquote: + executable = enquote_executable(executable) + # Issue #51: don't use fsencode, since we later try to + # check that the shebang is decodable using utf-8. + executable = executable.encode('utf-8') + # in case of IronPython, play safe and enable frames support + if (sys.platform == 'cli' and '-X:Frames' not in post_interp + and '-X:FullFrames' not in post_interp): # pragma: no cover + post_interp += b' -X:Frames' + shebang = self._build_shebang(executable, post_interp) + # Python parser starts to read a script using UTF-8 until + # it gets a #coding:xxx cookie. The shebang has to be the + # first line of a file, the #coding:xxx cookie cannot be + # written before. So the shebang has to be decodable from + # UTF-8. + try: + shebang.decode('utf-8') + except UnicodeDecodeError: # pragma: no cover + raise ValueError( + 'The shebang (%r) is not decodable from utf-8' % shebang) + # If the script is encoded to a custom encoding (use a + # #coding:xxx cookie), the shebang has to be decodable from + # the script encoding too. + if encoding != 'utf-8': + try: + shebang.decode(encoding) + except UnicodeDecodeError: # pragma: no cover + raise ValueError( + 'The shebang (%r) is not decodable ' + 'from the script encoding (%r)' % (shebang, encoding)) + return shebang + + def _get_script_text(self, entry): + return self.script_template % dict(module=entry.prefix, + import_name=entry.suffix.split('.')[0], + func=entry.suffix) + + manifest = _DEFAULT_MANIFEST + + def get_manifest(self, exename): + base = os.path.basename(exename) + return self.manifest % base + + def _write_script(self, names, shebang, script_bytes, filenames, ext): + use_launcher = self.add_launchers and self._is_nt + linesep = os.linesep.encode('utf-8') + if not shebang.endswith(linesep): + shebang += linesep + if not use_launcher: + script_bytes = shebang + script_bytes + else: # pragma: no cover + if ext == 'py': + launcher = self._get_launcher('t') + else: + launcher = self._get_launcher('w') + stream = BytesIO() + with ZipFile(stream, 'w') as zf: + zf.writestr('__main__.py', script_bytes) + zip_data = stream.getvalue() + script_bytes = launcher + shebang + zip_data + for name in names: + outname = os.path.join(self.target_dir, name) + if use_launcher: # pragma: no cover + n, e = os.path.splitext(outname) + if e.startswith('.py'): + outname = n + outname = '%s.exe' % outname + try: + self._fileop.write_binary_file(outname, script_bytes) + except Exception: + # Failed writing an executable - it might be in use. + logger.warning('Failed to write executable - trying to ' + 'use .deleteme logic') + dfname = '%s.deleteme' % outname + if os.path.exists(dfname): + os.remove(dfname) # Not allowed to fail here + os.rename(outname, dfname) # nor here + self._fileop.write_binary_file(outname, script_bytes) + logger.debug('Able to replace executable using ' + '.deleteme logic') + try: + os.remove(dfname) + except Exception: + pass # still in use - ignore error + else: + if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover + outname = '%s.%s' % (outname, ext) + if os.path.exists(outname) and not self.clobber: + logger.warning('Skipping existing file %s', outname) + continue + self._fileop.write_binary_file(outname, script_bytes) + if self.set_mode: + self._fileop.set_executable_mode([outname]) + filenames.append(outname) + + def _make_script(self, entry, filenames, options=None): + post_interp = b'' + if options: + args = options.get('interpreter_args', []) + if args: + args = ' %s' % ' '.join(args) + post_interp = args.encode('utf-8') + shebang = self._get_shebang('utf-8', post_interp, options=options) + script = self._get_script_text(entry).encode('utf-8') + name = entry.name + scriptnames = set() + if '' in self.variants: + scriptnames.add(name) + if 'X' in self.variants: + scriptnames.add('%s%s' % (name, self.version_info[0])) + if 'X.Y' in self.variants: + scriptnames.add('%s-%s.%s' % (name, self.version_info[0], + self.version_info[1])) + if options and options.get('gui', False): + ext = 'pyw' + else: + ext = 'py' + self._write_script(scriptnames, shebang, script, filenames, ext) + + def _copy_script(self, script, filenames): + adjust = False + script = os.path.join(self.source_dir, convert_path(script)) + outname = os.path.join(self.target_dir, os.path.basename(script)) + if not self.force and not self._fileop.newer(script, outname): + logger.debug('not copying %s (up-to-date)', script) + return + + # Always open the file, but ignore failures in dry-run mode -- + # that way, we'll get accurate feedback if we can read the + # script. + try: + f = open(script, 'rb') + except IOError: # pragma: no cover + if not self.dry_run: + raise + f = None + else: + first_line = f.readline() + if not first_line: # pragma: no cover + logger.warning('%s: %s is an empty file (skipping)', + self.get_command_name(), script) + return + + match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) + if match: + adjust = True + post_interp = match.group(1) or b'' + + if not adjust: + if f: + f.close() + self._fileop.copy_file(script, outname) + if self.set_mode: + self._fileop.set_executable_mode([outname]) + filenames.append(outname) + else: + logger.info('copying and adjusting %s -> %s', script, + self.target_dir) + if not self._fileop.dry_run: + encoding, lines = detect_encoding(f.readline) + f.seek(0) + shebang = self._get_shebang(encoding, post_interp) + if b'pythonw' in first_line: # pragma: no cover + ext = 'pyw' + else: + ext = 'py' + n = os.path.basename(outname) + self._write_script([n], shebang, f.read(), filenames, ext) + if f: + f.close() + + @property + def dry_run(self): + return self._fileop.dry_run + + @dry_run.setter + def dry_run(self, value): + self._fileop.dry_run = value + + if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover + # Executable launcher support. + # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ + + def _get_launcher(self, kind): + if struct.calcsize('P') == 8: # 64-bit + bits = '64' + else: + bits = '32' + name = '%s%s.exe' % (kind, bits) + # Issue 31: don't hardcode an absolute package name, but + # determine it relative to the current package + distlib_package = __name__.rsplit('.', 1)[0] + resource = finder(distlib_package).find(name) + if not resource: + msg = ('Unable to find resource %s in package %s' % (name, + distlib_package)) + raise ValueError(msg) + return resource.bytes + + # Public API follows + + def make(self, specification, options=None): + """ + Make a script. + + :param specification: The specification, which is either a valid export + entry specification (to make a script from a + callable) or a filename (to make a script by + copying from a source location). + :param options: A dictionary of options controlling script generation. + :return: A list of all absolute pathnames written to. + """ + filenames = [] + entry = get_export_entry(specification) + if entry is None: + self._copy_script(specification, filenames) + else: + self._make_script(entry, filenames, options=options) + return filenames + + def make_multiple(self, specifications, options=None): + """ + Take a list of specifications and make scripts from them, + :param specifications: A list of specifications. + :return: A list of all absolute pathnames written to, + """ + filenames = [] + for specification in specifications: + filenames.extend(self.make(specification, options)) + return filenames diff --git a/venv/Lib/site-packages/distlib/t32.exe b/venv/Lib/site-packages/distlib/t32.exe new file mode 100644 index 0000000000000000000000000000000000000000..8932a18e4596952373a38c60b81b7116d4ef9ee8 GIT binary patch literal 96768 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 F{{j_Hb~FG0 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/distlib/t64.exe b/venv/Lib/site-packages/distlib/t64.exe new file mode 100644 index 0000000000000000000000000000000000000000..325b8057c08cf7113d4fd889991fa5638d443793 GIT binary patch literal 105984 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

^h^N4aZyJe%k(7BL*-gn=9``8`j0CuR45%cHI z_uuQ8!-|TEvJ}r=zF@%uKc8U@W1eNxUymJ(e45Tb6KDNieQcKe?L-gR8zZj^wFmi= z{5sAxrfP3BOZz~T$3h=Gi%jFg1%D>!6t*l^`zH2G#1PiYtvOBSI#q&y?8qN57P^LA zq9U)rQU+*y!XEgsGMCJM7yWOS+9lW~^axz>9gyv{Pu^qsBg%ZkfzkaN`$zV#>=oFn zwANnf4&g*eu~pAMC~1dl8FZ-^aeQgZ7=osPU=58@oke z55pen;eU@Z`iL!`$;1-VA&$VF4gN7ttU>relx5d-_x=|95B47HeeiYJZ$$38(ddJH zcrW3>{OR2@KF^H}gAbdZDX=AzyZHSizB_(9`v&$-69)D4WBjSaY@YVD`kl8;nl#Cu z5h1U}Tp}-l|Nde9w|3Pc@Aps8-X~fh_EGq!b-~*$a&nv>05-_n;)z{t+vW|PpX{Oj zKE#i|Gsq9Jhpor%Fqiu6y5}jjnz?*$b)h|UO;3NGd-k|9?ZqeVXL!9~vaIO0E8bVb zejzv5ZG0}~1A7{a3!hob11v4ihxvzh!S5>3I?4E~N9+^m8@sHve^M+wb{f3t2VUsD z*C*C&;z_`=&t~mbE@mHC`k7cGl3rKU9U84p?fzGxTg1q z)-Ai@eQSs49?#VDZ(BQ5_sXt#*VAn)X1Lk5l>kvHP6SDZX>#ITM7@`jxR;sQ>OG+Pe$CuXbGOdj zGq+|zTtQMnhk{-O{R=KF7*}vZ!OVhr1xpLo6l^NkTCk^}W?@_*Z|>hH7&o`>+{q8j zm_Kv=-1+n7FPgt}{>u4l=C7T3KtbFEnHc+rVzeuEi5hE<2hHiD6S}>D5l co{tw5U0O7=?|={2,3}|[~!]=)\s*') +MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') +OR = re.compile(r'^or\b\s*') +AND = re.compile(r'^and\b\s*') +NON_SPACE = re.compile(r'(\S+)\s*') +STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') + + +def parse_marker(marker_string): + """ + Parse a marker string and return a dictionary containing a marker expression. + + The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in + the expression grammar, or strings. A string contained in quotes is to be + interpreted as a literal string, and a string not contained in quotes is a + variable (such as os_name). + """ + def marker_var(remaining): + # either identifier, or literal string + m = IDENTIFIER.match(remaining) + if m: + result = m.groups()[0] + remaining = remaining[m.end():] + elif not remaining: + raise SyntaxError('unexpected end of input') + else: + q = remaining[0] + if q not in '\'"': + raise SyntaxError('invalid expression: %s' % remaining) + oq = '\'"'.replace(q, '') + remaining = remaining[1:] + parts = [q] + while remaining: + # either a string chunk, or oq, or q to terminate + if remaining[0] == q: + break + elif remaining[0] == oq: + parts.append(oq) + remaining = remaining[1:] + else: + m = STRING_CHUNK.match(remaining) + if not m: + raise SyntaxError('error in string literal: %s' % remaining) + parts.append(m.groups()[0]) + remaining = remaining[m.end():] + else: + s = ''.join(parts) + raise SyntaxError('unterminated string: %s' % s) + parts.append(q) + result = ''.join(parts) + remaining = remaining[1:].lstrip() # skip past closing quote + return result, remaining + + def marker_expr(remaining): + if remaining and remaining[0] == '(': + result, remaining = marker(remaining[1:].lstrip()) + if remaining[0] != ')': + raise SyntaxError('unterminated parenthesis: %s' % remaining) + remaining = remaining[1:].lstrip() + else: + lhs, remaining = marker_var(remaining) + while remaining: + m = MARKER_OP.match(remaining) + if not m: + break + op = m.groups()[0] + remaining = remaining[m.end():] + rhs, remaining = marker_var(remaining) + lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} + result = lhs + return result, remaining + + def marker_and(remaining): + lhs, remaining = marker_expr(remaining) + while remaining: + m = AND.match(remaining) + if not m: + break + remaining = remaining[m.end():] + rhs, remaining = marker_expr(remaining) + lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} + return lhs, remaining + + def marker(remaining): + lhs, remaining = marker_and(remaining) + while remaining: + m = OR.match(remaining) + if not m: + break + remaining = remaining[m.end():] + rhs, remaining = marker_and(remaining) + lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} + return lhs, remaining + + return marker(marker_string) + + +def parse_requirement(req): + """ + Parse a requirement passed in as a string. Return a Container + whose attributes contain the various parts of the requirement. + """ + remaining = req.strip() + if not remaining or remaining.startswith('#'): + return None + m = IDENTIFIER.match(remaining) + if not m: + raise SyntaxError('name expected: %s' % remaining) + distname = m.groups()[0] + remaining = remaining[m.end():] + extras = mark_expr = versions = uri = None + if remaining and remaining[0] == '[': + i = remaining.find(']', 1) + if i < 0: + raise SyntaxError('unterminated extra: %s' % remaining) + s = remaining[1:i] + remaining = remaining[i + 1:].lstrip() + extras = [] + while s: + m = IDENTIFIER.match(s) + if not m: + raise SyntaxError('malformed extra: %s' % s) + extras.append(m.groups()[0]) + s = s[m.end():] + if not s: + break + if s[0] != ',': + raise SyntaxError('comma expected in extras: %s' % s) + s = s[1:].lstrip() + if not extras: + extras = None + if remaining: + if remaining[0] == '@': + # it's a URI + remaining = remaining[1:].lstrip() + m = NON_SPACE.match(remaining) + if not m: + raise SyntaxError('invalid URI: %s' % remaining) + uri = m.groups()[0] + t = urlparse(uri) + # there are issues with Python and URL parsing, so this test + # is a bit crude. See bpo-20271, bpo-23505. Python doesn't + # always parse invalid URLs correctly - it should raise + # exceptions for malformed URLs + if not (t.scheme and t.netloc): + raise SyntaxError('Invalid URL: %s' % uri) + remaining = remaining[m.end():].lstrip() + else: + + def get_versions(ver_remaining): + """ + Return a list of operator, version tuples if any are + specified, else None. + """ + m = COMPARE_OP.match(ver_remaining) + versions = None + if m: + versions = [] + while True: + op = m.groups()[0] + ver_remaining = ver_remaining[m.end():] + m = VERSION_IDENTIFIER.match(ver_remaining) + if not m: + raise SyntaxError('invalid version: %s' % ver_remaining) + v = m.groups()[0] + versions.append((op, v)) + ver_remaining = ver_remaining[m.end():] + if not ver_remaining or ver_remaining[0] != ',': + break + ver_remaining = ver_remaining[1:].lstrip() + m = COMPARE_OP.match(ver_remaining) + if not m: + raise SyntaxError('invalid constraint: %s' % ver_remaining) + if not versions: + versions = None + return versions, ver_remaining + + if remaining[0] != '(': + versions, remaining = get_versions(remaining) + else: + i = remaining.find(')', 1) + if i < 0: + raise SyntaxError('unterminated parenthesis: %s' % remaining) + s = remaining[1:i] + remaining = remaining[i + 1:].lstrip() + # As a special diversion from PEP 508, allow a version number + # a.b.c in parentheses as a synonym for ~= a.b.c (because this + # is allowed in earlier PEPs) + if COMPARE_OP.match(s): + versions, _ = get_versions(s) + else: + m = VERSION_IDENTIFIER.match(s) + if not m: + raise SyntaxError('invalid constraint: %s' % s) + v = m.groups()[0] + s = s[m.end():].lstrip() + if s: + raise SyntaxError('invalid constraint: %s' % s) + versions = [('~=', v)] + + if remaining: + if remaining[0] != ';': + raise SyntaxError('invalid requirement: %s' % remaining) + remaining = remaining[1:].lstrip() + + mark_expr, remaining = parse_marker(remaining) + + if remaining and remaining[0] != '#': + raise SyntaxError('unexpected trailing data: %s' % remaining) + + if not versions: + rs = distname + else: + rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) + return Container(name=distname, extras=extras, constraints=versions, + marker=mark_expr, url=uri, requirement=rs) + + +def get_resources_dests(resources_root, rules): + """Find destinations for resources files""" + + def get_rel_path(root, path): + # normalizes and returns a lstripped-/-separated path + root = root.replace(os.path.sep, '/') + path = path.replace(os.path.sep, '/') + assert path.startswith(root) + return path[len(root):].lstrip('/') + + destinations = {} + for base, suffix, dest in rules: + prefix = os.path.join(resources_root, base) + for abs_base in iglob(prefix): + abs_glob = os.path.join(abs_base, suffix) + for abs_path in iglob(abs_glob): + resource_file = get_rel_path(resources_root, abs_path) + if dest is None: # remove the entry if it was here + destinations.pop(resource_file, None) + else: + rel_path = get_rel_path(abs_base, abs_path) + rel_dest = dest.replace(os.path.sep, '/').rstrip('/') + destinations[resource_file] = rel_dest + '/' + rel_path + return destinations + + +def in_venv(): + if hasattr(sys, 'real_prefix'): + # virtualenv venvs + result = True + else: + # PEP 405 venvs + result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) + return result + + +def get_executable(): +# The __PYVENV_LAUNCHER__ dance is apparently no longer needed, as +# changes to the stub launcher mean that sys.executable always points +# to the stub on OS X +# if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' +# in os.environ): +# result = os.environ['__PYVENV_LAUNCHER__'] +# else: +# result = sys.executable +# return result + result = os.path.normcase(sys.executable) + if not isinstance(result, text_type): + result = fsdecode(result) + return result + + +def proceed(prompt, allowed_chars, error_prompt=None, default=None): + p = prompt + while True: + s = raw_input(p) + p = prompt + if not s and default: + s = default + if s: + c = s[0].lower() + if c in allowed_chars: + break + if error_prompt: + p = '%c: %s\n%s' % (c, error_prompt, prompt) + return c + + +def extract_by_key(d, keys): + if isinstance(keys, string_types): + keys = keys.split() + result = {} + for key in keys: + if key in d: + result[key] = d[key] + return result + +def read_exports(stream): + if sys.version_info[0] >= 3: + # needs to be a text stream + stream = codecs.getreader('utf-8')(stream) + # Try to load as JSON, falling back on legacy format + data = stream.read() + stream = StringIO(data) + try: + jdata = json.load(stream) + result = jdata['extensions']['python.exports']['exports'] + for group, entries in result.items(): + for k, v in entries.items(): + s = '%s = %s' % (k, v) + entry = get_export_entry(s) + assert entry is not None + entries[k] = entry + return result + except Exception: + stream.seek(0, 0) + + def read_stream(cp, stream): + if hasattr(cp, 'read_file'): + cp.read_file(stream) + else: + cp.readfp(stream) + + cp = configparser.ConfigParser() + try: + read_stream(cp, stream) + except configparser.MissingSectionHeaderError: + stream.close() + data = textwrap.dedent(data) + stream = StringIO(data) + read_stream(cp, stream) + + result = {} + for key in cp.sections(): + result[key] = entries = {} + for name, value in cp.items(key): + s = '%s = %s' % (name, value) + entry = get_export_entry(s) + assert entry is not None + #entry.dist = self + entries[name] = entry + return result + + +def write_exports(exports, stream): + if sys.version_info[0] >= 3: + # needs to be a text stream + stream = codecs.getwriter('utf-8')(stream) + cp = configparser.ConfigParser() + for k, v in exports.items(): + # TODO check k, v for valid values + cp.add_section(k) + for entry in v.values(): + if entry.suffix is None: + s = entry.prefix + else: + s = '%s:%s' % (entry.prefix, entry.suffix) + if entry.flags: + s = '%s [%s]' % (s, ', '.join(entry.flags)) + cp.set(k, entry.name, s) + cp.write(stream) + + +@contextlib.contextmanager +def tempdir(): + td = tempfile.mkdtemp() + try: + yield td + finally: + shutil.rmtree(td) + +@contextlib.contextmanager +def chdir(d): + cwd = os.getcwd() + try: + os.chdir(d) + yield + finally: + os.chdir(cwd) + + +@contextlib.contextmanager +def socket_timeout(seconds=15): + cto = socket.getdefaulttimeout() + try: + socket.setdefaulttimeout(seconds) + yield + finally: + socket.setdefaulttimeout(cto) + + +class cached_property(object): + def __init__(self, func): + self.func = func + #for attr in ('__name__', '__module__', '__doc__'): + # setattr(self, attr, getattr(func, attr, None)) + + def __get__(self, obj, cls=None): + if obj is None: + return self + value = self.func(obj) + object.__setattr__(obj, self.func.__name__, value) + #obj.__dict__[self.func.__name__] = value = self.func(obj) + return value + +def convert_path(pathname): + """Return 'pathname' as a name that will work on the native filesystem. + + The path is split on '/' and put back together again using the current + directory separator. Needed because filenames in the setup script are + always supplied in Unix style, and have to be converted to the local + convention before we can actually use them in the filesystem. Raises + ValueError on non-Unix-ish systems if 'pathname' either starts or + ends with a slash. + """ + if os.sep == '/': + return pathname + if not pathname: + return pathname + if pathname[0] == '/': + raise ValueError("path '%s' cannot be absolute" % pathname) + if pathname[-1] == '/': + raise ValueError("path '%s' cannot end with '/'" % pathname) + + paths = pathname.split('/') + while os.curdir in paths: + paths.remove(os.curdir) + if not paths: + return os.curdir + return os.path.join(*paths) + + +class FileOperator(object): + def __init__(self, dry_run=False): + self.dry_run = dry_run + self.ensured = set() + self._init_record() + + def _init_record(self): + self.record = False + self.files_written = set() + self.dirs_created = set() + + def record_as_written(self, path): + if self.record: + self.files_written.add(path) + + def newer(self, source, target): + """Tell if the target is newer than the source. + + Returns true if 'source' exists and is more recently modified than + 'target', or if 'source' exists and 'target' doesn't. + + Returns false if both exist and 'target' is the same age or younger + than 'source'. Raise PackagingFileError if 'source' does not exist. + + Note that this test is not very accurate: files created in the same + second will have the same "age". + """ + if not os.path.exists(source): + raise DistlibException("file '%r' does not exist" % + os.path.abspath(source)) + if not os.path.exists(target): + return True + + return os.stat(source).st_mtime > os.stat(target).st_mtime + + def copy_file(self, infile, outfile, check=True): + """Copy a file respecting dry-run and force flags. + """ + self.ensure_dir(os.path.dirname(outfile)) + logger.info('Copying %s to %s', infile, outfile) + if not self.dry_run: + msg = None + if check: + if os.path.islink(outfile): + msg = '%s is a symlink' % outfile + elif os.path.exists(outfile) and not os.path.isfile(outfile): + msg = '%s is a non-regular file' % outfile + if msg: + raise ValueError(msg + ' which would be overwritten') + shutil.copyfile(infile, outfile) + self.record_as_written(outfile) + + def copy_stream(self, instream, outfile, encoding=None): + assert not os.path.isdir(outfile) + self.ensure_dir(os.path.dirname(outfile)) + logger.info('Copying stream %s to %s', instream, outfile) + if not self.dry_run: + if encoding is None: + outstream = open(outfile, 'wb') + else: + outstream = codecs.open(outfile, 'w', encoding=encoding) + try: + shutil.copyfileobj(instream, outstream) + finally: + outstream.close() + self.record_as_written(outfile) + + def write_binary_file(self, path, data): + self.ensure_dir(os.path.dirname(path)) + if not self.dry_run: + if os.path.exists(path): + os.remove(path) + with open(path, 'wb') as f: + f.write(data) + self.record_as_written(path) + + def write_text_file(self, path, data, encoding): + self.write_binary_file(path, data.encode(encoding)) + + def set_mode(self, bits, mask, files): + if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): + # Set the executable bits (owner, group, and world) on + # all the files specified. + for f in files: + if self.dry_run: + logger.info("changing mode of %s", f) + else: + mode = (os.stat(f).st_mode | bits) & mask + logger.info("changing mode of %s to %o", f, mode) + os.chmod(f, mode) + + set_executable_mode = lambda s, f: s.set_mode(0o555, 0o7777, f) + + def ensure_dir(self, path): + path = os.path.abspath(path) + if path not in self.ensured and not os.path.exists(path): + self.ensured.add(path) + d, f = os.path.split(path) + self.ensure_dir(d) + logger.info('Creating %s' % path) + if not self.dry_run: + os.mkdir(path) + if self.record: + self.dirs_created.add(path) + + def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): + dpath = cache_from_source(path, not optimize) + logger.info('Byte-compiling %s to %s', path, dpath) + if not self.dry_run: + if force or self.newer(path, dpath): + if not prefix: + diagpath = None + else: + assert path.startswith(prefix) + diagpath = path[len(prefix):] + compile_kwargs = {} + if hashed_invalidation and hasattr(py_compile, 'PycInvalidationMode'): + compile_kwargs['invalidation_mode'] = py_compile.PycInvalidationMode.CHECKED_HASH + py_compile.compile(path, dpath, diagpath, True, **compile_kwargs) # raise error + self.record_as_written(dpath) + return dpath + + def ensure_removed(self, path): + if os.path.exists(path): + if os.path.isdir(path) and not os.path.islink(path): + logger.debug('Removing directory tree at %s', path) + if not self.dry_run: + shutil.rmtree(path) + if self.record: + if path in self.dirs_created: + self.dirs_created.remove(path) + else: + if os.path.islink(path): + s = 'link' + else: + s = 'file' + logger.debug('Removing %s %s', s, path) + if not self.dry_run: + os.remove(path) + if self.record: + if path in self.files_written: + self.files_written.remove(path) + + def is_writable(self, path): + result = False + while not result: + if os.path.exists(path): + result = os.access(path, os.W_OK) + break + parent = os.path.dirname(path) + if parent == path: + break + path = parent + return result + + def commit(self): + """ + Commit recorded changes, turn off recording, return + changes. + """ + assert self.record + result = self.files_written, self.dirs_created + self._init_record() + return result + + def rollback(self): + if not self.dry_run: + for f in list(self.files_written): + if os.path.exists(f): + os.remove(f) + # dirs should all be empty now, except perhaps for + # __pycache__ subdirs + # reverse so that subdirs appear before their parents + dirs = sorted(self.dirs_created, reverse=True) + for d in dirs: + flist = os.listdir(d) + if flist: + assert flist == ['__pycache__'] + sd = os.path.join(d, flist[0]) + os.rmdir(sd) + os.rmdir(d) # should fail if non-empty + self._init_record() + +def resolve(module_name, dotted_path): + if module_name in sys.modules: + mod = sys.modules[module_name] + else: + mod = __import__(module_name) + if dotted_path is None: + result = mod + else: + parts = dotted_path.split('.') + result = getattr(mod, parts.pop(0)) + for p in parts: + result = getattr(result, p) + return result + + +class ExportEntry(object): + def __init__(self, name, prefix, suffix, flags): + self.name = name + self.prefix = prefix + self.suffix = suffix + self.flags = flags + + @cached_property + def value(self): + return resolve(self.prefix, self.suffix) + + def __repr__(self): # pragma: no cover + return '' % (self.name, self.prefix, + self.suffix, self.flags) + + def __eq__(self, other): + if not isinstance(other, ExportEntry): + result = False + else: + result = (self.name == other.name and + self.prefix == other.prefix and + self.suffix == other.suffix and + self.flags == other.flags) + return result + + __hash__ = object.__hash__ + + +ENTRY_RE = re.compile(r'''(?P(\w|[-.+])+) + \s*=\s*(?P(\w+)([:\.]\w+)*) + \s*(\[\s*(?P[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? + ''', re.VERBOSE) + +def get_export_entry(specification): + m = ENTRY_RE.search(specification) + if not m: + result = None + if '[' in specification or ']' in specification: + raise DistlibException("Invalid specification " + "'%s'" % specification) + else: + d = m.groupdict() + name = d['name'] + path = d['callable'] + colons = path.count(':') + if colons == 0: + prefix, suffix = path, None + else: + if colons != 1: + raise DistlibException("Invalid specification " + "'%s'" % specification) + prefix, suffix = path.split(':') + flags = d['flags'] + if flags is None: + if '[' in specification or ']' in specification: + raise DistlibException("Invalid specification " + "'%s'" % specification) + flags = [] + else: + flags = [f.strip() for f in flags.split(',')] + result = ExportEntry(name, prefix, suffix, flags) + return result + + +def get_cache_base(suffix=None): + """ + Return the default base location for distlib caches. If the directory does + not exist, it is created. Use the suffix provided for the base directory, + and default to '.distlib' if it isn't provided. + + On Windows, if LOCALAPPDATA is defined in the environment, then it is + assumed to be a directory, and will be the parent directory of the result. + On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home + directory - using os.expanduser('~') - will be the parent directory of + the result. + + The result is just the directory '.distlib' in the parent directory as + determined above, or with the name specified with ``suffix``. + """ + if suffix is None: + suffix = '.distlib' + if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: + result = os.path.expandvars('$localappdata') + else: + # Assume posix, or old Windows + result = os.path.expanduser('~') + # we use 'isdir' instead of 'exists', because we want to + # fail if there's a file with that name + if os.path.isdir(result): + usable = os.access(result, os.W_OK) + if not usable: + logger.warning('Directory exists but is not writable: %s', result) + else: + try: + os.makedirs(result) + usable = True + except OSError: + logger.warning('Unable to create %s', result, exc_info=True) + usable = False + if not usable: + result = tempfile.mkdtemp() + logger.warning('Default location unusable, using %s', result) + return os.path.join(result, suffix) + + +def path_to_cache_dir(path): + """ + Convert an absolute path to a directory name for use in a cache. + + The algorithm used is: + + #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. + #. Any occurrence of ``os.sep`` is replaced with ``'--'``. + #. ``'.cache'`` is appended. + """ + d, p = os.path.splitdrive(os.path.abspath(path)) + if d: + d = d.replace(':', '---') + p = p.replace(os.sep, '--') + return d + p + '.cache' + + +def ensure_slash(s): + if not s.endswith('/'): + return s + '/' + return s + + +def parse_credentials(netloc): + username = password = None + if '@' in netloc: + prefix, netloc = netloc.rsplit('@', 1) + if ':' not in prefix: + username = prefix + else: + username, password = prefix.split(':', 1) + if username: + username = unquote(username) + if password: + password = unquote(password) + return username, password, netloc + + +def get_process_umask(): + result = os.umask(0o22) + os.umask(result) + return result + +def is_string_sequence(seq): + result = True + i = None + for i, s in enumerate(seq): + if not isinstance(s, string_types): + result = False + break + assert i is not None + return result + +PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' + '([a-z0-9_.+-]+)', re.I) +PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') + + +def split_filename(filename, project_name=None): + """ + Extract name, version, python version from a filename (no extension) + + Return name, version, pyver or None + """ + result = None + pyver = None + filename = unquote(filename).replace(' ', '-') + m = PYTHON_VERSION.search(filename) + if m: + pyver = m.group(1) + filename = filename[:m.start()] + if project_name and len(filename) > len(project_name) + 1: + m = re.match(re.escape(project_name) + r'\b', filename) + if m: + n = m.end() + result = filename[:n], filename[n + 1:], pyver + if result is None: + m = PROJECT_NAME_AND_VERSION.match(filename) + if m: + result = m.group(1), m.group(3), pyver + return result + +# Allow spaces in name because of legacy dists like "Twisted Core" +NAME_VERSION_RE = re.compile(r'(?P[\w .-]+)\s*' + r'\(\s*(?P[^\s)]+)\)$') + +def parse_name_and_version(p): + """ + A utility method used to get name and version from a string. + + From e.g. a Provides-Dist value. + + :param p: A value in a form 'foo (1.0)' + :return: The name and version as a tuple. + """ + m = NAME_VERSION_RE.match(p) + if not m: + raise DistlibException('Ill-formed name/version string: \'%s\'' % p) + d = m.groupdict() + return d['name'].strip().lower(), d['ver'] + +def get_extras(requested, available): + result = set() + requested = set(requested or []) + available = set(available or []) + if '*' in requested: + requested.remove('*') + result |= available + for r in requested: + if r == '-': + result.add(r) + elif r.startswith('-'): + unwanted = r[1:] + if unwanted not in available: + logger.warning('undeclared extra: %s' % unwanted) + if unwanted in result: + result.remove(unwanted) + else: + if r not in available: + logger.warning('undeclared extra: %s' % r) + result.add(r) + return result +# +# Extended metadata functionality +# + +def _get_external_data(url): + result = {} + try: + # urlopen might fail if it runs into redirections, + # because of Python issue #13696. Fixed in locators + # using a custom redirect handler. + resp = urlopen(url) + headers = resp.info() + ct = headers.get('Content-Type') + if not ct.startswith('application/json'): + logger.debug('Unexpected response for JSON request: %s', ct) + else: + reader = codecs.getreader('utf-8')(resp) + #data = reader.read().decode('utf-8') + #result = json.loads(data) + result = json.load(reader) + except Exception as e: + logger.exception('Failed to get external data for %s: %s', url, e) + return result + +_external_data_base_url = 'https://www.red-dove.com/pypi/projects/' + +def get_project_data(name): + url = '%s/%s/project.json' % (name[0].upper(), name) + url = urljoin(_external_data_base_url, url) + result = _get_external_data(url) + return result + +def get_package_data(name, version): + url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) + url = urljoin(_external_data_base_url, url) + return _get_external_data(url) + + +class Cache(object): + """ + A class implementing a cache for resources that need to live in the file system + e.g. shared libraries. This class was moved from resources to here because it + could be used by other modules, e.g. the wheel module. + """ + + def __init__(self, base): + """ + Initialise an instance. + + :param base: The base directory where the cache should be located. + """ + # we use 'isdir' instead of 'exists', because we want to + # fail if there's a file with that name + if not os.path.isdir(base): # pragma: no cover + os.makedirs(base) + if (os.stat(base).st_mode & 0o77) != 0: + logger.warning('Directory \'%s\' is not private', base) + self.base = os.path.abspath(os.path.normpath(base)) + + def prefix_to_dir(self, prefix): + """ + Converts a resource prefix to a directory name in the cache. + """ + return path_to_cache_dir(prefix) + + def clear(self): + """ + Clear the cache. + """ + not_removed = [] + for fn in os.listdir(self.base): + fn = os.path.join(self.base, fn) + try: + if os.path.islink(fn) or os.path.isfile(fn): + os.remove(fn) + elif os.path.isdir(fn): + shutil.rmtree(fn) + except Exception: + not_removed.append(fn) + return not_removed + + +class EventMixin(object): + """ + A very simple publish/subscribe system. + """ + def __init__(self): + self._subscribers = {} + + def add(self, event, subscriber, append=True): + """ + Add a subscriber for an event. + + :param event: The name of an event. + :param subscriber: The subscriber to be added (and called when the + event is published). + :param append: Whether to append or prepend the subscriber to an + existing subscriber list for the event. + """ + subs = self._subscribers + if event not in subs: + subs[event] = deque([subscriber]) + else: + sq = subs[event] + if append: + sq.append(subscriber) + else: + sq.appendleft(subscriber) + + def remove(self, event, subscriber): + """ + Remove a subscriber for an event. + + :param event: The name of an event. + :param subscriber: The subscriber to be removed. + """ + subs = self._subscribers + if event not in subs: + raise ValueError('No subscribers: %r' % event) + subs[event].remove(subscriber) + + def get_subscribers(self, event): + """ + Return an iterator for the subscribers for an event. + :param event: The event to return subscribers for. + """ + return iter(self._subscribers.get(event, ())) + + def publish(self, event, *args, **kwargs): + """ + Publish a event and return a list of values returned by its + subscribers. + + :param event: The event to publish. + :param args: The positional arguments to pass to the event's + subscribers. + :param kwargs: The keyword arguments to pass to the event's + subscribers. + """ + result = [] + for subscriber in self.get_subscribers(event): + try: + value = subscriber(event, *args, **kwargs) + except Exception: + logger.exception('Exception during event publication') + value = None + result.append(value) + logger.debug('publish %s: args = %s, kwargs = %s, result = %s', + event, args, kwargs, result) + return result + +# +# Simple sequencing +# +class Sequencer(object): + def __init__(self): + self._preds = {} + self._succs = {} + self._nodes = set() # nodes with no preds/succs + + def add_node(self, node): + self._nodes.add(node) + + def remove_node(self, node, edges=False): + if node in self._nodes: + self._nodes.remove(node) + if edges: + for p in set(self._preds.get(node, ())): + self.remove(p, node) + for s in set(self._succs.get(node, ())): + self.remove(node, s) + # Remove empties + for k, v in list(self._preds.items()): + if not v: + del self._preds[k] + for k, v in list(self._succs.items()): + if not v: + del self._succs[k] + + def add(self, pred, succ): + assert pred != succ + self._preds.setdefault(succ, set()).add(pred) + self._succs.setdefault(pred, set()).add(succ) + + def remove(self, pred, succ): + assert pred != succ + try: + preds = self._preds[succ] + succs = self._succs[pred] + except KeyError: # pragma: no cover + raise ValueError('%r not a successor of anything' % succ) + try: + preds.remove(pred) + succs.remove(succ) + except KeyError: # pragma: no cover + raise ValueError('%r not a successor of %r' % (succ, pred)) + + def is_step(self, step): + return (step in self._preds or step in self._succs or + step in self._nodes) + + def get_steps(self, final): + if not self.is_step(final): + raise ValueError('Unknown: %r' % final) + result = [] + todo = [] + seen = set() + todo.append(final) + while todo: + step = todo.pop(0) + if step in seen: + # if a step was already seen, + # move it to the end (so it will appear earlier + # when reversed on return) ... but not for the + # final step, as that would be confusing for + # users + if step != final: + result.remove(step) + result.append(step) + else: + seen.add(step) + result.append(step) + preds = self._preds.get(step, ()) + todo.extend(preds) + return reversed(result) + + @property + def strong_connections(self): + #http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm + index_counter = [0] + stack = [] + lowlinks = {} + index = {} + result = [] + + graph = self._succs + + def strongconnect(node): + # set the depth index for this node to the smallest unused index + index[node] = index_counter[0] + lowlinks[node] = index_counter[0] + index_counter[0] += 1 + stack.append(node) + + # Consider successors + try: + successors = graph[node] + except Exception: + successors = [] + for successor in successors: + if successor not in lowlinks: + # Successor has not yet been visited + strongconnect(successor) + lowlinks[node] = min(lowlinks[node],lowlinks[successor]) + elif successor in stack: + # the successor is in the stack and hence in the current + # strongly connected component (SCC) + lowlinks[node] = min(lowlinks[node],index[successor]) + + # If `node` is a root node, pop the stack and generate an SCC + if lowlinks[node] == index[node]: + connected_component = [] + + while True: + successor = stack.pop() + connected_component.append(successor) + if successor == node: break + component = tuple(connected_component) + # storing the result + result.append(component) + + for node in graph: + if node not in lowlinks: + strongconnect(node) + + return result + + @property + def dot(self): + result = ['digraph G {'] + for succ in self._preds: + preds = self._preds[succ] + for pred in preds: + result.append(' %s -> %s;' % (pred, succ)) + for node in self._nodes: + result.append(' %s;' % node) + result.append('}') + return '\n'.join(result) + +# +# Unarchiving functionality for zip, tar, tgz, tbz, whl +# + +ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', + '.tgz', '.tbz', '.whl') + +def unarchive(archive_filename, dest_dir, format=None, check=True): + + def check_path(path): + if not isinstance(path, text_type): + path = path.decode('utf-8') + p = os.path.abspath(os.path.join(dest_dir, path)) + if not p.startswith(dest_dir) or p[plen] != os.sep: + raise ValueError('path outside destination: %r' % p) + + dest_dir = os.path.abspath(dest_dir) + plen = len(dest_dir) + archive = None + if format is None: + if archive_filename.endswith(('.zip', '.whl')): + format = 'zip' + elif archive_filename.endswith(('.tar.gz', '.tgz')): + format = 'tgz' + mode = 'r:gz' + elif archive_filename.endswith(('.tar.bz2', '.tbz')): + format = 'tbz' + mode = 'r:bz2' + elif archive_filename.endswith('.tar'): + format = 'tar' + mode = 'r' + else: # pragma: no cover + raise ValueError('Unknown format for %r' % archive_filename) + try: + if format == 'zip': + archive = ZipFile(archive_filename, 'r') + if check: + names = archive.namelist() + for name in names: + check_path(name) + else: + archive = tarfile.open(archive_filename, mode) + if check: + names = archive.getnames() + for name in names: + check_path(name) + if format != 'zip' and sys.version_info[0] < 3: + # See Python issue 17153. If the dest path contains Unicode, + # tarfile extraction fails on Python 2.x if a member path name + # contains non-ASCII characters - it leads to an implicit + # bytes -> unicode conversion using ASCII to decode. + for tarinfo in archive.getmembers(): + if not isinstance(tarinfo.name, text_type): + tarinfo.name = tarinfo.name.decode('utf-8') + archive.extractall(dest_dir) + + finally: + if archive: + archive.close() + + +def zip_dir(directory): + """zip a directory tree into a BytesIO object""" + result = io.BytesIO() + dlen = len(directory) + with ZipFile(result, "w") as zf: + for root, dirs, files in os.walk(directory): + for name in files: + full = os.path.join(root, name) + rel = root[dlen:] + dest = os.path.join(rel, name) + zf.write(full, dest) + return result + +# +# Simple progress bar +# + +UNITS = ('', 'K', 'M', 'G','T','P') + + +class Progress(object): + unknown = 'UNKNOWN' + + def __init__(self, minval=0, maxval=100): + assert maxval is None or maxval >= minval + self.min = self.cur = minval + self.max = maxval + self.started = None + self.elapsed = 0 + self.done = False + + def update(self, curval): + assert self.min <= curval + assert self.max is None or curval <= self.max + self.cur = curval + now = time.time() + if self.started is None: + self.started = now + else: + self.elapsed = now - self.started + + def increment(self, incr): + assert incr >= 0 + self.update(self.cur + incr) + + def start(self): + self.update(self.min) + return self + + def stop(self): + if self.max is not None: + self.update(self.max) + self.done = True + + @property + def maximum(self): + return self.unknown if self.max is None else self.max + + @property + def percentage(self): + if self.done: + result = '100 %' + elif self.max is None: + result = ' ?? %' + else: + v = 100.0 * (self.cur - self.min) / (self.max - self.min) + result = '%3d %%' % v + return result + + def format_duration(self, duration): + if (duration <= 0) and self.max is None or self.cur == self.min: + result = '??:??:??' + #elif duration < 1: + # result = '--:--:--' + else: + result = time.strftime('%H:%M:%S', time.gmtime(duration)) + return result + + @property + def ETA(self): + if self.done: + prefix = 'Done' + t = self.elapsed + #import pdb; pdb.set_trace() + else: + prefix = 'ETA ' + if self.max is None: + t = -1 + elif self.elapsed == 0 or (self.cur == self.min): + t = 0 + else: + #import pdb; pdb.set_trace() + t = float(self.max - self.min) + t /= self.cur - self.min + t = (t - 1) * self.elapsed + return '%s: %s' % (prefix, self.format_duration(t)) + + @property + def speed(self): + if self.elapsed == 0: + result = 0.0 + else: + result = (self.cur - self.min) / self.elapsed + for unit in UNITS: + if result < 1000: + break + result /= 1000.0 + return '%d %sB/s' % (result, unit) + +# +# Glob functionality +# + +RICH_GLOB = re.compile(r'\{([^}]*)\}') +_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') +_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') + + +def iglob(path_glob): + """Extended globbing function that supports ** and {opt1,opt2,opt3}.""" + if _CHECK_RECURSIVE_GLOB.search(path_glob): + msg = """invalid glob %r: recursive glob "**" must be used alone""" + raise ValueError(msg % path_glob) + if _CHECK_MISMATCH_SET.search(path_glob): + msg = """invalid glob %r: mismatching set marker '{' or '}'""" + raise ValueError(msg % path_glob) + return _iglob(path_glob) + + +def _iglob(path_glob): + rich_path_glob = RICH_GLOB.split(path_glob, 1) + if len(rich_path_glob) > 1: + assert len(rich_path_glob) == 3, rich_path_glob + prefix, set, suffix = rich_path_glob + for item in set.split(','): + for path in _iglob(''.join((prefix, item, suffix))): + yield path + else: + if '**' not in path_glob: + for item in std_iglob(path_glob): + yield item + else: + prefix, radical = path_glob.split('**', 1) + if prefix == '': + prefix = '.' + if radical == '': + radical = '*' + else: + # we support both + radical = radical.lstrip('/') + radical = radical.lstrip('\\') + for path, dir, files in os.walk(prefix): + path = os.path.normpath(path) + for fn in _iglob(os.path.join(path, radical)): + yield fn + +if ssl: + from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, + CertificateError) + + +# +# HTTPSConnection which verifies certificates/matches domains +# + + class HTTPSConnection(httplib.HTTPSConnection): + ca_certs = None # set this to the path to the certs file (.pem) + check_domain = True # only used if ca_certs is not None + + # noinspection PyPropertyAccess + def connect(self): + sock = socket.create_connection((self.host, self.port), self.timeout) + if getattr(self, '_tunnel_host', False): + self.sock = sock + self._tunnel() + + if not hasattr(ssl, 'SSLContext'): + # For 2.x + if self.ca_certs: + cert_reqs = ssl.CERT_REQUIRED + else: + cert_reqs = ssl.CERT_NONE + self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, + cert_reqs=cert_reqs, + ssl_version=ssl.PROTOCOL_SSLv23, + ca_certs=self.ca_certs) + else: # pragma: no cover + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + if hasattr(ssl, 'OP_NO_SSLv2'): + context.options |= ssl.OP_NO_SSLv2 + if self.cert_file: + context.load_cert_chain(self.cert_file, self.key_file) + kwargs = {} + if self.ca_certs: + context.verify_mode = ssl.CERT_REQUIRED + context.load_verify_locations(cafile=self.ca_certs) + if getattr(ssl, 'HAS_SNI', False): + kwargs['server_hostname'] = self.host + self.sock = context.wrap_socket(sock, **kwargs) + if self.ca_certs and self.check_domain: + try: + match_hostname(self.sock.getpeercert(), self.host) + logger.debug('Host verified: %s', self.host) + except CertificateError: # pragma: no cover + self.sock.shutdown(socket.SHUT_RDWR) + self.sock.close() + raise + + class HTTPSHandler(BaseHTTPSHandler): + def __init__(self, ca_certs, check_domain=True): + BaseHTTPSHandler.__init__(self) + self.ca_certs = ca_certs + self.check_domain = check_domain + + def _conn_maker(self, *args, **kwargs): + """ + This is called to create a connection instance. Normally you'd + pass a connection class to do_open, but it doesn't actually check for + a class, and just expects a callable. As long as we behave just as a + constructor would have, we should be OK. If it ever changes so that + we *must* pass a class, we'll create an UnsafeHTTPSConnection class + which just sets check_domain to False in the class definition, and + choose which one to pass to do_open. + """ + result = HTTPSConnection(*args, **kwargs) + if self.ca_certs: + result.ca_certs = self.ca_certs + result.check_domain = self.check_domain + return result + + def https_open(self, req): + try: + return self.do_open(self._conn_maker, req) + except URLError as e: + if 'certificate verify failed' in str(e.reason): + raise CertificateError('Unable to verify server certificate ' + 'for %s' % req.host) + else: + raise + + # + # To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- + # Middle proxy using HTTP listens on port 443, or an index mistakenly serves + # HTML containing a http://xyz link when it should be https://xyz), + # you can use the following handler class, which does not allow HTTP traffic. + # + # It works by inheriting from HTTPHandler - so build_opener won't add a + # handler for HTTP itself. + # + class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): + def http_open(self, req): + raise URLError('Unexpected HTTP request on what should be a secure ' + 'connection: %s' % req) + +# +# XML-RPC with timeouts +# + +_ver_info = sys.version_info[:2] + +if _ver_info == (2, 6): + class HTTP(httplib.HTTP): + def __init__(self, host='', port=None, **kwargs): + if port == 0: # 0 means use port 0, not the default port + port = None + self._setup(self._connection_class(host, port, **kwargs)) + + + if ssl: + class HTTPS(httplib.HTTPS): + def __init__(self, host='', port=None, **kwargs): + if port == 0: # 0 means use port 0, not the default port + port = None + self._setup(self._connection_class(host, port, **kwargs)) + + +class Transport(xmlrpclib.Transport): + def __init__(self, timeout, use_datetime=0): + self.timeout = timeout + xmlrpclib.Transport.__init__(self, use_datetime) + + def make_connection(self, host): + h, eh, x509 = self.get_host_info(host) + if _ver_info == (2, 6): + result = HTTP(h, timeout=self.timeout) + else: + if not self._connection or host != self._connection[0]: + self._extra_headers = eh + self._connection = host, httplib.HTTPConnection(h) + result = self._connection[1] + return result + +if ssl: + class SafeTransport(xmlrpclib.SafeTransport): + def __init__(self, timeout, use_datetime=0): + self.timeout = timeout + xmlrpclib.SafeTransport.__init__(self, use_datetime) + + def make_connection(self, host): + h, eh, kwargs = self.get_host_info(host) + if not kwargs: + kwargs = {} + kwargs['timeout'] = self.timeout + if _ver_info == (2, 6): + result = HTTPS(host, None, **kwargs) + else: + if not self._connection or host != self._connection[0]: + self._extra_headers = eh + self._connection = host, httplib.HTTPSConnection(h, None, + **kwargs) + result = self._connection[1] + return result + + +class ServerProxy(xmlrpclib.ServerProxy): + def __init__(self, uri, **kwargs): + self.timeout = timeout = kwargs.pop('timeout', None) + # The above classes only come into play if a timeout + # is specified + if timeout is not None: + scheme, _ = splittype(uri) + use_datetime = kwargs.get('use_datetime', 0) + if scheme == 'https': + tcls = SafeTransport + else: + tcls = Transport + kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) + self.transport = t + xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) + +# +# CSV functionality. This is provided because on 2.x, the csv module can't +# handle Unicode. However, we need to deal with Unicode in e.g. RECORD files. +# + +def _csv_open(fn, mode, **kwargs): + if sys.version_info[0] < 3: + mode += 'b' + else: + kwargs['newline'] = '' + # Python 3 determines encoding from locale. Force 'utf-8' + # file encoding to match other forced utf-8 encoding + kwargs['encoding'] = 'utf-8' + return open(fn, mode, **kwargs) + + +class CSVBase(object): + defaults = { + 'delimiter': str(','), # The strs are used because we need native + 'quotechar': str('"'), # str in the csv API (2.x won't take + 'lineterminator': str('\n') # Unicode) + } + + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.stream.close() + + +class CSVReader(CSVBase): + def __init__(self, **kwargs): + if 'stream' in kwargs: + stream = kwargs['stream'] + if sys.version_info[0] >= 3: + # needs to be a text stream + stream = codecs.getreader('utf-8')(stream) + self.stream = stream + else: + self.stream = _csv_open(kwargs['path'], 'r') + self.reader = csv.reader(self.stream, **self.defaults) + + def __iter__(self): + return self + + def next(self): + result = next(self.reader) + if sys.version_info[0] < 3: + for i, item in enumerate(result): + if not isinstance(item, text_type): + result[i] = item.decode('utf-8') + return result + + __next__ = next + +class CSVWriter(CSVBase): + def __init__(self, fn, **kwargs): + self.stream = _csv_open(fn, 'w') + self.writer = csv.writer(self.stream, **self.defaults) + + def writerow(self, row): + if sys.version_info[0] < 3: + r = [] + for item in row: + if isinstance(item, text_type): + item = item.encode('utf-8') + r.append(item) + row = r + self.writer.writerow(row) + +# +# Configurator functionality +# + +class Configurator(BaseConfigurator): + + value_converters = dict(BaseConfigurator.value_converters) + value_converters['inc'] = 'inc_convert' + + def __init__(self, config, base=None): + super(Configurator, self).__init__(config) + self.base = base or os.getcwd() + + def configure_custom(self, config): + def convert(o): + if isinstance(o, (list, tuple)): + result = type(o)([convert(i) for i in o]) + elif isinstance(o, dict): + if '()' in o: + result = self.configure_custom(o) + else: + result = {} + for k in o: + result[k] = convert(o[k]) + else: + result = self.convert(o) + return result + + c = config.pop('()') + if not callable(c): + c = self.resolve(c) + props = config.pop('.', None) + # Check for valid identifiers + args = config.pop('[]', ()) + if args: + args = tuple([convert(o) for o in args]) + items = [(k, convert(config[k])) for k in config if valid_ident(k)] + kwargs = dict(items) + result = c(*args, **kwargs) + if props: + for n, v in props.items(): + setattr(result, n, convert(v)) + return result + + def __getitem__(self, key): + result = self.config[key] + if isinstance(result, dict) and '()' in result: + self.config[key] = result = self.configure_custom(result) + return result + + def inc_convert(self, value): + """Default converter for the inc:// protocol.""" + if not os.path.isabs(value): + value = os.path.join(self.base, value) + with codecs.open(value, 'r', encoding='utf-8') as f: + result = json.load(f) + return result + + +class SubprocessMixin(object): + """ + Mixin for running subprocesses and capturing their output + """ + def __init__(self, verbose=False, progress=None): + self.verbose = verbose + self.progress = progress + + def reader(self, stream, context): + """ + Read lines from a subprocess' output stream and either pass to a progress + callable (if specified) or write progress information to sys.stderr. + """ + progress = self.progress + verbose = self.verbose + while True: + s = stream.readline() + if not s: + break + if progress is not None: + progress(s, context) + else: + if not verbose: + sys.stderr.write('.') + else: + sys.stderr.write(s.decode('utf-8')) + sys.stderr.flush() + stream.close() + + def run_command(self, cmd, **kwargs): + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, **kwargs) + t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) + t1.start() + t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) + t2.start() + p.wait() + t1.join() + t2.join() + if self.progress is not None: + self.progress('done.', 'main') + elif self.verbose: + sys.stderr.write('done.\n') + return p + + +def normalize_name(name): + """Normalize a python package name a la PEP 503""" + # https://www.python.org/dev/peps/pep-0503/#normalized-names + return re.sub('[-_.]+', '-', name).lower() diff --git a/venv/Lib/site-packages/distlib/version.py b/venv/Lib/site-packages/distlib/version.py new file mode 100644 index 00000000..3eebe18e --- /dev/null +++ b/venv/Lib/site-packages/distlib/version.py @@ -0,0 +1,736 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2017 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +""" +Implementation of a flexible versioning scheme providing support for PEP-440, +setuptools-compatible and semantic versioning. +""" + +import logging +import re + +from .compat import string_types +from .util import parse_requirement + +__all__ = ['NormalizedVersion', 'NormalizedMatcher', + 'LegacyVersion', 'LegacyMatcher', + 'SemanticVersion', 'SemanticMatcher', + 'UnsupportedVersionError', 'get_scheme'] + +logger = logging.getLogger(__name__) + + +class UnsupportedVersionError(ValueError): + """This is an unsupported version.""" + pass + + +class Version(object): + def __init__(self, s): + self._string = s = s.strip() + self._parts = parts = self.parse(s) + assert isinstance(parts, tuple) + assert len(parts) > 0 + + def parse(self, s): + raise NotImplementedError('please implement in a subclass') + + def _check_compatible(self, other): + if type(self) != type(other): + raise TypeError('cannot compare %r and %r' % (self, other)) + + def __eq__(self, other): + self._check_compatible(other) + return self._parts == other._parts + + def __ne__(self, other): + return not self.__eq__(other) + + def __lt__(self, other): + self._check_compatible(other) + return self._parts < other._parts + + def __gt__(self, other): + return not (self.__lt__(other) or self.__eq__(other)) + + def __le__(self, other): + return self.__lt__(other) or self.__eq__(other) + + def __ge__(self, other): + return self.__gt__(other) or self.__eq__(other) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + def __hash__(self): + return hash(self._parts) + + def __repr__(self): + return "%s('%s')" % (self.__class__.__name__, self._string) + + def __str__(self): + return self._string + + @property + def is_prerelease(self): + raise NotImplementedError('Please implement in subclasses.') + + +class Matcher(object): + version_class = None + + # value is either a callable or the name of a method + _operators = { + '<': lambda v, c, p: v < c, + '>': lambda v, c, p: v > c, + '<=': lambda v, c, p: v == c or v < c, + '>=': lambda v, c, p: v == c or v > c, + '==': lambda v, c, p: v == c, + '===': lambda v, c, p: v == c, + # by default, compatible => >=. + '~=': lambda v, c, p: v == c or v > c, + '!=': lambda v, c, p: v != c, + } + + # this is a method only to support alternative implementations + # via overriding + def parse_requirement(self, s): + return parse_requirement(s) + + def __init__(self, s): + if self.version_class is None: + raise ValueError('Please specify a version class') + self._string = s = s.strip() + r = self.parse_requirement(s) + if not r: + raise ValueError('Not valid: %r' % s) + self.name = r.name + self.key = self.name.lower() # for case-insensitive comparisons + clist = [] + if r.constraints: + # import pdb; pdb.set_trace() + for op, s in r.constraints: + if s.endswith('.*'): + if op not in ('==', '!='): + raise ValueError('\'.*\' not allowed for ' + '%r constraints' % op) + # Could be a partial version (e.g. for '2.*') which + # won't parse as a version, so keep it as a string + vn, prefix = s[:-2], True + # Just to check that vn is a valid version + self.version_class(vn) + else: + # Should parse as a version, so we can create an + # instance for the comparison + vn, prefix = self.version_class(s), False + clist.append((op, vn, prefix)) + self._parts = tuple(clist) + + def match(self, version): + """ + Check if the provided version matches the constraints. + + :param version: The version to match against this instance. + :type version: String or :class:`Version` instance. + """ + if isinstance(version, string_types): + version = self.version_class(version) + for operator, constraint, prefix in self._parts: + f = self._operators.get(operator) + if isinstance(f, string_types): + f = getattr(self, f) + if not f: + msg = ('%r not implemented ' + 'for %s' % (operator, self.__class__.__name__)) + raise NotImplementedError(msg) + if not f(version, constraint, prefix): + return False + return True + + @property + def exact_version(self): + result = None + if len(self._parts) == 1 and self._parts[0][0] in ('==', '==='): + result = self._parts[0][1] + return result + + def _check_compatible(self, other): + if type(self) != type(other) or self.name != other.name: + raise TypeError('cannot compare %s and %s' % (self, other)) + + def __eq__(self, other): + self._check_compatible(other) + return self.key == other.key and self._parts == other._parts + + def __ne__(self, other): + return not self.__eq__(other) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + def __hash__(self): + return hash(self.key) + hash(self._parts) + + def __repr__(self): + return "%s(%r)" % (self.__class__.__name__, self._string) + + def __str__(self): + return self._string + + +PEP440_VERSION_RE = re.compile(r'^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?' + r'(\.(post)(\d+))?(\.(dev)(\d+))?' + r'(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$') + + +def _pep_440_key(s): + s = s.strip() + m = PEP440_VERSION_RE.match(s) + if not m: + raise UnsupportedVersionError('Not a valid version: %s' % s) + groups = m.groups() + nums = tuple(int(v) for v in groups[1].split('.')) + while len(nums) > 1 and nums[-1] == 0: + nums = nums[:-1] + + if not groups[0]: + epoch = 0 + else: + epoch = int(groups[0]) + pre = groups[4:6] + post = groups[7:9] + dev = groups[10:12] + local = groups[13] + if pre == (None, None): + pre = () + else: + pre = pre[0], int(pre[1]) + if post == (None, None): + post = () + else: + post = post[0], int(post[1]) + if dev == (None, None): + dev = () + else: + dev = dev[0], int(dev[1]) + if local is None: + local = () + else: + parts = [] + for part in local.split('.'): + # to ensure that numeric compares as > lexicographic, avoid + # comparing them directly, but encode a tuple which ensures + # correct sorting + if part.isdigit(): + part = (1, int(part)) + else: + part = (0, part) + parts.append(part) + local = tuple(parts) + if not pre: + # either before pre-release, or final release and after + if not post and dev: + # before pre-release + pre = ('a', -1) # to sort before a0 + else: + pre = ('z',) # to sort after all pre-releases + # now look at the state of post and dev. + if not post: + post = ('_',) # sort before 'a' + if not dev: + dev = ('final',) + + #print('%s -> %s' % (s, m.groups())) + return epoch, nums, pre, post, dev, local + + +_normalized_key = _pep_440_key + + +class NormalizedVersion(Version): + """A rational version. + + Good: + 1.2 # equivalent to "1.2.0" + 1.2.0 + 1.2a1 + 1.2.3a2 + 1.2.3b1 + 1.2.3c1 + 1.2.3.4 + TODO: fill this out + + Bad: + 1 # minimum two numbers + 1.2a # release level must have a release serial + 1.2.3b + """ + def parse(self, s): + result = _normalized_key(s) + # _normalized_key loses trailing zeroes in the release + # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 + # However, PEP 440 prefix matching needs it: for example, + # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). + m = PEP440_VERSION_RE.match(s) # must succeed + groups = m.groups() + self._release_clause = tuple(int(v) for v in groups[1].split('.')) + return result + + PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) + + @property + def is_prerelease(self): + return any(t[0] in self.PREREL_TAGS for t in self._parts if t) + + +def _match_prefix(x, y): + x = str(x) + y = str(y) + if x == y: + return True + if not x.startswith(y): + return False + n = len(y) + return x[n] == '.' + + +class NormalizedMatcher(Matcher): + version_class = NormalizedVersion + + # value is either a callable or the name of a method + _operators = { + '~=': '_match_compatible', + '<': '_match_lt', + '>': '_match_gt', + '<=': '_match_le', + '>=': '_match_ge', + '==': '_match_eq', + '===': '_match_arbitrary', + '!=': '_match_ne', + } + + def _adjust_local(self, version, constraint, prefix): + if prefix: + strip_local = '+' not in constraint and version._parts[-1] + else: + # both constraint and version are + # NormalizedVersion instances. + # If constraint does not have a local component, + # ensure the version doesn't, either. + strip_local = not constraint._parts[-1] and version._parts[-1] + if strip_local: + s = version._string.split('+', 1)[0] + version = self.version_class(s) + return version, constraint + + def _match_lt(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if version >= constraint: + return False + release_clause = constraint._release_clause + pfx = '.'.join([str(i) for i in release_clause]) + return not _match_prefix(version, pfx) + + def _match_gt(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if version <= constraint: + return False + release_clause = constraint._release_clause + pfx = '.'.join([str(i) for i in release_clause]) + return not _match_prefix(version, pfx) + + def _match_le(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + return version <= constraint + + def _match_ge(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + return version >= constraint + + def _match_eq(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if not prefix: + result = (version == constraint) + else: + result = _match_prefix(version, constraint) + return result + + def _match_arbitrary(self, version, constraint, prefix): + return str(version) == str(constraint) + + def _match_ne(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if not prefix: + result = (version != constraint) + else: + result = not _match_prefix(version, constraint) + return result + + def _match_compatible(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if version == constraint: + return True + if version < constraint: + return False +# if not prefix: +# return True + release_clause = constraint._release_clause + if len(release_clause) > 1: + release_clause = release_clause[:-1] + pfx = '.'.join([str(i) for i in release_clause]) + return _match_prefix(version, pfx) + +_REPLACEMENTS = ( + (re.compile('[.+-]$'), ''), # remove trailing puncts + (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start + (re.compile('^[.-]'), ''), # remove leading puncts + (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses + (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) + (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) + (re.compile('[.]{2,}'), '.'), # multiple runs of '.' + (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha + (re.compile(r'\b(pre-alpha|prealpha)\b'), + 'pre.alpha'), # standardise + (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses +) + +_SUFFIX_REPLACEMENTS = ( + (re.compile('^[:~._+-]+'), ''), # remove leading puncts + (re.compile('[,*")([\\]]'), ''), # remove unwanted chars + (re.compile('[~:+_ -]'), '.'), # replace illegal chars + (re.compile('[.]{2,}'), '.'), # multiple runs of '.' + (re.compile(r'\.$'), ''), # trailing '.' +) + +_NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') + + +def _suggest_semantic_version(s): + """ + Try to suggest a semantic form for a version for which + _suggest_normalized_version couldn't come up with anything. + """ + result = s.strip().lower() + for pat, repl in _REPLACEMENTS: + result = pat.sub(repl, result) + if not result: + result = '0.0.0' + + # Now look for numeric prefix, and separate it out from + # the rest. + #import pdb; pdb.set_trace() + m = _NUMERIC_PREFIX.match(result) + if not m: + prefix = '0.0.0' + suffix = result + else: + prefix = m.groups()[0].split('.') + prefix = [int(i) for i in prefix] + while len(prefix) < 3: + prefix.append(0) + if len(prefix) == 3: + suffix = result[m.end():] + else: + suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] + prefix = prefix[:3] + prefix = '.'.join([str(i) for i in prefix]) + suffix = suffix.strip() + if suffix: + #import pdb; pdb.set_trace() + # massage the suffix. + for pat, repl in _SUFFIX_REPLACEMENTS: + suffix = pat.sub(repl, suffix) + + if not suffix: + result = prefix + else: + sep = '-' if 'dev' in suffix else '+' + result = prefix + sep + suffix + if not is_semver(result): + result = None + return result + + +def _suggest_normalized_version(s): + """Suggest a normalized version close to the given version string. + + If you have a version string that isn't rational (i.e. NormalizedVersion + doesn't like it) then you might be able to get an equivalent (or close) + rational version from this function. + + This does a number of simple normalizations to the given string, based + on observation of versions currently in use on PyPI. Given a dump of + those version during PyCon 2009, 4287 of them: + - 2312 (53.93%) match NormalizedVersion without change + with the automatic suggestion + - 3474 (81.04%) match when using this suggestion method + + @param s {str} An irrational version string. + @returns A rational version string, or None, if couldn't determine one. + """ + try: + _normalized_key(s) + return s # already rational + except UnsupportedVersionError: + pass + + rs = s.lower() + + # part of this could use maketrans + for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), + ('beta', 'b'), ('rc', 'c'), ('-final', ''), + ('-pre', 'c'), + ('-release', ''), ('.release', ''), ('-stable', ''), + ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), + ('final', '')): + rs = rs.replace(orig, repl) + + # if something ends with dev or pre, we add a 0 + rs = re.sub(r"pre$", r"pre0", rs) + rs = re.sub(r"dev$", r"dev0", rs) + + # if we have something like "b-2" or "a.2" at the end of the + # version, that is probably beta, alpha, etc + # let's remove the dash or dot + rs = re.sub(r"([abc]|rc)[\-\.](\d+)$", r"\1\2", rs) + + # 1.0-dev-r371 -> 1.0.dev371 + # 0.1-dev-r79 -> 0.1.dev79 + rs = re.sub(r"[\-\.](dev)[\-\.]?r?(\d+)$", r".\1\2", rs) + + # Clean: 2.0.a.3, 2.0.b1, 0.9.0~c1 + rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) + + # Clean: v0.3, v1.0 + if rs.startswith('v'): + rs = rs[1:] + + # Clean leading '0's on numbers. + #TODO: unintended side-effect on, e.g., "2003.05.09" + # PyPI stats: 77 (~2%) better + rs = re.sub(r"\b0+(\d+)(?!\d)", r"\1", rs) + + # Clean a/b/c with no version. E.g. "1.0a" -> "1.0a0". Setuptools infers + # zero. + # PyPI stats: 245 (7.56%) better + rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs) + + # the 'dev-rNNN' tag is a dev tag + rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs) + + # clean the - when used as a pre delimiter + rs = re.sub(r"-(a|b|c)(\d+)$", r"\1\2", rs) + + # a terminal "dev" or "devel" can be changed into ".dev0" + rs = re.sub(r"[\.\-](dev|devel)$", r".dev0", rs) + + # a terminal "dev" can be changed into ".dev0" + rs = re.sub(r"(?![\.\-])dev$", r".dev0", rs) + + # a terminal "final" or "stable" can be removed + rs = re.sub(r"(final|stable)$", "", rs) + + # The 'r' and the '-' tags are post release tags + # 0.4a1.r10 -> 0.4a1.post10 + # 0.9.33-17222 -> 0.9.33.post17222 + # 0.9.33-r17222 -> 0.9.33.post17222 + rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs) + + # Clean 'r' instead of 'dev' usage: + # 0.9.33+r17222 -> 0.9.33.dev17222 + # 1.0dev123 -> 1.0.dev123 + # 1.0.git123 -> 1.0.dev123 + # 1.0.bzr123 -> 1.0.dev123 + # 0.1a0dev.123 -> 0.1a0.dev123 + # PyPI stats: ~150 (~4%) better + rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs) + + # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage: + # 0.2.pre1 -> 0.2c1 + # 0.2-c1 -> 0.2c1 + # 1.0preview123 -> 1.0c123 + # PyPI stats: ~21 (0.62%) better + rs = re.sub(r"\.?(pre|preview|-c)(\d+)$", r"c\g<2>", rs) + + # Tcl/Tk uses "px" for their post release markers + rs = re.sub(r"p(\d+)$", r".post\1", rs) + + try: + _normalized_key(rs) + except UnsupportedVersionError: + rs = None + return rs + +# +# Legacy version processing (distribute-compatible) +# + +_VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) +_VERSION_REPLACE = { + 'pre': 'c', + 'preview': 'c', + '-': 'final-', + 'rc': 'c', + 'dev': '@', + '': None, + '.': None, +} + + +def _legacy_key(s): + def get_parts(s): + result = [] + for p in _VERSION_PART.split(s.lower()): + p = _VERSION_REPLACE.get(p, p) + if p: + if '0' <= p[:1] <= '9': + p = p.zfill(8) + else: + p = '*' + p + result.append(p) + result.append('*final') + return result + + result = [] + for p in get_parts(s): + if p.startswith('*'): + if p < '*final': + while result and result[-1] == '*final-': + result.pop() + while result and result[-1] == '00000000': + result.pop() + result.append(p) + return tuple(result) + + +class LegacyVersion(Version): + def parse(self, s): + return _legacy_key(s) + + @property + def is_prerelease(self): + result = False + for x in self._parts: + if (isinstance(x, string_types) and x.startswith('*') and + x < '*final'): + result = True + break + return result + + +class LegacyMatcher(Matcher): + version_class = LegacyVersion + + _operators = dict(Matcher._operators) + _operators['~='] = '_match_compatible' + + numeric_re = re.compile(r'^(\d+(\.\d+)*)') + + def _match_compatible(self, version, constraint, prefix): + if version < constraint: + return False + m = self.numeric_re.match(str(constraint)) + if not m: + logger.warning('Cannot compute compatible match for version %s ' + ' and constraint %s', version, constraint) + return True + s = m.groups()[0] + if '.' in s: + s = s.rsplit('.', 1)[0] + return _match_prefix(version, s) + +# +# Semantic versioning +# + +_SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' + r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' + r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) + + +def is_semver(s): + return _SEMVER_RE.match(s) + + +def _semantic_key(s): + def make_tuple(s, absent): + if s is None: + result = (absent,) + else: + parts = s[1:].split('.') + # We can't compare ints and strings on Python 3, so fudge it + # by zero-filling numeric values so simulate a numeric comparison + result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) + return result + + m = is_semver(s) + if not m: + raise UnsupportedVersionError(s) + groups = m.groups() + major, minor, patch = [int(i) for i in groups[:3]] + # choose the '|' and '*' so that versions sort correctly + pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') + return (major, minor, patch), pre, build + + +class SemanticVersion(Version): + def parse(self, s): + return _semantic_key(s) + + @property + def is_prerelease(self): + return self._parts[1][0] != '|' + + +class SemanticMatcher(Matcher): + version_class = SemanticVersion + + +class VersionScheme(object): + def __init__(self, key, matcher, suggester=None): + self.key = key + self.matcher = matcher + self.suggester = suggester + + def is_valid_version(self, s): + try: + self.matcher.version_class(s) + result = True + except UnsupportedVersionError: + result = False + return result + + def is_valid_matcher(self, s): + try: + self.matcher(s) + result = True + except UnsupportedVersionError: + result = False + return result + + def is_valid_constraint_list(self, s): + """ + Used for processing some metadata fields + """ + return self.is_valid_matcher('dummy_name (%s)' % s) + + def suggest(self, s): + if self.suggester is None: + result = None + else: + result = self.suggester(s) + return result + +_SCHEMES = { + 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, + _suggest_normalized_version), + 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), + 'semantic': VersionScheme(_semantic_key, SemanticMatcher, + _suggest_semantic_version), +} + +_SCHEMES['default'] = _SCHEMES['normalized'] + + +def get_scheme(name): + if name not in _SCHEMES: + raise ValueError('unknown scheme name: %r' % name) + return _SCHEMES[name] diff --git a/venv/Lib/site-packages/distlib/w32.exe b/venv/Lib/site-packages/distlib/w32.exe new file mode 100644 index 0000000000000000000000000000000000000000..e6439e9e45897365d5ac6a85a46864c158a225fd GIT binary patch literal 90112 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�gPVRVBXt_FM7e4<}XM;HRH{62JZSn^<*L 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 OB+yBqlfeHwf&T)jA)JE% literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/distlib/w64.exe b/venv/Lib/site-packages/distlib/w64.exe new file mode 100644 index 0000000000000000000000000000000000000000..46139dbf9400b7bc0b64e6756ce17b4eb5fd7436 GIT binary patch literal 99840 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[^-]+) +-(?P\d+[^-]*) +(-(?P\d+[^-]*))? +-(?P\w+\d+(\.\w+\d+)*) +-(?P\w+) +-(?P\w+(\.\w+)*) +\.whl$ +''', re.IGNORECASE | re.VERBOSE) + +NAME_VERSION_RE = re.compile(r''' +(?P[^-]+) +-(?P\d+[^-]*) +(-(?P\d+[^-]*))?$ +''', re.IGNORECASE | re.VERBOSE) + +SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') +SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') +SHEBANG_PYTHON = b'#!python' +SHEBANG_PYTHONW = b'#!pythonw' + +if os.sep == '/': + to_posix = lambda o: o +else: + to_posix = lambda o: o.replace(os.sep, '/') + + +class Mounter(object): + def __init__(self): + self.impure_wheels = {} + self.libs = {} + + def add(self, pathname, extensions): + self.impure_wheels[pathname] = extensions + self.libs.update(extensions) + + def remove(self, pathname): + extensions = self.impure_wheels.pop(pathname) + for k, v in extensions: + if k in self.libs: + del self.libs[k] + + def find_module(self, fullname, path=None): + if fullname in self.libs: + result = self + else: + result = None + return result + + def load_module(self, fullname): + if fullname in sys.modules: + result = sys.modules[fullname] + else: + if fullname not in self.libs: + raise ImportError('unable to find extension for %s' % fullname) + result = imp.load_dynamic(fullname, self.libs[fullname]) + result.__loader__ = self + parts = fullname.rsplit('.', 1) + if len(parts) > 1: + result.__package__ = parts[0] + return result + +_hook = Mounter() + + +class Wheel(object): + """ + Class to build and install from Wheel files (PEP 427). + """ + + wheel_version = (1, 1) + hash_kind = 'sha256' + + def __init__(self, filename=None, sign=False, verify=False): + """ + Initialise an instance using a (valid) filename. + """ + self.sign = sign + self.should_verify = verify + self.buildver = '' + self.pyver = [PYVER] + self.abi = ['none'] + self.arch = ['any'] + self.dirname = os.getcwd() + if filename is None: + self.name = 'dummy' + self.version = '0.1' + self._filename = self.filename + else: + m = NAME_VERSION_RE.match(filename) + if m: + info = m.groupdict('') + self.name = info['nm'] + # Reinstate the local version separator + self.version = info['vn'].replace('_', '-') + self.buildver = info['bn'] + self._filename = self.filename + else: + dirname, filename = os.path.split(filename) + m = FILENAME_RE.match(filename) + if not m: + raise DistlibException('Invalid name or ' + 'filename: %r' % filename) + if dirname: + self.dirname = os.path.abspath(dirname) + self._filename = filename + info = m.groupdict('') + self.name = info['nm'] + self.version = info['vn'] + self.buildver = info['bn'] + self.pyver = info['py'].split('.') + self.abi = info['bi'].split('.') + self.arch = info['ar'].split('.') + + @property + def filename(self): + """ + Build and return a filename from the various components. + """ + if self.buildver: + buildver = '-' + self.buildver + else: + buildver = '' + pyver = '.'.join(self.pyver) + abi = '.'.join(self.abi) + arch = '.'.join(self.arch) + # replace - with _ as a local version separator + version = self.version.replace('-', '_') + return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, + pyver, abi, arch) + + @property + def exists(self): + path = os.path.join(self.dirname, self.filename) + return os.path.isfile(path) + + @property + def tags(self): + for pyver in self.pyver: + for abi in self.abi: + for arch in self.arch: + yield pyver, abi, arch + + @cached_property + def metadata(self): + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + wrapper = codecs.getreader('utf-8') + with ZipFile(pathname, 'r') as zf: + wheel_metadata = self.get_wheel_metadata(zf) + wv = wheel_metadata['Wheel-Version'].split('.', 1) + file_version = tuple([int(i) for i in wv]) + # if file_version < (1, 1): + # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME, + # LEGACY_METADATA_FILENAME] + # else: + # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME] + fns = [WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME] + result = None + for fn in fns: + try: + metadata_filename = posixpath.join(info_dir, fn) + with zf.open(metadata_filename) as bf: + wf = wrapper(bf) + result = Metadata(fileobj=wf) + if result: + break + except KeyError: + pass + if not result: + raise ValueError('Invalid wheel, because metadata is ' + 'missing: looked in %s' % ', '.join(fns)) + return result + + def get_wheel_metadata(self, zf): + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + metadata_filename = posixpath.join(info_dir, 'WHEEL') + with zf.open(metadata_filename) as bf: + wf = codecs.getreader('utf-8')(bf) + message = message_from_file(wf) + return dict(message) + + @cached_property + def info(self): + pathname = os.path.join(self.dirname, self.filename) + with ZipFile(pathname, 'r') as zf: + result = self.get_wheel_metadata(zf) + return result + + def process_shebang(self, data): + m = SHEBANG_RE.match(data) + if m: + end = m.end() + shebang, data_after_shebang = data[:end], data[end:] + # Preserve any arguments after the interpreter + if b'pythonw' in shebang.lower(): + shebang_python = SHEBANG_PYTHONW + else: + shebang_python = SHEBANG_PYTHON + m = SHEBANG_DETAIL_RE.match(shebang) + if m: + args = b' ' + m.groups()[-1] + else: + args = b'' + shebang = shebang_python + args + data = shebang + data_after_shebang + else: + cr = data.find(b'\r') + lf = data.find(b'\n') + if cr < 0 or cr > lf: + term = b'\n' + else: + if data[cr:cr + 2] == b'\r\n': + term = b'\r\n' + else: + term = b'\r' + data = SHEBANG_PYTHON + term + data + return data + + def get_hash(self, data, hash_kind=None): + if hash_kind is None: + hash_kind = self.hash_kind + try: + hasher = getattr(hashlib, hash_kind) + except AttributeError: + raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) + result = hasher(data).digest() + result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') + return hash_kind, result + + def write_record(self, records, record_path, base): + records = list(records) # make a copy, as mutated + p = to_posix(os.path.relpath(record_path, base)) + records.append((p, '', '')) + with CSVWriter(record_path) as writer: + for row in records: + writer.writerow(row) + + def write_records(self, info, libdir, archive_paths): + records = [] + distinfo, info_dir = info + hasher = getattr(hashlib, self.hash_kind) + for ap, p in archive_paths: + with open(p, 'rb') as f: + data = f.read() + digest = '%s=%s' % self.get_hash(data) + size = os.path.getsize(p) + records.append((ap, digest, size)) + + p = os.path.join(distinfo, 'RECORD') + self.write_record(records, p, libdir) + ap = to_posix(os.path.join(info_dir, 'RECORD')) + archive_paths.append((ap, p)) + + def build_zip(self, pathname, archive_paths): + with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: + for ap, p in archive_paths: + logger.debug('Wrote %s to %s in wheel', p, ap) + zf.write(p, ap) + + def build(self, paths, tags=None, wheel_version=None): + """ + Build a wheel from files in specified paths, and use any specified tags + when determining the name of the wheel. + """ + if tags is None: + tags = {} + + libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] + if libkey == 'platlib': + is_pure = 'false' + default_pyver = [IMPVER] + default_abi = [ABI] + default_arch = [ARCH] + else: + is_pure = 'true' + default_pyver = [PYVER] + default_abi = ['none'] + default_arch = ['any'] + + self.pyver = tags.get('pyver', default_pyver) + self.abi = tags.get('abi', default_abi) + self.arch = tags.get('arch', default_arch) + + libdir = paths[libkey] + + name_ver = '%s-%s' % (self.name, self.version) + data_dir = '%s.data' % name_ver + info_dir = '%s.dist-info' % name_ver + + archive_paths = [] + + # First, stuff which is not in site-packages + for key in ('data', 'headers', 'scripts'): + if key not in paths: + continue + path = paths[key] + if os.path.isdir(path): + for root, dirs, files in os.walk(path): + for fn in files: + p = fsdecode(os.path.join(root, fn)) + rp = os.path.relpath(p, path) + ap = to_posix(os.path.join(data_dir, key, rp)) + archive_paths.append((ap, p)) + if key == 'scripts' and not p.endswith('.exe'): + with open(p, 'rb') as f: + data = f.read() + data = self.process_shebang(data) + with open(p, 'wb') as f: + f.write(data) + + # Now, stuff which is in site-packages, other than the + # distinfo stuff. + path = libdir + distinfo = None + for root, dirs, files in os.walk(path): + if root == path: + # At the top level only, save distinfo for later + # and skip it for now + for i, dn in enumerate(dirs): + dn = fsdecode(dn) + if dn.endswith('.dist-info'): + distinfo = os.path.join(root, dn) + del dirs[i] + break + assert distinfo, '.dist-info directory expected, not found' + + for fn in files: + # comment out next suite to leave .pyc files in + if fsdecode(fn).endswith(('.pyc', '.pyo')): + continue + p = os.path.join(root, fn) + rp = to_posix(os.path.relpath(p, path)) + archive_paths.append((rp, p)) + + # Now distinfo. Assumed to be flat, i.e. os.listdir is enough. + files = os.listdir(distinfo) + for fn in files: + if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): + p = fsdecode(os.path.join(distinfo, fn)) + ap = to_posix(os.path.join(info_dir, fn)) + archive_paths.append((ap, p)) + + wheel_metadata = [ + 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), + 'Generator: distlib %s' % __version__, + 'Root-Is-Purelib: %s' % is_pure, + ] + for pyver, abi, arch in self.tags: + wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) + p = os.path.join(distinfo, 'WHEEL') + with open(p, 'w') as f: + f.write('\n'.join(wheel_metadata)) + ap = to_posix(os.path.join(info_dir, 'WHEEL')) + archive_paths.append((ap, p)) + + # sort the entries by archive path. Not needed by any spec, but it + # keeps the archive listing and RECORD tidier than they would otherwise + # be. Use the number of path segments to keep directory entries together, + # and keep the dist-info stuff at the end. + def sorter(t): + ap = t[0] + n = ap.count('/') + if '.dist-info' in ap: + n += 10000 + return (n, ap) + archive_paths = sorted(archive_paths, key=sorter) + + # Now, at last, RECORD. + # Paths in here are archive paths - nothing else makes sense. + self.write_records((distinfo, info_dir), libdir, archive_paths) + # Now, ready to build the zip file + pathname = os.path.join(self.dirname, self.filename) + self.build_zip(pathname, archive_paths) + return pathname + + def skip_entry(self, arcname): + """ + Determine whether an archive entry should be skipped when verifying + or installing. + """ + # The signature file won't be in RECORD, + # and we don't currently don't do anything with it + # We also skip directories, as they won't be in RECORD + # either. See: + # + # https://github.com/pypa/wheel/issues/294 + # https://github.com/pypa/wheel/issues/287 + # https://github.com/pypa/wheel/pull/289 + # + return arcname.endswith(('/', '/RECORD.jws')) + + def install(self, paths, maker, **kwargs): + """ + Install a wheel to the specified paths. If kwarg ``warner`` is + specified, it should be a callable, which will be called with two + tuples indicating the wheel version of this software and the wheel + version in the file, if there is a discrepancy in the versions. + This can be used to issue any warnings to raise any exceptions. + If kwarg ``lib_only`` is True, only the purelib/platlib files are + installed, and the headers, scripts, data and dist-info metadata are + not written. If kwarg ``bytecode_hashed_invalidation`` is True, written + bytecode will try to use file-hash based invalidation (PEP-552) on + supported interpreter versions (CPython 2.7+). + + The return value is a :class:`InstalledDistribution` instance unless + ``options.lib_only`` is True, in which case the return value is ``None``. + """ + + dry_run = maker.dry_run + warner = kwargs.get('warner') + lib_only = kwargs.get('lib_only', False) + bc_hashed_invalidation = kwargs.get('bytecode_hashed_invalidation', False) + + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + data_dir = '%s.data' % name_ver + info_dir = '%s.dist-info' % name_ver + + metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) + wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') + record_name = posixpath.join(info_dir, 'RECORD') + + wrapper = codecs.getreader('utf-8') + + with ZipFile(pathname, 'r') as zf: + with zf.open(wheel_metadata_name) as bwf: + wf = wrapper(bwf) + message = message_from_file(wf) + wv = message['Wheel-Version'].split('.', 1) + file_version = tuple([int(i) for i in wv]) + if (file_version != self.wheel_version) and warner: + warner(self.wheel_version, file_version) + + if message['Root-Is-Purelib'] == 'true': + libdir = paths['purelib'] + else: + libdir = paths['platlib'] + + records = {} + with zf.open(record_name) as bf: + with CSVReader(stream=bf) as reader: + for row in reader: + p = row[0] + records[p] = row + + data_pfx = posixpath.join(data_dir, '') + info_pfx = posixpath.join(info_dir, '') + script_pfx = posixpath.join(data_dir, 'scripts', '') + + # make a new instance rather than a copy of maker's, + # as we mutate it + fileop = FileOperator(dry_run=dry_run) + fileop.record = True # so we can rollback if needed + + bc = not sys.dont_write_bytecode # Double negatives. Lovely! + + outfiles = [] # for RECORD writing + + # for script copying/shebang processing + workdir = tempfile.mkdtemp() + # set target dir later + # we default add_launchers to False, as the + # Python Launcher should be used instead + maker.source_dir = workdir + maker.target_dir = None + try: + for zinfo in zf.infolist(): + arcname = zinfo.filename + if isinstance(arcname, text_type): + u_arcname = arcname + else: + u_arcname = arcname.decode('utf-8') + if self.skip_entry(u_arcname): + continue + row = records[u_arcname] + if row[2] and str(zinfo.file_size) != row[2]: + raise DistlibException('size mismatch for ' + '%s' % u_arcname) + if row[1]: + kind, value = row[1].split('=', 1) + with zf.open(arcname) as bf: + data = bf.read() + _, digest = self.get_hash(data, kind) + if digest != value: + raise DistlibException('digest mismatch for ' + '%s' % arcname) + + if lib_only and u_arcname.startswith((info_pfx, data_pfx)): + logger.debug('lib_only: skipping %s', u_arcname) + continue + is_script = (u_arcname.startswith(script_pfx) + and not u_arcname.endswith('.exe')) + + if u_arcname.startswith(data_pfx): + _, where, rp = u_arcname.split('/', 2) + outfile = os.path.join(paths[where], convert_path(rp)) + else: + # meant for site-packages. + if u_arcname in (wheel_metadata_name, record_name): + continue + outfile = os.path.join(libdir, convert_path(u_arcname)) + if not is_script: + with zf.open(arcname) as bf: + fileop.copy_stream(bf, outfile) + outfiles.append(outfile) + # Double check the digest of the written file + if not dry_run and row[1]: + with open(outfile, 'rb') as bf: + data = bf.read() + _, newdigest = self.get_hash(data, kind) + if newdigest != digest: + raise DistlibException('digest mismatch ' + 'on write for ' + '%s' % outfile) + if bc and outfile.endswith('.py'): + try: + pyc = fileop.byte_compile(outfile, + hashed_invalidation=bc_hashed_invalidation) + outfiles.append(pyc) + except Exception: + # Don't give up if byte-compilation fails, + # but log it and perhaps warn the user + logger.warning('Byte-compilation failed', + exc_info=True) + else: + fn = os.path.basename(convert_path(arcname)) + workname = os.path.join(workdir, fn) + with zf.open(arcname) as bf: + fileop.copy_stream(bf, workname) + + dn, fn = os.path.split(outfile) + maker.target_dir = dn + filenames = maker.make(fn) + fileop.set_executable_mode(filenames) + outfiles.extend(filenames) + + if lib_only: + logger.debug('lib_only: returning None') + dist = None + else: + # Generate scripts + + # Try to get pydist.json so we can see if there are + # any commands to generate. If this fails (e.g. because + # of a legacy wheel), log a warning but don't give up. + commands = None + file_version = self.info['Wheel-Version'] + if file_version == '1.0': + # Use legacy info + ep = posixpath.join(info_dir, 'entry_points.txt') + try: + with zf.open(ep) as bwf: + epdata = read_exports(bwf) + commands = {} + for key in ('console', 'gui'): + k = '%s_scripts' % key + if k in epdata: + commands['wrap_%s' % key] = d = {} + for v in epdata[k].values(): + s = '%s:%s' % (v.prefix, v.suffix) + if v.flags: + s += ' [%s]' % ','.join(v.flags) + d[v.name] = s + except Exception: + logger.warning('Unable to read legacy script ' + 'metadata, so cannot generate ' + 'scripts') + else: + try: + with zf.open(metadata_name) as bwf: + wf = wrapper(bwf) + commands = json.load(wf).get('extensions') + if commands: + commands = commands.get('python.commands') + except Exception: + logger.warning('Unable to read JSON metadata, so ' + 'cannot generate scripts') + if commands: + console_scripts = commands.get('wrap_console', {}) + gui_scripts = commands.get('wrap_gui', {}) + if console_scripts or gui_scripts: + script_dir = paths.get('scripts', '') + if not os.path.isdir(script_dir): + raise ValueError('Valid script path not ' + 'specified') + maker.target_dir = script_dir + for k, v in console_scripts.items(): + script = '%s = %s' % (k, v) + filenames = maker.make(script) + fileop.set_executable_mode(filenames) + + if gui_scripts: + options = {'gui': True } + for k, v in gui_scripts.items(): + script = '%s = %s' % (k, v) + filenames = maker.make(script, options) + fileop.set_executable_mode(filenames) + + p = os.path.join(libdir, info_dir) + dist = InstalledDistribution(p) + + # Write SHARED + paths = dict(paths) # don't change passed in dict + del paths['purelib'] + del paths['platlib'] + paths['lib'] = libdir + p = dist.write_shared_locations(paths, dry_run) + if p: + outfiles.append(p) + + # Write RECORD + dist.write_installed_files(outfiles, paths['prefix'], + dry_run) + return dist + except Exception: # pragma: no cover + logger.exception('installation failed.') + fileop.rollback() + raise + finally: + shutil.rmtree(workdir) + + def _get_dylib_cache(self): + global cache + if cache is None: + # Use native string to avoid issues on 2.x: see Python #20140. + base = os.path.join(get_cache_base(), str('dylib-cache'), + '%s.%s' % sys.version_info[:2]) + cache = Cache(base) + return cache + + def _get_extensions(self): + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + arcname = posixpath.join(info_dir, 'EXTENSIONS') + wrapper = codecs.getreader('utf-8') + result = [] + with ZipFile(pathname, 'r') as zf: + try: + with zf.open(arcname) as bf: + wf = wrapper(bf) + extensions = json.load(wf) + cache = self._get_dylib_cache() + prefix = cache.prefix_to_dir(pathname) + cache_base = os.path.join(cache.base, prefix) + if not os.path.isdir(cache_base): + os.makedirs(cache_base) + for name, relpath in extensions.items(): + dest = os.path.join(cache_base, convert_path(relpath)) + if not os.path.exists(dest): + extract = True + else: + file_time = os.stat(dest).st_mtime + file_time = datetime.datetime.fromtimestamp(file_time) + info = zf.getinfo(relpath) + wheel_time = datetime.datetime(*info.date_time) + extract = wheel_time > file_time + if extract: + zf.extract(relpath, cache_base) + result.append((name, dest)) + except KeyError: + pass + return result + + def is_compatible(self): + """ + Determine if a wheel is compatible with the running system. + """ + return is_compatible(self) + + def is_mountable(self): + """ + Determine if a wheel is asserted as mountable by its metadata. + """ + return True # for now - metadata details TBD + + def mount(self, append=False): + pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) + if not self.is_compatible(): + msg = 'Wheel %s not compatible with this Python.' % pathname + raise DistlibException(msg) + if not self.is_mountable(): + msg = 'Wheel %s is marked as not mountable.' % pathname + raise DistlibException(msg) + if pathname in sys.path: + logger.debug('%s already in path', pathname) + else: + if append: + sys.path.append(pathname) + else: + sys.path.insert(0, pathname) + extensions = self._get_extensions() + if extensions: + if _hook not in sys.meta_path: + sys.meta_path.append(_hook) + _hook.add(pathname, extensions) + + def unmount(self): + pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) + if pathname not in sys.path: + logger.debug('%s not in path', pathname) + else: + sys.path.remove(pathname) + if pathname in _hook.impure_wheels: + _hook.remove(pathname) + if not _hook.impure_wheels: + if _hook in sys.meta_path: + sys.meta_path.remove(_hook) + + def verify(self): + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + data_dir = '%s.data' % name_ver + info_dir = '%s.dist-info' % name_ver + + metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) + wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') + record_name = posixpath.join(info_dir, 'RECORD') + + wrapper = codecs.getreader('utf-8') + + with ZipFile(pathname, 'r') as zf: + with zf.open(wheel_metadata_name) as bwf: + wf = wrapper(bwf) + message = message_from_file(wf) + wv = message['Wheel-Version'].split('.', 1) + file_version = tuple([int(i) for i in wv]) + # TODO version verification + + records = {} + with zf.open(record_name) as bf: + with CSVReader(stream=bf) as reader: + for row in reader: + p = row[0] + records[p] = row + + for zinfo in zf.infolist(): + arcname = zinfo.filename + if isinstance(arcname, text_type): + u_arcname = arcname + else: + u_arcname = arcname.decode('utf-8') + # See issue #115: some wheels have .. in their entries, but + # in the filename ... e.g. __main__..py ! So the check is + # updated to look for .. in the directory portions + p = u_arcname.split('/') + if '..' in p: + raise DistlibException('invalid entry in ' + 'wheel: %r' % u_arcname) + + if self.skip_entry(u_arcname): + continue + row = records[u_arcname] + if row[2] and str(zinfo.file_size) != row[2]: + raise DistlibException('size mismatch for ' + '%s' % u_arcname) + if row[1]: + kind, value = row[1].split('=', 1) + with zf.open(arcname) as bf: + data = bf.read() + _, digest = self.get_hash(data, kind) + if digest != value: + raise DistlibException('digest mismatch for ' + '%s' % arcname) + + def update(self, modifier, dest_dir=None, **kwargs): + """ + Update the contents of a wheel in a generic way. The modifier should + be a callable which expects a dictionary argument: its keys are + archive-entry paths, and its values are absolute filesystem paths + where the contents the corresponding archive entries can be found. The + modifier is free to change the contents of the files pointed to, add + new entries and remove entries, before returning. This method will + extract the entire contents of the wheel to a temporary location, call + the modifier, and then use the passed (and possibly updated) + dictionary to write a new wheel. If ``dest_dir`` is specified, the new + wheel is written there -- otherwise, the original wheel is overwritten. + + The modifier should return True if it updated the wheel, else False. + This method returns the same value the modifier returns. + """ + + def get_version(path_map, info_dir): + version = path = None + key = '%s/%s' % (info_dir, LEGACY_METADATA_FILENAME) + if key not in path_map: + key = '%s/PKG-INFO' % info_dir + if key in path_map: + path = path_map[key] + version = Metadata(path=path).version + return version, path + + def update_version(version, path): + updated = None + try: + v = NormalizedVersion(version) + i = version.find('-') + if i < 0: + updated = '%s+1' % version + else: + parts = [int(s) for s in version[i + 1:].split('.')] + parts[-1] += 1 + updated = '%s+%s' % (version[:i], + '.'.join(str(i) for i in parts)) + except UnsupportedVersionError: + logger.debug('Cannot update non-compliant (PEP-440) ' + 'version %r', version) + if updated: + md = Metadata(path=path) + md.version = updated + legacy = path.endswith(LEGACY_METADATA_FILENAME) + md.write(path=path, legacy=legacy) + logger.debug('Version updated from %r to %r', version, + updated) + + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + record_name = posixpath.join(info_dir, 'RECORD') + with tempdir() as workdir: + with ZipFile(pathname, 'r') as zf: + path_map = {} + for zinfo in zf.infolist(): + arcname = zinfo.filename + if isinstance(arcname, text_type): + u_arcname = arcname + else: + u_arcname = arcname.decode('utf-8') + if u_arcname == record_name: + continue + if '..' in u_arcname: + raise DistlibException('invalid entry in ' + 'wheel: %r' % u_arcname) + zf.extract(zinfo, workdir) + path = os.path.join(workdir, convert_path(u_arcname)) + path_map[u_arcname] = path + + # Remember the version. + original_version, _ = get_version(path_map, info_dir) + # Files extracted. Call the modifier. + modified = modifier(path_map, **kwargs) + if modified: + # Something changed - need to build a new wheel. + current_version, path = get_version(path_map, info_dir) + if current_version and (current_version == original_version): + # Add or update local version to signify changes. + update_version(current_version, path) + # Decide where the new wheel goes. + if dest_dir is None: + fd, newpath = tempfile.mkstemp(suffix='.whl', + prefix='wheel-update-', + dir=workdir) + os.close(fd) + else: + if not os.path.isdir(dest_dir): + raise DistlibException('Not a directory: %r' % dest_dir) + newpath = os.path.join(dest_dir, self.filename) + archive_paths = list(path_map.items()) + distinfo = os.path.join(workdir, info_dir) + info = distinfo, info_dir + self.write_records(info, workdir, archive_paths) + self.build_zip(newpath, archive_paths) + if dest_dir is None: + shutil.copyfile(newpath, pathname) + return modified + +def compatible_tags(): + """ + Return (pyver, abi, arch) tuples compatible with this Python. + """ + versions = [VER_SUFFIX] + major = VER_SUFFIX[0] + for minor in range(sys.version_info[1] - 1, - 1, -1): + versions.append(''.join([major, str(minor)])) + + abis = [] + for suffix, _, _ in imp.get_suffixes(): + if suffix.startswith('.abi'): + abis.append(suffix.split('.', 2)[1]) + abis.sort() + if ABI != 'none': + abis.insert(0, ABI) + abis.append('none') + result = [] + + arches = [ARCH] + if sys.platform == 'darwin': + m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) + if m: + name, major, minor, arch = m.groups() + minor = int(minor) + matches = [arch] + if arch in ('i386', 'ppc'): + matches.append('fat') + if arch in ('i386', 'ppc', 'x86_64'): + matches.append('fat3') + if arch in ('ppc64', 'x86_64'): + matches.append('fat64') + if arch in ('i386', 'x86_64'): + matches.append('intel') + if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): + matches.append('universal') + while minor >= 0: + for match in matches: + s = '%s_%s_%s_%s' % (name, major, minor, match) + if s != ARCH: # already there + arches.append(s) + minor -= 1 + + # Most specific - our Python version, ABI and arch + for abi in abis: + for arch in arches: + result.append((''.join((IMP_PREFIX, versions[0])), abi, arch)) + + # where no ABI / arch dependency, but IMP_PREFIX dependency + for i, version in enumerate(versions): + result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) + if i == 0: + result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) + + # no IMP_PREFIX, ABI or arch dependency + for i, version in enumerate(versions): + result.append((''.join(('py', version)), 'none', 'any')) + if i == 0: + result.append((''.join(('py', version[0])), 'none', 'any')) + return set(result) + + +COMPATIBLE_TAGS = compatible_tags() + +del compatible_tags + + +def is_compatible(wheel, tags=None): + if not isinstance(wheel, Wheel): + wheel = Wheel(wheel) # assume it's a filename + result = False + if tags is None: + tags = COMPATIBLE_TAGS + for ver, abi, arch in tags: + if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch: + result = True + break + return result diff --git a/venv/Lib/site-packages/filelock-3.0.12.dist-info/INSTALLER b/venv/Lib/site-packages/filelock-3.0.12.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/filelock-3.0.12.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/filelock-3.0.12.dist-info/LICENSE b/venv/Lib/site-packages/filelock-3.0.12.dist-info/LICENSE new file mode 100644 index 00000000..cf1ab25d --- /dev/null +++ b/venv/Lib/site-packages/filelock-3.0.12.dist-info/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/venv/Lib/site-packages/filelock-3.0.12.dist-info/METADATA b/venv/Lib/site-packages/filelock-3.0.12.dist-info/METADATA new file mode 100644 index 00000000..79d8d479 --- /dev/null +++ b/venv/Lib/site-packages/filelock-3.0.12.dist-info/METADATA @@ -0,0 +1,156 @@ +Metadata-Version: 2.1 +Name: filelock +Version: 3.0.12 +Summary: A platform independent file lock. +Home-page: https://github.com/benediktschmitt/py-filelock +Author: Benedikt Schmitt +Author-email: benedikt@benediktschmitt.de +License: Public Domain +Download-URL: https://github.com/benediktschmitt/py-filelock/archive/master.zip +Platform: UNKNOWN +Classifier: License :: Public Domain +Classifier: Development Status :: 5 - Production/Stable +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Intended Audience :: Developers +Classifier: Topic :: System +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries +Description-Content-Type: text/markdown + +# py-filelock + +![travis-ci](https://travis-ci.org/benediktschmitt/py-filelock.svg?branch=master) + +This package contains a single module, which implements a platform independent +file lock in Python, which provides a simple way of inter-process communication: + +```Python +from filelock import Timeout, FileLock + +lock = FileLock("high_ground.txt.lock") +with lock: + open("high_ground.txt", "a").write("You were the chosen one.") +``` + +**Don't use** a *FileLock* to lock the file you want to write to, instead create +a separate *.lock* file as shown above. + +![animated example](https://raw.githubusercontent.com/benediktschmitt/py-filelock/master/example/example.gif) + + +## Similar libraries + +Perhaps you are looking for something like + +* https://pypi.python.org/pypi/pid/2.1.1 +* https://docs.python.org/3.6/library/msvcrt.html#msvcrt.locking +* or https://docs.python.org/3/library/fcntl.html#fcntl.flock + + +## Installation + +*py-filelock* is available via PyPi: + +``` +$ pip3 install filelock +``` + + +## Documentation + +The documentation for the API is available on +[readthedocs.org](https://filelock.readthedocs.io/). + + +### Examples + +A *FileLock* is used to indicate another process of your application that a +resource or working +directory is currently used. To do so, create a *FileLock* first: + +```Python +from filelock import Timeout, FileLock + +file_path = "high_ground.txt" +lock_path = "high_ground.txt.lock" + +lock = FileLock(lock_path, timeout=1) +``` + +The lock object supports multiple ways for acquiring the lock, including the +ones used to acquire standard Python thread locks: + +```Python +with lock: + open(file_path, "a").write("Hello there!") + +lock.acquire() +try: + open(file_path, "a").write("General Kenobi!") +finally: + lock.release() +``` + +The *acquire()* method accepts also a *timeout* parameter. If the lock cannot be +acquired within *timeout* seconds, a *Timeout* exception is raised: + +```Python +try: + with lock.acquire(timeout=10): + open(file_path, "a").write("I have a bad feeling about this.") +except Timeout: + print("Another instance of this application currently holds the lock.") +``` + +The lock objects are recursive locks, which means that once acquired, they will +not block on successive lock requests: + +```Python +def cite1(): + with lock: + open(file_path, "a").write("I hate it when he does that.") + +def cite2(): + with lock: + open(file_path, "a").write("You don't want to sell me death sticks.") + +# The lock is acquired here. +with lock: + cite1() + cite2() + +# And released here. +``` + + +## FileLock vs SoftFileLock + +The *FileLock* is platform dependent while the *SoftFileLock* is not. Use the +*FileLock* if all instances of your application are running on the same host and +a *SoftFileLock* otherwise. + +The *SoftFileLock* only watches the existence of the lock file. This makes it +ultra portable, but also more prone to dead locks if the application crashes. +You can simply delete the lock file in such cases. + + +## Contributions + +Contributions are always welcome, please make sure they pass all tests before +creating a pull request. Never hesitate to open a new issue, although it may +take some time for me to respond. + + +## License + +This package is [public domain](./LICENSE.rst). + + diff --git a/venv/Lib/site-packages/filelock-3.0.12.dist-info/RECORD b/venv/Lib/site-packages/filelock-3.0.12.dist-info/RECORD new file mode 100644 index 00000000..82f7cd70 --- /dev/null +++ b/venv/Lib/site-packages/filelock-3.0.12.dist-info/RECORD @@ -0,0 +1,8 @@ +__pycache__/filelock.cpython-36.pyc,, +filelock-3.0.12.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +filelock-3.0.12.dist-info/LICENSE,sha256=iNm062BXnBkew5HKBMFhMFctfu3EqG2qWL8oxuFMm80,1210 +filelock-3.0.12.dist-info/METADATA,sha256=gjzbv9nxtD-Rj2ysjUuG7SLZCHUQl5hMy68Jij8soPw,4343 +filelock-3.0.12.dist-info/RECORD,, +filelock-3.0.12.dist-info/WHEEL,sha256=S8S5VL-stOTSZDYxHyf0KP7eds0J72qrK0Evu3TfyAY,92 +filelock-3.0.12.dist-info/top_level.txt,sha256=NDrf9i5BNogz4hEdsr6Hi7Ws3TlSSKY4Q2Y9_-i2GwU,9 +filelock.py,sha256=5DQTtOaQq7-vgLkZzvOhqhVMh_umfydWgSA8Vuzmf8M,13229 diff --git a/venv/Lib/site-packages/filelock-3.0.12.dist-info/WHEEL b/venv/Lib/site-packages/filelock-3.0.12.dist-info/WHEEL new file mode 100644 index 00000000..c57a5970 --- /dev/null +++ b/venv/Lib/site-packages/filelock-3.0.12.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.33.4) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/filelock-3.0.12.dist-info/top_level.txt b/venv/Lib/site-packages/filelock-3.0.12.dist-info/top_level.txt new file mode 100644 index 00000000..83c2e357 --- /dev/null +++ b/venv/Lib/site-packages/filelock-3.0.12.dist-info/top_level.txt @@ -0,0 +1 @@ +filelock diff --git a/venv/Lib/site-packages/filelock.py b/venv/Lib/site-packages/filelock.py new file mode 100644 index 00000000..4c981672 --- /dev/null +++ b/venv/Lib/site-packages/filelock.py @@ -0,0 +1,451 @@ +# This is free and unencumbered software released into the public domain. +# +# Anyone is free to copy, modify, publish, use, compile, sell, or +# distribute this software, either in source code form or as a compiled +# binary, for any purpose, commercial or non-commercial, and by any +# means. +# +# In jurisdictions that recognize copyright laws, the author or authors +# of this software dedicate any and all copyright interest in the +# software to the public domain. We make this dedication for the benefit +# of the public at large and to the detriment of our heirs and +# successors. We intend this dedication to be an overt act of +# relinquishment in perpetuity of all present and future rights to this +# software under copyright law. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# +# For more information, please refer to + +""" +A platform independent file lock that supports the with-statement. +""" + + +# Modules +# ------------------------------------------------ +import logging +import os +import threading +import time +try: + import warnings +except ImportError: + warnings = None + +try: + import msvcrt +except ImportError: + msvcrt = None + +try: + import fcntl +except ImportError: + fcntl = None + + +# Backward compatibility +# ------------------------------------------------ +try: + TimeoutError +except NameError: + TimeoutError = OSError + + +# Data +# ------------------------------------------------ +__all__ = [ + "Timeout", + "BaseFileLock", + "WindowsFileLock", + "UnixFileLock", + "SoftFileLock", + "FileLock" +] + +__version__ = "3.0.12" + + +_logger = None +def logger(): + """Returns the logger instance used in this module.""" + global _logger + _logger = _logger or logging.getLogger(__name__) + return _logger + + +# Exceptions +# ------------------------------------------------ +class Timeout(TimeoutError): + """ + Raised when the lock could not be acquired in *timeout* + seconds. + """ + + def __init__(self, lock_file): + """ + """ + #: The path of the file lock. + self.lock_file = lock_file + return None + + def __str__(self): + temp = "The file lock '{}' could not be acquired."\ + .format(self.lock_file) + return temp + + +# Classes +# ------------------------------------------------ + +# This is a helper class which is returned by :meth:`BaseFileLock.acquire` +# and wraps the lock to make sure __enter__ is not called twice when entering +# the with statement. +# If we would simply return *self*, the lock would be acquired again +# in the *__enter__* method of the BaseFileLock, but not released again +# automatically. +# +# :seealso: issue #37 (memory leak) +class _Acquire_ReturnProxy(object): + + def __init__(self, lock): + self.lock = lock + return None + + def __enter__(self): + return self.lock + + def __exit__(self, exc_type, exc_value, traceback): + self.lock.release() + return None + + +class BaseFileLock(object): + """ + Implements the base class of a file lock. + """ + + def __init__(self, lock_file, timeout = -1): + """ + """ + # The path to the lock file. + self._lock_file = lock_file + + # The file descriptor for the *_lock_file* as it is returned by the + # os.open() function. + # This file lock is only NOT None, if the object currently holds the + # lock. + self._lock_file_fd = None + + # The default timeout value. + self.timeout = timeout + + # We use this lock primarily for the lock counter. + self._thread_lock = threading.Lock() + + # The lock counter is used for implementing the nested locking + # mechanism. Whenever the lock is acquired, the counter is increased and + # the lock is only released, when this value is 0 again. + self._lock_counter = 0 + return None + + @property + def lock_file(self): + """ + The path to the lock file. + """ + return self._lock_file + + @property + def timeout(self): + """ + You can set a default timeout for the filelock. It will be used as + fallback value in the acquire method, if no timeout value (*None*) is + given. + + If you want to disable the timeout, set it to a negative value. + + A timeout of 0 means, that there is exactly one attempt to acquire the + file lock. + + .. versionadded:: 2.0.0 + """ + return self._timeout + + @timeout.setter + def timeout(self, value): + """ + """ + self._timeout = float(value) + return None + + # Platform dependent locking + # -------------------------------------------- + + def _acquire(self): + """ + Platform dependent. If the file lock could be + acquired, self._lock_file_fd holds the file descriptor + of the lock file. + """ + raise NotImplementedError() + + def _release(self): + """ + Releases the lock and sets self._lock_file_fd to None. + """ + raise NotImplementedError() + + # Platform independent methods + # -------------------------------------------- + + @property + def is_locked(self): + """ + True, if the object holds the file lock. + + .. versionchanged:: 2.0.0 + + This was previously a method and is now a property. + """ + return self._lock_file_fd is not None + + def acquire(self, timeout=None, poll_intervall=0.05): + """ + Acquires the file lock or fails with a :exc:`Timeout` error. + + .. code-block:: python + + # You can use this method in the context manager (recommended) + with lock.acquire(): + pass + + # Or use an equivalent try-finally construct: + lock.acquire() + try: + pass + finally: + lock.release() + + :arg float timeout: + The maximum time waited for the file lock. + If ``timeout < 0``, there is no timeout and this method will + block until the lock could be acquired. + If ``timeout`` is None, the default :attr:`~timeout` is used. + + :arg float poll_intervall: + We check once in *poll_intervall* seconds if we can acquire the + file lock. + + :raises Timeout: + if the lock could not be acquired in *timeout* seconds. + + .. versionchanged:: 2.0.0 + + This method returns now a *proxy* object instead of *self*, + so that it can be used in a with statement without side effects. + """ + # Use the default timeout, if no timeout is provided. + if timeout is None: + timeout = self.timeout + + # Increment the number right at the beginning. + # We can still undo it, if something fails. + with self._thread_lock: + self._lock_counter += 1 + + lock_id = id(self) + lock_filename = self._lock_file + start_time = time.time() + try: + while True: + with self._thread_lock: + if not self.is_locked: + logger().debug('Attempting to acquire lock %s on %s', lock_id, lock_filename) + self._acquire() + + if self.is_locked: + logger().info('Lock %s acquired on %s', lock_id, lock_filename) + break + elif timeout >= 0 and time.time() - start_time > timeout: + logger().debug('Timeout on acquiring lock %s on %s', lock_id, lock_filename) + raise Timeout(self._lock_file) + else: + logger().debug( + 'Lock %s not acquired on %s, waiting %s seconds ...', + lock_id, lock_filename, poll_intervall + ) + time.sleep(poll_intervall) + except: + # Something did go wrong, so decrement the counter. + with self._thread_lock: + self._lock_counter = max(0, self._lock_counter - 1) + + raise + return _Acquire_ReturnProxy(lock = self) + + def release(self, force = False): + """ + Releases the file lock. + + Please note, that the lock is only completly released, if the lock + counter is 0. + + Also note, that the lock file itself is not automatically deleted. + + :arg bool force: + If true, the lock counter is ignored and the lock is released in + every case. + """ + with self._thread_lock: + + if self.is_locked: + self._lock_counter -= 1 + + if self._lock_counter == 0 or force: + lock_id = id(self) + lock_filename = self._lock_file + + logger().debug('Attempting to release lock %s on %s', lock_id, lock_filename) + self._release() + self._lock_counter = 0 + logger().info('Lock %s released on %s', lock_id, lock_filename) + + return None + + def __enter__(self): + self.acquire() + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.release() + return None + + def __del__(self): + self.release(force = True) + return None + + +# Windows locking mechanism +# ~~~~~~~~~~~~~~~~~~~~~~~~~ + +class WindowsFileLock(BaseFileLock): + """ + Uses the :func:`msvcrt.locking` function to hard lock the lock file on + windows systems. + """ + + def _acquire(self): + open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC + + try: + fd = os.open(self._lock_file, open_mode) + except OSError: + pass + else: + try: + msvcrt.locking(fd, msvcrt.LK_NBLCK, 1) + except (IOError, OSError): + os.close(fd) + else: + self._lock_file_fd = fd + return None + + def _release(self): + fd = self._lock_file_fd + self._lock_file_fd = None + msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) + os.close(fd) + + try: + os.remove(self._lock_file) + # Probably another instance of the application + # that acquired the file lock. + except OSError: + pass + return None + +# Unix locking mechanism +# ~~~~~~~~~~~~~~~~~~~~~~ + +class UnixFileLock(BaseFileLock): + """ + Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems. + """ + + def _acquire(self): + open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC + fd = os.open(self._lock_file, open_mode) + + try: + fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB) + except (IOError, OSError): + os.close(fd) + else: + self._lock_file_fd = fd + return None + + def _release(self): + # Do not remove the lockfile: + # + # https://github.com/benediktschmitt/py-filelock/issues/31 + # https://stackoverflow.com/questions/17708885/flock-removing-locked-file-without-race-condition + fd = self._lock_file_fd + self._lock_file_fd = None + fcntl.flock(fd, fcntl.LOCK_UN) + os.close(fd) + return None + +# Soft lock +# ~~~~~~~~~ + +class SoftFileLock(BaseFileLock): + """ + Simply watches the existence of the lock file. + """ + + def _acquire(self): + open_mode = os.O_WRONLY | os.O_CREAT | os.O_EXCL | os.O_TRUNC + try: + fd = os.open(self._lock_file, open_mode) + except (IOError, OSError): + pass + else: + self._lock_file_fd = fd + return None + + def _release(self): + os.close(self._lock_file_fd) + self._lock_file_fd = None + + try: + os.remove(self._lock_file) + # The file is already deleted and that's what we want. + except OSError: + pass + return None + + +# Platform filelock +# ~~~~~~~~~~~~~~~~~ + +#: Alias for the lock, which should be used for the current platform. On +#: Windows, this is an alias for :class:`WindowsFileLock`, on Unix for +#: :class:`UnixFileLock` and otherwise for :class:`SoftFileLock`. +FileLock = None + +if msvcrt: + FileLock = WindowsFileLock +elif fcntl: + FileLock = UnixFileLock +else: + FileLock = SoftFileLock + + if warnings is not None: + warnings.warn("only soft file lock is available") diff --git a/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/INSTALLER b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/LICENSE b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/LICENSE new file mode 100644 index 00000000..be7e092b --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/LICENSE @@ -0,0 +1,13 @@ +Copyright 2017-2019 Jason R. Coombs, Barry Warsaw + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/METADATA b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/METADATA new file mode 100644 index 00000000..4341d832 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/METADATA @@ -0,0 +1,66 @@ +Metadata-Version: 2.1 +Name: importlib-metadata +Version: 1.7.0 +Summary: Read metadata from Python packages +Home-page: http://importlib-metadata.readthedocs.io/ +Author: Barry Warsaw +Author-email: barry@python.org +License: Apache Software License +Platform: UNKNOWN +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Topic :: Software Development :: Libraries +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 2 +Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7 +Requires-Dist: zipp (>=0.5) +Requires-Dist: pathlib2 ; python_version < "3" +Requires-Dist: contextlib2 ; python_version < "3" +Requires-Dist: configparser (>=3.5) ; python_version < "3" +Provides-Extra: docs +Requires-Dist: sphinx ; extra == 'docs' +Requires-Dist: rst.linker ; extra == 'docs' +Provides-Extra: testing +Requires-Dist: packaging ; extra == 'testing' +Requires-Dist: pep517 ; extra == 'testing' +Requires-Dist: importlib-resources (>=1.3) ; (python_version < "3.9") and extra == 'testing' + +========================= + ``importlib_metadata`` +========================= + +``importlib_metadata`` is a library to access the metadata for a Python +package. It is intended to be ported to Python 3.8. + + +Usage +===== + +See the `online documentation `_ +for usage details. + +`Finder authors +`_ can +also add support for custom package installers. See the above documentation +for details. + + +Caveats +======= + +This project primarily supports third-party packages installed by PyPA +tools (or other conforming packages). It does not support: + +- Packages in the stdlib. +- Packages installed without metadata. + +Project details +=============== + + * Project home: https://gitlab.com/python-devs/importlib_metadata + * Report bugs at: https://gitlab.com/python-devs/importlib_metadata/issues + * Code hosting: https://gitlab.com/python-devs/importlib_metadata.git + * Documentation: http://importlib_metadata.readthedocs.io/ + + diff --git a/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/RECORD b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/RECORD new file mode 100644 index 00000000..912145d4 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/RECORD @@ -0,0 +1,33 @@ +importlib_metadata-1.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +importlib_metadata-1.7.0.dist-info/LICENSE,sha256=wNe6dAchmJ1VvVB8D9oTc-gHHadCuaSBAev36sYEM6U,571 +importlib_metadata-1.7.0.dist-info/METADATA,sha256=AvM2AcUhNbF_2Yyo8ttyVBCh_qGbRHaRE3MVgrHYDVw,2144 +importlib_metadata-1.7.0.dist-info/RECORD,, +importlib_metadata-1.7.0.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +importlib_metadata-1.7.0.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 +importlib_metadata/__init__.py,sha256=phnrEcGP-8cF-_ZZ5peJL4cUVAANOK0CpSWC-0-IVAs,18961 +importlib_metadata/__pycache__/__init__.cpython-36.pyc,, +importlib_metadata/__pycache__/_compat.cpython-36.pyc,, +importlib_metadata/_compat.py,sha256=DnM55BbJKFCcZmJOkArmyO76-0g7pA6HEfzSYWXN88k,4417 +importlib_metadata/docs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_metadata/docs/__pycache__/__init__.cpython-36.pyc,, +importlib_metadata/docs/__pycache__/conf.cpython-36.pyc,, +importlib_metadata/docs/changelog.rst,sha256=6EZfl84T0SQHzAXNlTiTegG0cBTa9wiMt0od0ht2n_8,8739 +importlib_metadata/docs/conf.py,sha256=m-b6Mju5gFkpSHh-lyJ4iwqf_8t4LjYYFRumtutQSZc,5578 +importlib_metadata/docs/index.rst,sha256=rbXrDkLAKLIDccqME5u9CCMEfMKprqzQOkIOuwOnfz4,1907 +importlib_metadata/docs/using.rst,sha256=k_L4Hwwsf10ap9xWejyC-_gLz_WtvRfDOzuJA3o7Zw0,9504 +importlib_metadata/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_metadata/tests/__pycache__/__init__.cpython-36.pyc,, +importlib_metadata/tests/__pycache__/fixtures.cpython-36.pyc,, +importlib_metadata/tests/__pycache__/test_api.cpython-36.pyc,, +importlib_metadata/tests/__pycache__/test_integration.cpython-36.pyc,, +importlib_metadata/tests/__pycache__/test_main.cpython-36.pyc,, +importlib_metadata/tests/__pycache__/test_zip.cpython-36.pyc,, +importlib_metadata/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_metadata/tests/data/__pycache__/__init__.cpython-36.pyc,, +importlib_metadata/tests/data/example-21.12-py3-none-any.whl,sha256=I-kYufETid-tDYyR8f1OFJ3t5u_Io23k0cbQxJTUN4I,1455 +importlib_metadata/tests/data/example-21.12-py3.6.egg,sha256=-EeugFAijkdUO9xyQHTZkQwZoFXK0_QxICBj6R5AAJo,1497 +importlib_metadata/tests/fixtures.py,sha256=Ua_PqyqBhFqkkNGFsXtgMah6vXKQjeqKo1KhhzYdn-w,5752 +importlib_metadata/tests/test_api.py,sha256=YMAGTsRENrtvpw2CSLmRndJMBeT4q_M0GSe-QsnnMZ4,5544 +importlib_metadata/tests/test_integration.py,sha256=ykJpwjSkVwvWHG4gUw4RUrZzU_7JKX8vZyPf_kFIrLE,1579 +importlib_metadata/tests/test_main.py,sha256=dcsDqyxTRtard2j5ysDDvVwfK6vvXdRtZCaQ0QljSR8,9026 +importlib_metadata/tests/test_zip.py,sha256=lOCNPyfJSm9nz0-2RQndM7OQV-_gRjJzyRnvMqXqRSI,2675 diff --git a/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/WHEEL b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/WHEEL new file mode 100644 index 00000000..ef99c6cf --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/top_level.txt b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/top_level.txt new file mode 100644 index 00000000..bbb07547 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata-1.7.0.dist-info/top_level.txt @@ -0,0 +1 @@ +importlib_metadata diff --git a/venv/Lib/site-packages/importlib_metadata/__init__.py b/venv/Lib/site-packages/importlib_metadata/__init__.py new file mode 100644 index 00000000..b01e7e36 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/__init__.py @@ -0,0 +1,623 @@ +from __future__ import unicode_literals, absolute_import + +import io +import os +import re +import abc +import csv +import sys +import zipp +import operator +import functools +import itertools +import posixpath +import collections + +from ._compat import ( + install, + NullFinder, + ConfigParser, + suppress, + map, + FileNotFoundError, + IsADirectoryError, + NotADirectoryError, + PermissionError, + pathlib, + ModuleNotFoundError, + MetaPathFinder, + email_message_from_string, + PyPy_repr, + unique_ordered, + str, + ) +from importlib import import_module +from itertools import starmap + + +__metaclass__ = type + + +__all__ = [ + 'Distribution', + 'DistributionFinder', + 'PackageNotFoundError', + 'distribution', + 'distributions', + 'entry_points', + 'files', + 'metadata', + 'requires', + 'version', + ] + + +class PackageNotFoundError(ModuleNotFoundError): + """The package was not found.""" + + def __str__(self): + tmpl = "No package metadata was found for {self.name}" + return tmpl.format(**locals()) + + @property + def name(self): + name, = self.args + return name + + +class EntryPoint( + PyPy_repr, + collections.namedtuple('EntryPointBase', 'name value group')): + """An entry point as defined by Python packaging conventions. + + See `the packaging docs on entry points + `_ + for more information. + """ + + pattern = re.compile( + r'(?P[\w.]+)\s*' + r'(:\s*(?P[\w.]+))?\s*' + r'(?P\[.*\])?\s*$' + ) + """ + A regular expression describing the syntax for an entry point, + which might look like: + + - module + - package.module + - package.module:attribute + - package.module:object.attribute + - package.module:attr [extra1, extra2] + + Other combinations are possible as well. + + The expression is lenient about whitespace around the ':', + following the attr, and following any extras. + """ + + def load(self): + """Load the entry point from its definition. If only a module + is indicated by the value, return that module. Otherwise, + return the named object. + """ + match = self.pattern.match(self.value) + module = import_module(match.group('module')) + attrs = filter(None, (match.group('attr') or '').split('.')) + return functools.reduce(getattr, attrs, module) + + @property + def module(self): + match = self.pattern.match(self.value) + return match.group('module') + + @property + def attr(self): + match = self.pattern.match(self.value) + return match.group('attr') + + @property + def extras(self): + match = self.pattern.match(self.value) + return list(re.finditer(r'\w+', match.group('extras') or '')) + + @classmethod + def _from_config(cls, config): + return [ + cls(name, value, group) + for group in config.sections() + for name, value in config.items(group) + ] + + @classmethod + def _from_text(cls, text): + config = ConfigParser(delimiters='=') + # case sensitive: https://stackoverflow.com/q/1611799/812183 + config.optionxform = str + try: + config.read_string(text) + except AttributeError: # pragma: nocover + # Python 2 has no read_string + config.readfp(io.StringIO(text)) + return EntryPoint._from_config(config) + + def __iter__(self): + """ + Supply iter so one may construct dicts of EntryPoints easily. + """ + return iter((self.name, self)) + + def __reduce__(self): + return ( + self.__class__, + (self.name, self.value, self.group), + ) + + +class PackagePath(pathlib.PurePosixPath): + """A reference to a path in a package""" + + def read_text(self, encoding='utf-8'): + with self.locate().open(encoding=encoding) as stream: + return stream.read() + + def read_binary(self): + with self.locate().open('rb') as stream: + return stream.read() + + def locate(self): + """Return a path-like object for this path""" + return self.dist.locate_file(self) + + +class FileHash: + def __init__(self, spec): + self.mode, _, self.value = spec.partition('=') + + def __repr__(self): + return ''.format(self.mode, self.value) + + +class Distribution: + """A Python distribution package.""" + + @abc.abstractmethod + def read_text(self, filename): + """Attempt to load metadata file given by the name. + + :param filename: The name of the file in the distribution info. + :return: The text if found, otherwise None. + """ + + @abc.abstractmethod + def locate_file(self, path): + """ + Given a path to a file in this distribution, return a path + to it. + """ + + @classmethod + def from_name(cls, name): + """Return the Distribution for the given package name. + + :param name: The name of the distribution package to search for. + :return: The Distribution instance (or subclass thereof) for the named + package, if found. + :raises PackageNotFoundError: When the named package's distribution + metadata cannot be found. + """ + for resolver in cls._discover_resolvers(): + dists = resolver(DistributionFinder.Context(name=name)) + dist = next(iter(dists), None) + if dist is not None: + return dist + else: + raise PackageNotFoundError(name) + + @classmethod + def discover(cls, **kwargs): + """Return an iterable of Distribution objects for all packages. + + Pass a ``context`` or pass keyword arguments for constructing + a context. + + :context: A ``DistributionFinder.Context`` object. + :return: Iterable of Distribution objects for all packages. + """ + context = kwargs.pop('context', None) + if context and kwargs: + raise ValueError("cannot accept context and kwargs") + context = context or DistributionFinder.Context(**kwargs) + return itertools.chain.from_iterable( + resolver(context) + for resolver in cls._discover_resolvers() + ) + + @staticmethod + def at(path): + """Return a Distribution for the indicated metadata path + + :param path: a string or path-like object + :return: a concrete Distribution instance for the path + """ + return PathDistribution(pathlib.Path(path)) + + @staticmethod + def _discover_resolvers(): + """Search the meta_path for resolvers.""" + declared = ( + getattr(finder, 'find_distributions', None) + for finder in sys.meta_path + ) + return filter(None, declared) + + @classmethod + def _local(cls, root='.'): + from pep517 import build, meta + system = build.compat_system(root) + builder = functools.partial( + meta.build, + source_dir=root, + system=system, + ) + return PathDistribution(zipp.Path(meta.build_as_zip(builder))) + + @property + def metadata(self): + """Return the parsed metadata for this Distribution. + + The returned object will have keys that name the various bits of + metadata. See PEP 566 for details. + """ + text = ( + self.read_text('METADATA') + or self.read_text('PKG-INFO') + # This last clause is here to support old egg-info files. Its + # effect is to just end up using the PathDistribution's self._path + # (which points to the egg-info file) attribute unchanged. + or self.read_text('') + ) + return email_message_from_string(text) + + @property + def version(self): + """Return the 'Version' metadata for the distribution package.""" + return self.metadata['Version'] + + @property + def entry_points(self): + return EntryPoint._from_text(self.read_text('entry_points.txt')) + + @property + def files(self): + """Files in this distribution. + + :return: List of PackagePath for this distribution or None + + Result is `None` if the metadata file that enumerates files + (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is + missing. + Result may be empty if the metadata exists but is empty. + """ + file_lines = self._read_files_distinfo() or self._read_files_egginfo() + + def make_file(name, hash=None, size_str=None): + result = PackagePath(name) + result.hash = FileHash(hash) if hash else None + result.size = int(size_str) if size_str else None + result.dist = self + return result + + return file_lines and list(starmap(make_file, csv.reader(file_lines))) + + def _read_files_distinfo(self): + """ + Read the lines of RECORD + """ + text = self.read_text('RECORD') + return text and text.splitlines() + + def _read_files_egginfo(self): + """ + SOURCES.txt might contain literal commas, so wrap each line + in quotes. + """ + text = self.read_text('SOURCES.txt') + return text and map('"{}"'.format, text.splitlines()) + + @property + def requires(self): + """Generated requirements specified for this Distribution""" + reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs() + return reqs and list(reqs) + + def _read_dist_info_reqs(self): + return self.metadata.get_all('Requires-Dist') + + def _read_egg_info_reqs(self): + source = self.read_text('requires.txt') + return source and self._deps_from_requires_text(source) + + @classmethod + def _deps_from_requires_text(cls, source): + section_pairs = cls._read_sections(source.splitlines()) + sections = { + section: list(map(operator.itemgetter('line'), results)) + for section, results in + itertools.groupby(section_pairs, operator.itemgetter('section')) + } + return cls._convert_egg_info_reqs_to_simple_reqs(sections) + + @staticmethod + def _read_sections(lines): + section = None + for line in filter(None, lines): + section_match = re.match(r'\[(.*)\]$', line) + if section_match: + section = section_match.group(1) + continue + yield locals() + + @staticmethod + def _convert_egg_info_reqs_to_simple_reqs(sections): + """ + Historically, setuptools would solicit and store 'extra' + requirements, including those with environment markers, + in separate sections. More modern tools expect each + dependency to be defined separately, with any relevant + extras and environment markers attached directly to that + requirement. This method converts the former to the + latter. See _test_deps_from_requires_text for an example. + """ + def make_condition(name): + return name and 'extra == "{name}"'.format(name=name) + + def parse_condition(section): + section = section or '' + extra, sep, markers = section.partition(':') + if extra and markers: + markers = '({markers})'.format(markers=markers) + conditions = list(filter(None, [markers, make_condition(extra)])) + return '; ' + ' and '.join(conditions) if conditions else '' + + for section, deps in sections.items(): + for dep in deps: + yield dep + parse_condition(section) + + +class DistributionFinder(MetaPathFinder): + """ + A MetaPathFinder capable of discovering installed distributions. + """ + + class Context: + """ + Keyword arguments presented by the caller to + ``distributions()`` or ``Distribution.discover()`` + to narrow the scope of a search for distributions + in all DistributionFinders. + + Each DistributionFinder may expect any parameters + and should attempt to honor the canonical + parameters defined below when appropriate. + """ + + name = None + """ + Specific name for which a distribution finder should match. + A name of ``None`` matches all distributions. + """ + + def __init__(self, **kwargs): + vars(self).update(kwargs) + + @property + def path(self): + """ + The path that a distribution finder should search. + + Typically refers to Python package paths and defaults + to ``sys.path``. + """ + return vars(self).get('path', sys.path) + + @abc.abstractmethod + def find_distributions(self, context=Context()): + """ + Find distributions. + + Return an iterable of all Distribution instances capable of + loading the metadata for packages matching the ``context``, + a DistributionFinder.Context instance. + """ + + +class FastPath: + """ + Micro-optimized class for searching a path for + children. + """ + + def __init__(self, root): + self.root = str(root) + self.base = os.path.basename(self.root).lower() + + def joinpath(self, child): + return pathlib.Path(self.root, child) + + def children(self): + with suppress(Exception): + return os.listdir(self.root or '') + with suppress(Exception): + return self.zip_children() + return [] + + def zip_children(self): + zip_path = zipp.Path(self.root) + names = zip_path.root.namelist() + self.joinpath = zip_path.joinpath + + return unique_ordered( + child.split(posixpath.sep, 1)[0] + for child in names + ) + + def is_egg(self, search): + base = self.base + return ( + base == search.versionless_egg_name + or base.startswith(search.prefix) + and base.endswith('.egg')) + + def search(self, name): + for child in self.children(): + n_low = child.lower() + if (n_low in name.exact_matches + or n_low.startswith(name.prefix) + and n_low.endswith(name.suffixes) + # legacy case: + or self.is_egg(name) and n_low == 'egg-info'): + yield self.joinpath(child) + + +class Prepared: + """ + A prepared search for metadata on a possibly-named package. + """ + normalized = '' + prefix = '' + suffixes = '.dist-info', '.egg-info' + exact_matches = [''][:0] + versionless_egg_name = '' + + def __init__(self, name): + self.name = name + if name is None: + return + self.normalized = name.lower().replace('-', '_') + self.prefix = self.normalized + '-' + self.exact_matches = [ + self.normalized + suffix for suffix in self.suffixes] + self.versionless_egg_name = self.normalized + '.egg' + + +@install +class MetadataPathFinder(NullFinder, DistributionFinder): + """A degenerate finder for distribution packages on the file system. + + This finder supplies only a find_distributions() method for versions + of Python that do not have a PathFinder find_distributions(). + """ + + def find_distributions(self, context=DistributionFinder.Context()): + """ + Find distributions. + + Return an iterable of all Distribution instances capable of + loading the metadata for packages matching ``context.name`` + (or all names if ``None`` indicated) along the paths in the list + of directories ``context.path``. + """ + found = self._search_paths(context.name, context.path) + return map(PathDistribution, found) + + @classmethod + def _search_paths(cls, name, paths): + """Find metadata directories in paths heuristically.""" + return itertools.chain.from_iterable( + path.search(Prepared(name)) + for path in map(FastPath, paths) + ) + + +class PathDistribution(Distribution): + def __init__(self, path): + """Construct a distribution from a path to the metadata directory. + + :param path: A pathlib.Path or similar object supporting + .joinpath(), __div__, .parent, and .read_text(). + """ + self._path = path + + def read_text(self, filename): + with suppress(FileNotFoundError, IsADirectoryError, KeyError, + NotADirectoryError, PermissionError): + return self._path.joinpath(filename).read_text(encoding='utf-8') + read_text.__doc__ = Distribution.read_text.__doc__ + + def locate_file(self, path): + return self._path.parent / path + + +def distribution(distribution_name): + """Get the ``Distribution`` instance for the named package. + + :param distribution_name: The name of the distribution package as a string. + :return: A ``Distribution`` instance (or subclass thereof). + """ + return Distribution.from_name(distribution_name) + + +def distributions(**kwargs): + """Get all ``Distribution`` instances in the current environment. + + :return: An iterable of ``Distribution`` instances. + """ + return Distribution.discover(**kwargs) + + +def metadata(distribution_name): + """Get the metadata for the named package. + + :param distribution_name: The name of the distribution package to query. + :return: An email.Message containing the parsed metadata. + """ + return Distribution.from_name(distribution_name).metadata + + +def version(distribution_name): + """Get the version string for the named package. + + :param distribution_name: The name of the distribution package to query. + :return: The version string for the package as defined in the package's + "Version" metadata key. + """ + return distribution(distribution_name).version + + +def entry_points(): + """Return EntryPoint objects for all installed packages. + + :return: EntryPoint objects for all installed packages. + """ + eps = itertools.chain.from_iterable( + dist.entry_points for dist in distributions()) + by_group = operator.attrgetter('group') + ordered = sorted(eps, key=by_group) + grouped = itertools.groupby(ordered, by_group) + return { + group: tuple(eps) + for group, eps in grouped + } + + +def files(distribution_name): + """Return a list of files for the named package. + + :param distribution_name: The name of the distribution package to query. + :return: List of files composing the distribution. + """ + return distribution(distribution_name).files + + +def requires(distribution_name): + """ + Return a list of requirements for the named package. + + :return: An iterator of requirements, suitable for + packaging.requirement.Requirement. + """ + return distribution(distribution_name).requires + + +__version__ = version(__name__) diff --git a/venv/Lib/site-packages/importlib_metadata/_compat.py b/venv/Lib/site-packages/importlib_metadata/_compat.py new file mode 100644 index 00000000..303d4a22 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/_compat.py @@ -0,0 +1,152 @@ +from __future__ import absolute_import, unicode_literals + +import io +import abc +import sys +import email + + +if sys.version_info > (3,): # pragma: nocover + import builtins + from configparser import ConfigParser + import contextlib + FileNotFoundError = builtins.FileNotFoundError + IsADirectoryError = builtins.IsADirectoryError + NotADirectoryError = builtins.NotADirectoryError + PermissionError = builtins.PermissionError + map = builtins.map + from itertools import filterfalse +else: # pragma: nocover + from backports.configparser import ConfigParser + from itertools import imap as map # type: ignore + from itertools import ifilterfalse as filterfalse + import contextlib2 as contextlib + FileNotFoundError = IOError, OSError + IsADirectoryError = IOError, OSError + NotADirectoryError = IOError, OSError + PermissionError = IOError, OSError + +str = type('') + +suppress = contextlib.suppress + +if sys.version_info > (3, 5): # pragma: nocover + import pathlib +else: # pragma: nocover + import pathlib2 as pathlib + +try: + ModuleNotFoundError = builtins.FileNotFoundError +except (NameError, AttributeError): # pragma: nocover + ModuleNotFoundError = ImportError # type: ignore + + +if sys.version_info >= (3,): # pragma: nocover + from importlib.abc import MetaPathFinder +else: # pragma: nocover + class MetaPathFinder(object): + __metaclass__ = abc.ABCMeta + + +__metaclass__ = type +__all__ = [ + 'install', 'NullFinder', 'MetaPathFinder', 'ModuleNotFoundError', + 'pathlib', 'ConfigParser', 'map', 'suppress', 'FileNotFoundError', + 'NotADirectoryError', 'email_message_from_string', + ] + + +def install(cls): + """ + Class decorator for installation on sys.meta_path. + + Adds the backport DistributionFinder to sys.meta_path and + attempts to disable the finder functionality of the stdlib + DistributionFinder. + """ + sys.meta_path.append(cls()) + disable_stdlib_finder() + return cls + + +def disable_stdlib_finder(): + """ + Give the backport primacy for discovering path-based distributions + by monkey-patching the stdlib O_O. + + See #91 for more background for rationale on this sketchy + behavior. + """ + def matches(finder): + return ( + getattr(finder, '__module__', None) == '_frozen_importlib_external' + and hasattr(finder, 'find_distributions') + ) + for finder in filter(matches, sys.meta_path): # pragma: nocover + del finder.find_distributions + + +class NullFinder: + """ + A "Finder" (aka "MetaClassFinder") that never finds any modules, + but may find distributions. + """ + @staticmethod + def find_spec(*args, **kwargs): + return None + + # In Python 2, the import system requires finders + # to have a find_module() method, but this usage + # is deprecated in Python 3 in favor of find_spec(). + # For the purposes of this finder (i.e. being present + # on sys.meta_path but having no other import + # system functionality), the two methods are identical. + find_module = find_spec + + +def py2_message_from_string(text): # nocoverpy3 + # Work around https://bugs.python.org/issue25545 where + # email.message_from_string cannot handle Unicode on Python 2. + io_buffer = io.StringIO(text) + return email.message_from_file(io_buffer) + + +email_message_from_string = ( + py2_message_from_string + if sys.version_info < (3,) else + email.message_from_string + ) + + +class PyPy_repr: + """ + Override repr for EntryPoint objects on PyPy to avoid __iter__ access. + Ref #97, #102. + """ + affected = hasattr(sys, 'pypy_version_info') + + def __compat_repr__(self): # pragma: nocover + def make_param(name): + value = getattr(self, name) + return '{name}={value!r}'.format(**locals()) + params = ', '.join(map(make_param, self._fields)) + return 'EntryPoint({params})'.format(**locals()) + + if affected: # pragma: nocover + __repr__ = __compat_repr__ + del affected + + +# from itertools recipes +def unique_everseen(iterable): # pragma: nocover + "List unique elements, preserving order. Remember all elements ever seen." + seen = set() + seen_add = seen.add + + for element in filterfalse(seen.__contains__, iterable): + seen_add(element) + yield element + + +unique_ordered = ( + unique_everseen if sys.version_info < (3, 7) else dict.fromkeys) diff --git a/venv/Lib/site-packages/importlib_metadata/docs/__init__.py b/venv/Lib/site-packages/importlib_metadata/docs/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_metadata/docs/changelog.rst b/venv/Lib/site-packages/importlib_metadata/docs/changelog.rst new file mode 100644 index 00000000..0455e667 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/docs/changelog.rst @@ -0,0 +1,297 @@ +========================= + importlib_metadata NEWS +========================= + +v1.7.0 +====== + +* ``PathNotFoundError`` now has a custom ``__str__`` + mentioning "package metadata" being missing to help + guide users to the cause when the package is installed + but no metadata is present. Closes #124. + +v1.6.1 +====== + +* Added ``Distribution._local()`` as a provisional + demonstration of how to load metadata for a local + package. Implicitly requires that + `pep517 `_ is + installed. Ref #42. +* Ensure inputs to FastPath are Unicode. Closes #121. +* Tests now rely on ``importlib.resources.files`` (and + backport) instead of the older ``path`` function. +* Support any iterable from ``find_distributions``. + Closes #122. + +v1.6.0 +====== + +* Added ``module`` and ``attr`` attributes to ``EntryPoint`` + +v1.5.2 +====== + +* Fix redundant entries from ``FastPath.zip_children``. + Closes #117. + +v1.5.1 +====== + +* Improve reliability and consistency of compatibility + imports for contextlib and pathlib when running tests. + Closes #116. + +v1.5.0 +====== + +* Additional performance optimizations in FastPath now + saves an additional 20% on a typical call. +* Correct for issue where PyOxidizer finder has no + ``__module__`` attribute. Closes #110. + +v1.4.0 +====== + +* Through careful optimization, ``distribution()`` is + 3-4x faster. Thanks to Antony Lee for the + contribution. Closes #95. + +* When searching through ``sys.path``, if any error + occurs attempting to list a path entry, that entry + is skipped, making the system much more lenient + to errors. Closes #94. + +v1.3.0 +====== + +* Improve custom finders documentation. Closes #105. + +v1.2.0 +====== + +* Once again, drop support for Python 3.4. Ref #104. + +v1.1.3 +====== + +* Restored support for Python 3.4 due to improper version + compatibility declarations in the v1.1.0 and v1.1.1 + releases. Closes #104. + +v1.1.2 +====== + +* Repaired project metadata to correctly declare the + ``python_requires`` directive. Closes #103. + +v1.1.1 +====== + +* Fixed ``repr(EntryPoint)`` on PyPy 3 also. Closes #102. + +v1.1.0 +====== + +* Dropped support for Python 3.4. +* EntryPoints are now pickleable. Closes #96. +* Fixed ``repr(EntryPoint)`` on PyPy 2. Closes #97. + +v1.0.0 +====== + +* Project adopts semver for versioning. + +* Removed compatibility shim introduced in 0.23. + +* For better compatibility with the stdlib implementation and to + avoid the same distributions being discovered by the stdlib and + backport implementations, the backport now disables the + stdlib DistributionFinder during initialization (import time). + Closes #91 and closes #100. + +0.23 +==== +* Added a compatibility shim to prevent failures on beta releases + of Python before the signature changed to accept the + "context" parameter on find_distributions. This workaround + will have a limited lifespan, not to extend beyond release of + Python 3.8 final. + +0.22 +==== +* Renamed ``package`` parameter to ``distribution_name`` + as `recommended `_ + in the following functions: ``distribution``, ``metadata``, + ``version``, ``files``, and ``requires``. This + backward-incompatible change is expected to have little impact + as these functions are assumed to be primarily used with + positional parameters. + +0.21 +==== +* ``importlib.metadata`` now exposes the ``DistributionFinder`` + metaclass and references it in the docs for extending the + search algorithm. +* Add ``Distribution.at`` for constructing a Distribution object + from a known metadata directory on the file system. Closes #80. +* Distribution finders now receive a context object that + supplies ``.path`` and ``.name`` properties. This change + introduces a fundamental backward incompatibility for + any projects implementing a ``find_distributions`` method + on a ``MetaPathFinder``. This new layer of abstraction + allows this context to be supplied directly or constructed + on demand and opens the opportunity for a + ``find_distributions`` method to solicit additional + context from the caller. Closes #85. + +0.20 +==== +* Clarify in the docs that calls to ``.files`` could return + ``None`` when the metadata is not present. Closes #69. +* Return all requirements and not just the first for dist-info + packages. Closes #67. + +0.19 +==== +* Restrain over-eager egg metadata resolution. +* Add support for entry points with colons in the name. Closes #75. + +0.18 +==== +* Parse entry points case sensitively. Closes #68 +* Add a version constraint on the backport configparser package. Closes #66 + +0.17 +==== +* Fix a permission problem in the tests on Windows. + +0.16 +==== +* Don't crash if there exists an EGG-INFO directory on sys.path. + +0.15 +==== +* Fix documentation. + +0.14 +==== +* Removed ``local_distribution`` function from the API. + **This backward-incompatible change removes this + behavior summarily**. Projects should remove their + reliance on this behavior. A replacement behavior is + under review in the `pep517 project + `_. Closes #42. + +0.13 +==== +* Update docstrings to match PEP 8. Closes #63. +* Merged modules into one module. Closes #62. + +0.12 +==== +* Add support for eggs. !65; Closes #19. + +0.11 +==== +* Support generic zip files (not just wheels). Closes #59 +* Support zip files with multiple distributions in them. Closes #60 +* Fully expose the public API in ``importlib_metadata.__all__``. + +0.10 +==== +* The ``Distribution`` ABC is now officially part of the public API. + Closes #37. +* Fixed support for older single file egg-info formats. Closes #43. +* Fixed a testing bug when ``$CWD`` has spaces in the path. Closes #50. +* Add Python 3.8 to the ``tox`` testing matrix. + +0.9 +=== +* Fixed issue where entry points without an attribute would raise an + Exception. Closes #40. +* Removed unused ``name`` parameter from ``entry_points()``. Closes #44. +* ``DistributionFinder`` classes must now be instantiated before + being placed on ``sys.meta_path``. + +0.8 +=== +* This library can now discover/enumerate all installed packages. **This + backward-incompatible change alters the protocol finders must + implement to support distribution package discovery.** Closes #24. +* The signature of ``find_distributions()`` on custom installer finders + should now accept two parameters, ``name`` and ``path`` and + these parameters must supply defaults. +* The ``entry_points()`` method no longer accepts a package name + but instead returns all entry points in a dictionary keyed by the + ``EntryPoint.group``. The ``resolve`` method has been removed. Instead, + call ``EntryPoint.load()``, which has the same semantics as + ``pkg_resources`` and ``entrypoints``. **This is a backward incompatible + change.** +* Metadata is now always returned as Unicode text regardless of + Python version. Closes #29. +* This library can now discover metadata for a 'local' package (found + in the current-working directory). Closes #27. +* Added ``files()`` function for resolving files from a distribution. +* Added a new ``requires()`` function, which returns the requirements + for a package suitable for parsing by + ``packaging.requirements.Requirement``. Closes #18. +* The top-level ``read_text()`` function has been removed. Use + ``PackagePath.read_text()`` on instances returned by the ``files()`` + function. **This is a backward incompatible change.** +* Release dates are now automatically injected into the changelog + based on SCM tags. + +0.7 +=== +* Fixed issue where packages with dashes in their names would + not be discovered. Closes #21. +* Distribution lookup is now case-insensitive. Closes #20. +* Wheel distributions can no longer be discovered by their module + name. Like Path distributions, they must be indicated by their + distribution package name. + +0.6 +=== +* Removed ``importlib_metadata.distribution`` function. Now + the public interface is primarily the utility functions exposed + in ``importlib_metadata.__all__``. Closes #14. +* Added two new utility functions ``read_text`` and + ``metadata``. + +0.5 +=== +* Updated README and removed details about Distribution + class, now considered private. Closes #15. +* Added test suite support for Python 3.4+. +* Fixed SyntaxErrors on Python 3.4 and 3.5. !12 +* Fixed errors on Windows joining Path elements. !15 + +0.4 +=== +* Housekeeping. + +0.3 +=== +* Added usage documentation. Closes #8 +* Add support for getting metadata from wheels on ``sys.path``. Closes #9 + +0.2 +=== +* Added ``importlib_metadata.entry_points()``. Closes #1 +* Added ``importlib_metadata.resolve()``. Closes #12 +* Add support for Python 2.7. Closes #4 + +0.1 +=== +* Initial release. + + +.. + Local Variables: + mode: change-log-mode + indent-tabs-mode: nil + sentence-end-double-space: t + fill-column: 78 + coding: utf-8 + End: diff --git a/venv/Lib/site-packages/importlib_metadata/docs/conf.py b/venv/Lib/site-packages/importlib_metadata/docs/conf.py new file mode 100644 index 00000000..129a7a4e --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/docs/conf.py @@ -0,0 +1,185 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# importlib_metadata documentation build configuration file, created by +# sphinx-quickstart on Thu Nov 30 10:21:00 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'rst.linker', + 'sphinx.ext.autodoc', + 'sphinx.ext.coverage', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.viewcode', + ] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'importlib_metadata' +copyright = '2017-2019, Jason R. Coombs, Barry Warsaw' +author = 'Jason R. Coombs, Barry Warsaw' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.1' +# The full version, including alpha/beta/rc tags. +release = '0.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'default' + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] + } + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'importlib_metadatadoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', + } + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'importlib_metadata.tex', + 'importlib\\_metadata Documentation', + 'Brett Cannon, Barry Warsaw', 'manual'), + ] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'importlib_metadata', 'importlib_metadata Documentation', + [author], 1) + ] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'importlib_metadata', 'importlib_metadata Documentation', + author, 'importlib_metadata', 'One line description of project.', + 'Miscellaneous'), + ] + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + 'python': ('https://docs.python.org/3', None), + 'importlib_resources': ( + 'https://importlib-resources.readthedocs.io/en/latest/', None + ), + } + + +# For rst.linker, inject release dates into changelog.rst +link_files = { + 'changelog.rst': dict( + replace=[ + dict( + pattern=r'^(?m)((?Pv?\d+(\.\d+){1,2}))\n[-=]+\n', + with_scm='{text}\n{rev[timestamp]:%Y-%m-%d}\n\n', + ), + ], + ), + } diff --git a/venv/Lib/site-packages/importlib_metadata/docs/index.rst b/venv/Lib/site-packages/importlib_metadata/docs/index.rst new file mode 100644 index 00000000..530197cf --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/docs/index.rst @@ -0,0 +1,50 @@ +=============================== + Welcome to importlib_metadata +=============================== + +``importlib_metadata`` is a library which provides an API for accessing an +installed package's metadata (see :pep:`566`), such as its entry points or its top-level +name. This functionality intends to replace most uses of ``pkg_resources`` +`entry point API`_ and `metadata API`_. Along with :mod:`importlib.resources` in +Python 3.7 and newer (backported as :doc:`importlib_resources ` for older +versions of Python), this can eliminate the need to use the older and less +efficient ``pkg_resources`` package. + +``importlib_metadata`` is a backport of Python 3.8's standard library +:doc:`importlib.metadata ` module for Python 2.7, and 3.4 through 3.7. Users of +Python 3.8 and beyond are encouraged to use the standard library module. +When imported on Python 3.8 and later, ``importlib_metadata`` replaces the +DistributionFinder behavior from the stdlib, but leaves the API in tact. +Developers looking for detailed API descriptions should refer to the Python +3.8 standard library documentation. + +The documentation here includes a general :ref:`usage ` guide. + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + using.rst + changelog (links).rst + + +Project details +=============== + + * Project home: https://gitlab.com/python-devs/importlib_metadata + * Report bugs at: https://gitlab.com/python-devs/importlib_metadata/issues + * Code hosting: https://gitlab.com/python-devs/importlib_metadata.git + * Documentation: http://importlib_metadata.readthedocs.io/ + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + + +.. _`entry point API`: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry-points +.. _`metadata API`: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#metadata-api diff --git a/venv/Lib/site-packages/importlib_metadata/docs/using.rst b/venv/Lib/site-packages/importlib_metadata/docs/using.rst new file mode 100644 index 00000000..11965147 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/docs/using.rst @@ -0,0 +1,260 @@ +.. _using: + +================================= + Using :mod:`!importlib_metadata` +================================= + +``importlib_metadata`` is a library that provides for access to installed +package metadata. Built in part on Python's import system, this library +intends to replace similar functionality in the `entry point +API`_ and `metadata API`_ of ``pkg_resources``. Along with +:mod:`importlib.resources` in Python 3.7 +and newer (backported as :doc:`importlib_resources ` for older versions of +Python), this can eliminate the need to use the older and less efficient +``pkg_resources`` package. + +By "installed package" we generally mean a third-party package installed into +Python's ``site-packages`` directory via tools such as `pip +`_. Specifically, +it means a package with either a discoverable ``dist-info`` or ``egg-info`` +directory, and metadata defined by :pep:`566` or its older specifications. +By default, package metadata can live on the file system or in zip archives on +:data:`sys.path`. Through an extension mechanism, the metadata can live almost +anywhere. + + +Overview +======== + +Let's say you wanted to get the version string for a package you've installed +using ``pip``. We start by creating a virtual environment and installing +something into it:: + + $ python3 -m venv example + $ source example/bin/activate + (example) $ pip install importlib_metadata + (example) $ pip install wheel + +You can get the version string for ``wheel`` by running the following:: + + (example) $ python + >>> from importlib_metadata import version + >>> version('wheel') + '0.32.3' + +You can also get the set of entry points keyed by group, such as +``console_scripts``, ``distutils.commands`` and others. Each group contains a +sequence of :ref:`EntryPoint ` objects. + +You can get the :ref:`metadata for a distribution `:: + + >>> list(metadata('wheel')) + ['Metadata-Version', 'Name', 'Version', 'Summary', 'Home-page', 'Author', 'Author-email', 'Maintainer', 'Maintainer-email', 'License', 'Project-URL', 'Project-URL', 'Project-URL', 'Keywords', 'Platform', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Classifier', 'Requires-Python', 'Provides-Extra', 'Requires-Dist', 'Requires-Dist'] + +You can also get a :ref:`distribution's version number `, list its +:ref:`constituent files `, and get a list of the distribution's +:ref:`requirements`. + + +Functional API +============== + +This package provides the following functionality via its public API. + + +.. _entry-points: + +Entry points +------------ + +The ``entry_points()`` function returns a dictionary of all entry points, +keyed by group. Entry points are represented by ``EntryPoint`` instances; +each ``EntryPoint`` has a ``.name``, ``.group``, and ``.value`` attributes and +a ``.load()`` method to resolve the value. There are also ``.module``, +``.attr``, and ``.extras`` attributes for getting the components of the +``.value`` attribute:: + + >>> eps = entry_points() + >>> list(eps) + ['console_scripts', 'distutils.commands', 'distutils.setup_keywords', 'egg_info.writers', 'setuptools.installation'] + >>> scripts = eps['console_scripts'] + >>> wheel = [ep for ep in scripts if ep.name == 'wheel'][0] + >>> wheel + EntryPoint(name='wheel', value='wheel.cli:main', group='console_scripts') + >>> wheel.module + 'wheel.cli' + >>> wheel.attr + 'main' + >>> wheel.extras + [] + >>> main = wheel.load() + >>> main + + +The ``group`` and ``name`` are arbitrary values defined by the package author +and usually a client will wish to resolve all entry points for a particular +group. Read `the setuptools docs +`_ +for more information on entry points, their definition, and usage. + + +.. _metadata: + +Distribution metadata +--------------------- + +Every distribution includes some metadata, which you can extract using the +``metadata()`` function:: + + >>> wheel_metadata = metadata('wheel') + +The keys of the returned data structure [#f1]_ name the metadata keywords, and +their values are returned unparsed from the distribution metadata:: + + >>> wheel_metadata['Requires-Python'] + '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*' + + +.. _version: + +Distribution versions +--------------------- + +The ``version()`` function is the quickest way to get a distribution's version +number, as a string:: + + >>> version('wheel') + '0.32.3' + + +.. _files: + +Distribution files +------------------ + +You can also get the full set of files contained within a distribution. The +``files()`` function takes a distribution package name and returns all of the +files installed by this distribution. Each file object returned is a +``PackagePath``, a :class:`pathlib.Path` derived object with additional ``dist``, +``size``, and ``hash`` properties as indicated by the metadata. For example:: + + >>> util = [p for p in files('wheel') if 'util.py' in str(p)][0] + >>> util + PackagePath('wheel/util.py') + >>> util.size + 859 + >>> util.dist + + >>> util.hash + + +Once you have the file, you can also read its contents:: + + >>> print(util.read_text()) + import base64 + import sys + ... + def as_bytes(s): + if isinstance(s, text_type): + return s.encode('utf-8') + return s + +In the case where the metadata file listing files +(RECORD or SOURCES.txt) is missing, ``files()`` will +return ``None``. The caller may wish to wrap calls to +``files()`` in `always_iterable +`_ +or otherwise guard against this condition if the target +distribution is not known to have the metadata present. + +.. _requirements: + +Distribution requirements +------------------------- + +To get the full set of requirements for a distribution, use the ``requires()`` +function:: + + >>> requires('wheel') + ["pytest (>=3.0.0) ; extra == 'test'", "pytest-cov ; extra == 'test'"] + + +Distributions +============= + +While the above API is the most common and convenient usage, you can get all +of that information from the ``Distribution`` class. A ``Distribution`` is an +abstract object that represents the metadata for a Python package. You can +get the ``Distribution`` instance:: + + >>> from importlib_metadata import distribution + >>> dist = distribution('wheel') + +Thus, an alternative way to get the version number is through the +``Distribution`` instance:: + + >>> dist.version + '0.32.3' + +There are all kinds of additional metadata available on the ``Distribution`` +instance:: + + >>> d.metadata['Requires-Python'] + '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*' + >>> d.metadata['License'] + 'MIT' + +The full set of available metadata is not described here. See :pep:`566` +for additional details. + + +Extending the search algorithm +============================== + +Because package metadata is not available through :data:`sys.path` searches, or +package loaders directly, the metadata for a package is found through import +system `finders`_. To find a distribution package's metadata, +``importlib.metadata`` queries the list of :term:`meta path finders ` on +:data:`sys.meta_path`. + +By default ``importlib_metadata`` installs a finder for distribution packages +found on the file system. This finder doesn't actually find any *packages*, +but it can find the packages' metadata. + +The abstract class :py:class:`importlib.abc.MetaPathFinder` defines the +interface expected of finders by Python's import system. +``importlib_metadata`` extends this protocol by looking for an optional +``find_distributions`` callable on the finders from +:data:`sys.meta_path` and presents this extended interface as the +``DistributionFinder`` abstract base class, which defines this abstract +method:: + + @abc.abstractmethod + def find_distributions(context=DistributionFinder.Context()): + """Return an iterable of all Distribution instances capable of + loading the metadata for packages for the indicated ``context``. + """ + +The ``DistributionFinder.Context`` object provides ``.path`` and ``.name`` +properties indicating the path to search and name to match and may +supply other relevant context. + +What this means in practice is that to support finding distribution package +metadata in locations other than the file system, subclass +``Distribution`` and implement the abstract methods. Then from +a custom finder, return instances of this derived ``Distribution`` in the +``find_distributions()`` method. + + +.. _`entry point API`: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry-points +.. _`metadata API`: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#metadata-api +.. _`finders`: https://docs.python.org/3/reference/import.html#finders-and-loaders + + +.. rubric:: Footnotes + +.. [#f1] Technically, the returned distribution metadata object is an + :class:`email.message.EmailMessage` + instance, but this is an implementation detail, and not part of the + stable API. You should only use dictionary-like methods and syntax + to access the metadata contents. diff --git a/venv/Lib/site-packages/importlib_metadata/tests/__init__.py b/venv/Lib/site-packages/importlib_metadata/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_metadata/tests/data/__init__.py b/venv/Lib/site-packages/importlib_metadata/tests/data/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_metadata/tests/data/example-21.12-py3-none-any.whl b/venv/Lib/site-packages/importlib_metadata/tests/data/example-21.12-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..641ab07f7aadd5c3ffe199b1e397b84504444994 GIT binary patch literal 1455 zcmWIWW@Zs#U|`^2sH#5hC#89?LJ`OVVPPOntw_u*$Vt_YkI&4@EQycTE2#AL^bJ1Y zd*;mL3tJuqF*Gf@GU?JH8`iH^x{lmwniEp0#}EKFaSqT#mVX%$)j*SW1F-_aL|r38 zJwqeCl+5B1-ORkSe0^Wn5Jwls5Xac=ja-KeL|ngr7ya2Na>+2-+_Beb<+qte)Tv+?!=mXP3IU>yCSok_B-aII-Kw3 zQMDMLgF#ppkHf<~TwQ&*&wKcuy~yjWt99!gle zr#}12zzYT!jLohYUwp!K>b(BNuR7OwHFUksp7hxiq@k(h`;^PmXM2#w3X^MRPoMX` z>U(DOlSfQw;W@=u^`JJ;IgUWAfyY^?c_l@a@df#rc_qbqB^4#ze&^0>pF8i_tM8|G zN=HMp?`hFmk2AU_JVQ5xdbDm>QzUHsc}LJj?qWtX3-6|I25|u`;s9b*JQkMZ7sThJ zmZj!^Z1aYg{S@8xHoufE=rJ-dTm)h{Jcb3iI{OE?l%CmH)a1axaN%A)u3Q2l zE(Z%%TzIplh-=e{bsROdT|LH`74jc0G1}d-ie(BgQ)O((bmtPEAigxe^3+zD^2ZPA z=Kj_@llnHb%pqs>={~b{JFAWU-FsQLpa0z(9XLnn{J!+d2H)mi39tFM zWw~J?v;DQj2W5<}*`3O4x;giZz4dIBjE_o=poHl8P!xz%}R z^2PdUhwx4OykW7N0@LpsPXda2KAh-#t~vYAon3*GEN%;5X|j5I`Pcv4f`xLoSdG>m z=t|fwwtn6&&3ktpt-?;-J{BOG-L!7y`!yP=+rIT|ef?5o>krldZ$>5&X54uh7~Ej6 zq!C16$=S#TV9UA??FDpj9zYni2#-I~9cJVf#soY@LK1&~H!B-RJsS|72YTxiGl&NO07LVy literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/importlib_metadata/tests/data/example-21.12-py3.6.egg b/venv/Lib/site-packages/importlib_metadata/tests/data/example-21.12-py3.6.egg new file mode 100644 index 0000000000000000000000000000000000000000..cdb298a19b09d360d18f72a91e9dd70d7d7f54ec GIT binary patch literal 1497 zcmWIWW@Zs#U|`^2c;|fF@3nF0krp8DC=d$*v8%hguBV@yzkYx>gb~~8$aTm-!1cSO ztKNj9U1!!ka0&=sxZ<^c4f@#kCS*N+n7GL42YfZ! zEk5xYo$43J*3tWYGog!X+Wp$0%DLy;7$(q4-Im54c05E zC@DSV$kpt?s$Pc9T!_{7cXah`>i&=P4|_F+Kpf9t5RHa za$M}sCdvd)D?c%>-)L{RYwfgc?`B2cv%3AJhgrnPA#S40>GXa36wF*N9Z0I@t{X7}-NOjPvdHdANi9gtOG(X3u8hyg%*!qYIq)$P1FG&RzN!bcfw~-l zSQ1%xYF7CNi(Cm9!wASN{?g`J(4WS;b8`cyF z8-Lyrw2`}*5zU6XDV#xEK$AIuSPa>QlKg`BoYb<^9FW7jA%;CgcOSCvP!dX2W`S;T zVp=MSkE(!4OG@)#g(A=%5EcgF)QZI1f}B+S`1s7c%#!$cy@E<_Pv77ZzGu!{zOdy{ z5JS_VE0ZoQvSIytrR&I@ra2*{dT2gSDqd(m7iiKmAO?jM!o-5gB$9^ zB^mj7y2fTei;|6>J$69*1_n8CRa9r%0Q~F|js{Hj!lsY`)J@ zQc8Oq-tYt+X9_ybF(v)e?xXXfCeDbSFnQOcg&Zk-O+Qj6gv^>bdC~kSlOkglO`kk7 zJZfQdVxm}n+M@Zh=B?wux=dbv{>= 1.0 + Requires-Dist: pytest; extra == 'test' + """, + "RECORD": "mod.py,sha256=abc,20\n", + "entry_points.txt": """ + [entries] + main = mod:main + ns:sub = mod:main + """ + }, + "mod.py": """ + def main(): + print("hello world") + """, + } + + def setUp(self): + super(DistInfoPkg, self).setUp() + build_files(DistInfoPkg.files, self.site_dir) + + +class DistInfoPkgOffPath(SiteDir): + def setUp(self): + super(DistInfoPkgOffPath, self).setUp() + build_files(DistInfoPkg.files, self.site_dir) + + +class EggInfoPkg(OnSysPath, SiteDir): + files = { + "egginfo_pkg.egg-info": { + "PKG-INFO": """ + Name: egginfo-pkg + Author: Steven Ma + License: Unknown + Version: 1.0.0 + Classifier: Intended Audience :: Developers + Classifier: Topic :: Software Development :: Libraries + """, + "SOURCES.txt": """ + mod.py + egginfo_pkg.egg-info/top_level.txt + """, + "entry_points.txt": """ + [entries] + main = mod:main + """, + "requires.txt": """ + wheel >= 1.0; python_version >= "2.7" + [test] + pytest + """, + "top_level.txt": "mod\n" + }, + "mod.py": """ + def main(): + print("hello world") + """, + } + + def setUp(self): + super(EggInfoPkg, self).setUp() + build_files(EggInfoPkg.files, prefix=self.site_dir) + + +class EggInfoFile(OnSysPath, SiteDir): + files = { + "egginfo_file.egg-info": """ + Metadata-Version: 1.0 + Name: egginfo_file + Version: 0.1 + Summary: An example package + Home-page: www.example.com + Author: Eric Haffa-Vee + Author-email: eric@example.coms + License: UNKNOWN + Description: UNKNOWN + Platform: UNKNOWN + """, + } + + def setUp(self): + super(EggInfoFile, self).setUp() + build_files(EggInfoFile.files, prefix=self.site_dir) + + +class LocalPackage: + files = { + "setup.py": """ + import setuptools + setuptools.setup(name="local-pkg", version="2.0.1") + """, + } + + def setUp(self): + self.fixtures = contextlib.ExitStack() + self.addCleanup(self.fixtures.close) + self.fixtures.enter_context(tempdir_as_cwd()) + build_files(self.files) + + +def build_files(file_defs, prefix=pathlib.Path()): + """Build a set of files/directories, as described by the + + file_defs dictionary. Each key/value pair in the dictionary is + interpreted as a filename/contents pair. If the contents value is a + dictionary, a directory is created, and the dictionary interpreted + as the files within it, recursively. + + For example: + + {"README.txt": "A README file", + "foo": { + "__init__.py": "", + "bar": { + "__init__.py": "", + }, + "baz.py": "# Some code", + } + } + """ + for name, contents in file_defs.items(): + full_name = prefix / name + if isinstance(contents, dict): + full_name.mkdir() + build_files(contents, prefix=full_name) + else: + if isinstance(contents, bytes): + with full_name.open('wb') as f: + f.write(contents) + else: + with full_name.open('w') as f: + f.write(DALS(contents)) + + +class FileBuilder: + def unicode_filename(self): + return test.support.FS_NONASCII or \ + self.skip("File system does not support non-ascii.") + + +def DALS(str): + "Dedent and left-strip" + return textwrap.dedent(str).lstrip() + + +class NullFinder: + def find_module(self, name): + pass diff --git a/venv/Lib/site-packages/importlib_metadata/tests/test_api.py b/venv/Lib/site-packages/importlib_metadata/tests/test_api.py new file mode 100644 index 00000000..aa346ddb --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/tests/test_api.py @@ -0,0 +1,176 @@ +import re +import textwrap +import unittest + +from . import fixtures +from .. import ( + Distribution, PackageNotFoundError, __version__, distribution, + entry_points, files, metadata, requires, version, + ) + +try: + from collections.abc import Iterator +except ImportError: + from collections import Iterator # noqa: F401 + +try: + from builtins import str as text +except ImportError: + from __builtin__ import unicode as text + + +class APITests( + fixtures.EggInfoPkg, + fixtures.DistInfoPkg, + fixtures.EggInfoFile, + unittest.TestCase): + + version_pattern = r'\d+\.\d+(\.\d)?' + + def test_retrieves_version_of_self(self): + pkg_version = version('egginfo-pkg') + assert isinstance(pkg_version, text) + assert re.match(self.version_pattern, pkg_version) + + def test_retrieves_version_of_distinfo_pkg(self): + pkg_version = version('distinfo-pkg') + assert isinstance(pkg_version, text) + assert re.match(self.version_pattern, pkg_version) + + def test_for_name_does_not_exist(self): + with self.assertRaises(PackageNotFoundError): + distribution('does-not-exist') + + def test_for_top_level(self): + self.assertEqual( + distribution('egginfo-pkg').read_text('top_level.txt').strip(), + 'mod') + + def test_read_text(self): + top_level = [ + path for path in files('egginfo-pkg') + if path.name == 'top_level.txt' + ][0] + self.assertEqual(top_level.read_text(), 'mod\n') + + def test_entry_points(self): + entries = dict(entry_points()['entries']) + ep = entries['main'] + self.assertEqual(ep.value, 'mod:main') + self.assertEqual(ep.extras, []) + + def test_metadata_for_this_package(self): + md = metadata('egginfo-pkg') + assert md['author'] == 'Steven Ma' + assert md['LICENSE'] == 'Unknown' + assert md['Name'] == 'egginfo-pkg' + classifiers = md.get_all('Classifier') + assert 'Topic :: Software Development :: Libraries' in classifiers + + def test_importlib_metadata_version(self): + assert re.match(self.version_pattern, __version__) + + @staticmethod + def _test_files(files): + root = files[0].root + for file in files: + assert file.root == root + assert not file.hash or file.hash.value + assert not file.hash or file.hash.mode == 'sha256' + assert not file.size or file.size >= 0 + assert file.locate().exists() + assert isinstance(file.read_binary(), bytes) + if file.name.endswith('.py'): + file.read_text() + + def test_file_hash_repr(self): + try: + assertRegex = self.assertRegex + except AttributeError: + # Python 2 + assertRegex = self.assertRegexpMatches + + util = [ + p for p in files('distinfo-pkg') + if p.name == 'mod.py' + ][0] + assertRegex( + repr(util.hash), + '') + + def test_files_dist_info(self): + self._test_files(files('distinfo-pkg')) + + def test_files_egg_info(self): + self._test_files(files('egginfo-pkg')) + + def test_version_egg_info_file(self): + self.assertEqual(version('egginfo-file'), '0.1') + + def test_requires_egg_info_file(self): + requirements = requires('egginfo-file') + self.assertIsNone(requirements) + + def test_requires_egg_info(self): + deps = requires('egginfo-pkg') + assert len(deps) == 2 + assert any( + dep == 'wheel >= 1.0; python_version >= "2.7"' + for dep in deps + ) + + def test_requires_dist_info(self): + deps = requires('distinfo-pkg') + assert len(deps) == 2 + assert all(deps) + assert 'wheel >= 1.0' in deps + assert "pytest; extra == 'test'" in deps + + def test_more_complex_deps_requires_text(self): + requires = textwrap.dedent(""" + dep1 + dep2 + + [:python_version < "3"] + dep3 + + [extra1] + dep4 + + [extra2:python_version < "3"] + dep5 + """) + deps = sorted(Distribution._deps_from_requires_text(requires)) + expected = [ + 'dep1', + 'dep2', + 'dep3; python_version < "3"', + 'dep4; extra == "extra1"', + 'dep5; (python_version < "3") and extra == "extra2"', + ] + # It's important that the environment marker expression be + # wrapped in parentheses to avoid the following 'and' binding more + # tightly than some other part of the environment expression. + + assert deps == expected + + +class OffSysPathTests(fixtures.DistInfoPkgOffPath, unittest.TestCase): + def test_find_distributions_specified_path(self): + dists = Distribution.discover(path=[str(self.site_dir)]) + assert any( + dist.metadata['Name'] == 'distinfo-pkg' + for dist in dists + ) + + def test_distribution_at_pathlib(self): + """Demonstrate how to load metadata direct from a directory. + """ + dist_info_path = self.site_dir / 'distinfo_pkg-1.0.0.dist-info' + dist = Distribution.at(dist_info_path) + assert dist.version == '1.0.0' + + def test_distribution_at_str(self): + dist_info_path = self.site_dir / 'distinfo_pkg-1.0.0.dist-info' + dist = Distribution.at(str(dist_info_path)) + assert dist.version == '1.0.0' diff --git a/venv/Lib/site-packages/importlib_metadata/tests/test_integration.py b/venv/Lib/site-packages/importlib_metadata/tests/test_integration.py new file mode 100644 index 00000000..cbb940bd --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/tests/test_integration.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +from __future__ import unicode_literals + +import unittest +import packaging.requirements +import packaging.version + +from . import fixtures +from .. import ( + Distribution, + _compat, + version, + ) + + +class IntegrationTests(fixtures.DistInfoPkg, unittest.TestCase): + + def test_package_spec_installed(self): + """ + Illustrate the recommended procedure to determine if + a specified version of a package is installed. + """ + def is_installed(package_spec): + req = packaging.requirements.Requirement(package_spec) + return version(req.name) in req.specifier + + assert is_installed('distinfo-pkg==1.0') + assert is_installed('distinfo-pkg>=1.0,<2.0') + assert not is_installed('distinfo-pkg<1.0') + + +class FinderTests(fixtures.Fixtures, unittest.TestCase): + + def test_finder_without_module(self): + class ModuleFreeFinder(fixtures.NullFinder): + """ + A finder without an __module__ attribute + """ + def __getattribute__(self, name): + if name == '__module__': + raise AttributeError(name) + return super().__getattribute__(name) + + self.fixtures.enter_context( + fixtures.install_finder(ModuleFreeFinder())) + _compat.disable_stdlib_finder() + + +class LocalProjectTests(fixtures.LocalPackage, unittest.TestCase): + def test_find_local(self): + dist = Distribution._local() + assert dist.metadata['Name'] == 'local-pkg' + assert dist.version == '2.0.1' diff --git a/venv/Lib/site-packages/importlib_metadata/tests/test_main.py b/venv/Lib/site-packages/importlib_metadata/tests/test_main.py new file mode 100644 index 00000000..4ffdd5d6 --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/tests/test_main.py @@ -0,0 +1,285 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re +import json +import pickle +import textwrap +import unittest +import importlib +import importlib_metadata +import pyfakefs.fake_filesystem_unittest as ffs + +from . import fixtures +from .. import ( + Distribution, EntryPoint, MetadataPathFinder, + PackageNotFoundError, distributions, + entry_points, metadata, version, + ) + +try: + from builtins import str as text +except ImportError: + from __builtin__ import unicode as text + + +class BasicTests(fixtures.DistInfoPkg, unittest.TestCase): + version_pattern = r'\d+\.\d+(\.\d)?' + + def test_retrieves_version_of_self(self): + dist = Distribution.from_name('distinfo-pkg') + assert isinstance(dist.version, text) + assert re.match(self.version_pattern, dist.version) + + def test_for_name_does_not_exist(self): + with self.assertRaises(PackageNotFoundError): + Distribution.from_name('does-not-exist') + + def test_package_not_found_mentions_metadata(self): + """ + When a package is not found, that could indicate that the + packgae is not installed or that it is installed without + metadata. Ensure the exception mentions metadata to help + guide users toward the cause. See #124. + """ + with self.assertRaises(PackageNotFoundError) as ctx: + Distribution.from_name('does-not-exist') + + assert "metadata" in str(ctx.exception) + + def test_new_style_classes(self): + self.assertIsInstance(Distribution, type) + self.assertIsInstance(MetadataPathFinder, type) + + +class ImportTests(fixtures.DistInfoPkg, unittest.TestCase): + def test_import_nonexistent_module(self): + # Ensure that the MetadataPathFinder does not crash an import of a + # non-existent module. + with self.assertRaises(ImportError): + importlib.import_module('does_not_exist') + + def test_resolve(self): + entries = dict(entry_points()['entries']) + ep = entries['main'] + self.assertEqual(ep.load().__name__, "main") + + def test_entrypoint_with_colon_in_name(self): + entries = dict(entry_points()['entries']) + ep = entries['ns:sub'] + self.assertEqual(ep.value, 'mod:main') + + def test_resolve_without_attr(self): + ep = EntryPoint( + name='ep', + value='importlib_metadata', + group='grp', + ) + assert ep.load() is importlib_metadata + + +class NameNormalizationTests( + fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): + @staticmethod + def pkg_with_dashes(site_dir): + """ + Create minimal metadata for a package with dashes + in the name (and thus underscores in the filename). + """ + metadata_dir = site_dir / 'my_pkg.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w') as strm: + strm.write('Version: 1.0\n') + return 'my-pkg' + + def test_dashes_in_dist_name_found_as_underscores(self): + """ + For a package with a dash in the name, the dist-info metadata + uses underscores in the name. Ensure the metadata loads. + """ + pkg_name = self.pkg_with_dashes(self.site_dir) + assert version(pkg_name) == '1.0' + + @staticmethod + def pkg_with_mixed_case(site_dir): + """ + Create minimal metadata for a package with mixed case + in the name. + """ + metadata_dir = site_dir / 'CherryPy.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w') as strm: + strm.write('Version: 1.0\n') + return 'CherryPy' + + def test_dist_name_found_as_any_case(self): + """ + Ensure the metadata loads when queried with any case. + """ + pkg_name = self.pkg_with_mixed_case(self.site_dir) + assert version(pkg_name) == '1.0' + assert version(pkg_name.lower()) == '1.0' + assert version(pkg_name.upper()) == '1.0' + + +class NonASCIITests(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): + @staticmethod + def pkg_with_non_ascii_description(site_dir): + """ + Create minimal metadata for a package with non-ASCII in + the description. + """ + metadata_dir = site_dir / 'portend.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w', encoding='utf-8') as fp: + fp.write('Description: pôrˈtend\n') + return 'portend' + + @staticmethod + def pkg_with_non_ascii_description_egg_info(site_dir): + """ + Create minimal metadata for an egg-info package with + non-ASCII in the description. + """ + metadata_dir = site_dir / 'portend.dist-info' + metadata_dir.mkdir() + metadata = metadata_dir / 'METADATA' + with metadata.open('w', encoding='utf-8') as fp: + fp.write(textwrap.dedent(""" + Name: portend + + pôrˈtend + """).lstrip()) + return 'portend' + + def test_metadata_loads(self): + pkg_name = self.pkg_with_non_ascii_description(self.site_dir) + meta = metadata(pkg_name) + assert meta['Description'] == 'pôrˈtend' + + def test_metadata_loads_egg_info(self): + pkg_name = self.pkg_with_non_ascii_description_egg_info(self.site_dir) + meta = metadata(pkg_name) + assert meta.get_payload() == 'pôrˈtend\n' + + +class DiscoveryTests(fixtures.EggInfoPkg, + fixtures.DistInfoPkg, + unittest.TestCase): + + def test_package_discovery(self): + dists = list(distributions()) + assert all( + isinstance(dist, Distribution) + for dist in dists + ) + assert any( + dist.metadata['Name'] == 'egginfo-pkg' + for dist in dists + ) + assert any( + dist.metadata['Name'] == 'distinfo-pkg' + for dist in dists + ) + + def test_invalid_usage(self): + with self.assertRaises(ValueError): + list(distributions(context='something', name='else')) + + +class DirectoryTest(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase): + def test_egg_info(self): + # make an `EGG-INFO` directory that's unrelated + self.site_dir.joinpath('EGG-INFO').mkdir() + # used to crash with `IsADirectoryError` + with self.assertRaises(PackageNotFoundError): + version('unknown-package') + + def test_egg(self): + egg = self.site_dir.joinpath('foo-3.6.egg') + egg.mkdir() + with self.add_sys_path(egg): + with self.assertRaises(PackageNotFoundError): + version('foo') + + +class MissingSysPath(fixtures.OnSysPath, unittest.TestCase): + site_dir = '/does-not-exist' + + def test_discovery(self): + """ + Discovering distributions should succeed even if + there is an invalid path on sys.path. + """ + importlib_metadata.distributions() + + +class InaccessibleSysPath(fixtures.OnSysPath, ffs.TestCase): + site_dir = '/access-denied' + + def setUp(self): + super(InaccessibleSysPath, self).setUp() + self.setUpPyfakefs() + self.fs.create_dir(self.site_dir, perm_bits=000) + + def test_discovery(self): + """ + Discovering distributions should succeed even if + there is an invalid path on sys.path. + """ + list(importlib_metadata.distributions()) + + +class TestEntryPoints(unittest.TestCase): + def __init__(self, *args): + super(TestEntryPoints, self).__init__(*args) + self.ep = importlib_metadata.EntryPoint('name', 'value', 'group') + + def test_entry_point_pickleable(self): + revived = pickle.loads(pickle.dumps(self.ep)) + assert revived == self.ep + + def test_immutable(self): + """EntryPoints should be immutable""" + with self.assertRaises(AttributeError): + self.ep.name = 'badactor' + + def test_repr(self): + assert 'EntryPoint' in repr(self.ep) + assert 'name=' in repr(self.ep) + assert "'name'" in repr(self.ep) + + def test_hashable(self): + """EntryPoints should be hashable""" + hash(self.ep) + + def test_json_dump(self): + """ + json should not expect to be able to dump an EntryPoint + """ + with self.assertRaises(Exception): + json.dumps(self.ep) + + def test_module(self): + assert self.ep.module == 'value' + + def test_attr(self): + assert self.ep.attr is None + + +class FileSystem( + fixtures.OnSysPath, fixtures.SiteDir, fixtures.FileBuilder, + unittest.TestCase): + def test_unicode_dir_on_sys_path(self): + """ + Ensure a Unicode subdirectory of a directory on sys.path + does not crash. + """ + fixtures.build_files( + {self.unicode_filename(): {}}, + prefix=self.site_dir, + ) + list(distributions()) diff --git a/venv/Lib/site-packages/importlib_metadata/tests/test_zip.py b/venv/Lib/site-packages/importlib_metadata/tests/test_zip.py new file mode 100644 index 00000000..4aae933d --- /dev/null +++ b/venv/Lib/site-packages/importlib_metadata/tests/test_zip.py @@ -0,0 +1,80 @@ +import sys +import unittest + +from .. import ( + distribution, entry_points, files, PackageNotFoundError, + version, distributions, + ) + +try: + from importlib import resources + getattr(resources, 'files') + getattr(resources, 'as_file') +except (ImportError, AttributeError): + import importlib_resources as resources + +try: + from contextlib import ExitStack +except ImportError: + from contextlib2 import ExitStack + + +class TestZip(unittest.TestCase): + root = 'importlib_metadata.tests.data' + + def _fixture_on_path(self, filename): + pkg_file = resources.files(self.root).joinpath(filename) + file = self.resources.enter_context(resources.as_file(pkg_file)) + assert file.name.startswith('example-'), file.name + sys.path.insert(0, str(file)) + self.resources.callback(sys.path.pop, 0) + + def setUp(self): + # Find the path to the example-*.whl so we can add it to the front of + # sys.path, where we'll then try to find the metadata thereof. + self.resources = ExitStack() + self.addCleanup(self.resources.close) + self._fixture_on_path('example-21.12-py3-none-any.whl') + + def test_zip_version(self): + self.assertEqual(version('example'), '21.12') + + def test_zip_version_does_not_match(self): + with self.assertRaises(PackageNotFoundError): + version('definitely-not-installed') + + def test_zip_entry_points(self): + scripts = dict(entry_points()['console_scripts']) + entry_point = scripts['example'] + self.assertEqual(entry_point.value, 'example:main') + entry_point = scripts['Example'] + self.assertEqual(entry_point.value, 'example:main') + + def test_missing_metadata(self): + self.assertIsNone(distribution('example').read_text('does not exist')) + + def test_case_insensitive(self): + self.assertEqual(version('Example'), '21.12') + + def test_files(self): + for file in files('example'): + path = str(file.dist.locate_file(file)) + assert '.whl/' in path, path + + def test_one_distribution(self): + dists = list(distributions(path=sys.path[:1])) + assert len(dists) == 1 + + +class TestEgg(TestZip): + def setUp(self): + # Find the path to the example-*.egg so we can add it to the front of + # sys.path, where we'll then try to find the metadata thereof. + self.resources = ExitStack() + self.addCleanup(self.resources.close) + self._fixture_on_path('example-21.12-py3.6.egg') + + def test_files(self): + for file in files('example'): + path = str(file.dist.locate_file(file)) + assert '.egg/' in path, path diff --git a/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/INSTALLER b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/LICENSE b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/LICENSE new file mode 100644 index 00000000..378b991a --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/LICENSE @@ -0,0 +1,13 @@ +Copyright 2017-2019 Brett Cannon, Barry Warsaw + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/METADATA b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/METADATA new file mode 100644 index 00000000..ff57e061 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/METADATA @@ -0,0 +1,53 @@ +Metadata-Version: 2.1 +Name: importlib-resources +Version: 3.0.0 +Summary: Read resources from Python packages +Home-page: http://importlib-resources.readthedocs.io/ +Author: Barry Warsaw +Author-email: barry@python.org +License: UNKNOWN +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Topic :: Software Development :: Libraries +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7 +Requires-Dist: pathlib2 ; python_version < "3" +Requires-Dist: contextlib2 ; python_version < "3" +Requires-Dist: singledispatch ; python_version < "3.4" +Requires-Dist: typing ; python_version < "3.5" +Requires-Dist: zipp (>=0.4) ; python_version < "3.8" +Provides-Extra: docs +Requires-Dist: sphinx ; extra == 'docs' +Requires-Dist: rst.linker ; extra == 'docs' +Requires-Dist: jaraco.packaging ; extra == 'docs' + +========================= + ``importlib_resources`` +========================= + +``importlib_resources`` is a backport of Python standard library +`importlib.resources +`_ +module for Python 2.7, and 3.4 through 3.8. Users of Python 3.9 and beyond +should use the standard library module, since for these versions, +``importlib_resources`` just delegates to that module. + +The key goal of this module is to replace parts of `pkg_resources +`_ with a +solution in Python's stdlib that relies on well-defined APIs. This makes +reading resources included in packages easier, with more stable and consistent +semantics. + + +Project details +=============== + + * Project home: https://gitlab.com/python-devs/importlib_resources + * Report bugs at: https://gitlab.com/python-devs/importlib_resources/issues + * Code hosting: https://gitlab.com/python-devs/importlib_resources.git + * Documentation: https://importlib-resources.readthedocs.io/ + + diff --git a/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/RECORD b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/RECORD new file mode 100644 index 00000000..0975141b --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/RECORD @@ -0,0 +1,66 @@ +importlib_resources-3.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +importlib_resources-3.0.0.dist-info/LICENSE,sha256=uWRjFdYGataJX2ziXk048ItUglQmjng3GWBALaWA36U,568 +importlib_resources-3.0.0.dist-info/METADATA,sha256=BIalQpWJG-Av5ZUNQXdFsv6M8s8EdYiymu6GaoEL1Rk,2100 +importlib_resources-3.0.0.dist-info/RECORD,, +importlib_resources-3.0.0.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +importlib_resources-3.0.0.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20 +importlib_resources/__init__.py,sha256=hswDmLAH0IUlLWwmdHXPN2mgus2bk5IwDP-BFzg7VKo,977 +importlib_resources/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/__pycache__/_common.cpython-36.pyc,, +importlib_resources/__pycache__/_compat.cpython-36.pyc,, +importlib_resources/__pycache__/_py2.cpython-36.pyc,, +importlib_resources/__pycache__/_py3.cpython-36.pyc,, +importlib_resources/__pycache__/abc.cpython-36.pyc,, +importlib_resources/__pycache__/readers.cpython-36.pyc,, +importlib_resources/__pycache__/trees.cpython-36.pyc,, +importlib_resources/_common.py,sha256=jXVqgKZ1bt8IbZiErvjIeb69BjqsMSCSt9AwV4bHnE8,3157 +importlib_resources/_compat.py,sha256=5nvS1tAZIl_6VqrFSScNVW2wtBGaRXGxcpDXMskruoA,3233 +importlib_resources/_py2.py,sha256=G9M5mv1ILl8NARGdNX0v9_F_Hb4HUKCS-FCNK63Ajvw,4146 +importlib_resources/_py3.py,sha256=2wJYfjLG8nd9mT1HLBtX96m6zlu9-Tocte9wFl9q_bY,5474 +importlib_resources/abc.py,sha256=6PX4Nprv39YnAht3NymhHIuSso0ocAKqDJZf-A6BgIw,3894 +importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/readers.py,sha256=S0DsGQB1li6w5USiZQtiy-5HXe4UAxt-zmKo8QlAxsI,1155 +importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/__pycache__/test_files.cpython-36.pyc,, +importlib_resources/tests/__pycache__/test_open.cpython-36.pyc,, +importlib_resources/tests/__pycache__/test_path.cpython-36.pyc,, +importlib_resources/tests/__pycache__/test_read.cpython-36.pyc,, +importlib_resources/tests/__pycache__/test_resource.cpython-36.pyc,, +importlib_resources/tests/__pycache__/util.cpython-36.pyc,, +importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data01/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 +importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data01/subdirectory/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 +importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 +importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 +importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data02/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data02/one/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13 +importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data02/two/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13 +importlib_resources/tests/data03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data03/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data03/namespace/portion1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data03/namespace/portion1/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data03/namespace/portion2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data03/namespace/portion2/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/data03/namespace/resource1.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/test_files.py,sha256=91rf4C74_aJsKNSt-a-03slVpY9QSAuCbogFWnsaPjE,1017 +importlib_resources/tests/test_open.py,sha256=yDXmTGXQspByj6WU0prnoVwab1yWWEA3fwz_XIx7TQU,2288 +importlib_resources/tests/test_path.py,sha256=GnUOu-338o9offnC8xwbXjH9JIQJpD7JujgQkGB106Q,1548 +importlib_resources/tests/test_read.py,sha256=DpA7tzxSQlU0_YQuWibB3E5PDL9fQUdzeKoEUGnAx78,2046 +importlib_resources/tests/test_resource.py,sha256=X77DzU2BRoM6d59iEh74zDHHw3pKOBGLCg3lP3dH4BI,6467 +importlib_resources/tests/util.py,sha256=f0RZU-RkEkybJjXRd7C5HcWMsoLFRWJL4FIUF1CJ2wo,6980 +importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/zipdata01/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=AYf51fj80OKCRis93v2DlZjt5rM-VQOPptSHJbFtkXw,1131 +importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/zipdata02/__pycache__/__init__.cpython-36.pyc,, +importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=e6HXvTEObXvJcNxyX5I8tu5M8_6mSN8ALahHfqE7ADA,698 +importlib_resources/trees.py,sha256=U3FlQSI5--eF4AdzOjBvW4xnjL21OFX8ivk82Quwv_M,117 diff --git a/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/WHEEL b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/WHEEL new file mode 100644 index 00000000..ef99c6cf --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/top_level.txt b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/top_level.txt new file mode 100644 index 00000000..58ad1bd3 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources-3.0.0.dist-info/top_level.txt @@ -0,0 +1 @@ +importlib_resources diff --git a/venv/Lib/site-packages/importlib_resources/__init__.py b/venv/Lib/site-packages/importlib_resources/__init__.py new file mode 100644 index 00000000..f122f95e --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/__init__.py @@ -0,0 +1,53 @@ +"""Read resources contained within a package.""" + +import sys + +from ._common import ( + as_file, files, + ) + +# For compatibility. Ref #88. +# Also requires hook-importlib_resources.py (Ref #101). +__import__('importlib_resources.trees') + + +__all__ = [ + 'Package', + 'Resource', + 'ResourceReader', + 'as_file', + 'contents', + 'files', + 'is_resource', + 'open_binary', + 'open_text', + 'path', + 'read_binary', + 'read_text', + ] + + +if sys.version_info >= (3,): + from importlib_resources._py3 import ( + Package, + Resource, + contents, + is_resource, + open_binary, + open_text, + path, + read_binary, + read_text, + ) + from importlib_resources.abc import ResourceReader +else: + from importlib_resources._py2 import ( + contents, + is_resource, + open_binary, + open_text, + path, + read_binary, + read_text, + ) + del __all__[:3] diff --git a/venv/Lib/site-packages/importlib_resources/_common.py b/venv/Lib/site-packages/importlib_resources/_common.py new file mode 100644 index 00000000..f54c78d7 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/_common.py @@ -0,0 +1,121 @@ +from __future__ import absolute_import + +import os +import tempfile +import contextlib +import types +import importlib + +from ._compat import ( + Path, FileNotFoundError, + singledispatch, package_spec, + ) + +if False: # TYPE_CHECKING + from typing import Union, Any, Optional + from .abc import ResourceReader + Package = Union[types.ModuleType, str] + + +def files(package): + """ + Get a Traversable resource from a package + """ + return from_package(get_package(package)) + + +def normalize_path(path): + # type: (Any) -> str + """Normalize a path by ensuring it is a string. + + If the resulting string contains path separators, an exception is raised. + """ + str_path = str(path) + parent, file_name = os.path.split(str_path) + if parent: + raise ValueError('{!r} must be only a file name'.format(path)) + return file_name + + +def get_resource_reader(package): + # type: (types.ModuleType) -> Optional[ResourceReader] + """ + Return the package's loader if it's a ResourceReader. + """ + # We can't use + # a issubclass() check here because apparently abc.'s __subclasscheck__() + # hook wants to create a weak reference to the object, but + # zipimport.zipimporter does not support weak references, resulting in a + # TypeError. That seems terrible. + spec = package.__spec__ + reader = getattr(spec.loader, 'get_resource_reader', None) + if reader is None: + return None + return reader(spec.name) + + +def resolve(cand): + # type: (Package) -> types.ModuleType + return ( + cand if isinstance(cand, types.ModuleType) + else importlib.import_module(cand) + ) + + +def get_package(package): + # type: (Package) -> types.ModuleType + """Take a package name or module object and return the module. + + Raise an exception if the resolved module is not a package. + """ + resolved = resolve(package) + if package_spec(resolved).submodule_search_locations is None: + raise TypeError('{!r} is not a package'.format(package)) + return resolved + + +def from_package(package): + """ + Return a Traversable object for the given package. + + """ + spec = package_spec(package) + reader = spec.loader.get_resource_reader(spec.name) + return reader.files() + + +@contextlib.contextmanager +def _tempfile(reader, suffix=''): + # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' + # blocks due to the need to close the temporary file to work on Windows + # properly. + fd, raw_path = tempfile.mkstemp(suffix=suffix) + try: + os.write(fd, reader()) + os.close(fd) + yield Path(raw_path) + finally: + try: + os.remove(raw_path) + except FileNotFoundError: + pass + + +@singledispatch +@contextlib.contextmanager +def as_file(path): + """ + Given a Traversable object, return that object as a + path on the local file system in a context manager. + """ + with _tempfile(path.read_bytes, suffix=path.name) as local: + yield local + + +@as_file.register(Path) +@contextlib.contextmanager +def _(path): + """ + Degenerate behavior for pathlib.Path objects. + """ + yield path diff --git a/venv/Lib/site-packages/importlib_resources/_compat.py b/venv/Lib/site-packages/importlib_resources/_compat.py new file mode 100644 index 00000000..dbfc6796 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/_compat.py @@ -0,0 +1,127 @@ +from __future__ import absolute_import +import sys + +# flake8: noqa + +if sys.version_info > (3,5): + from pathlib import Path, PurePath +else: + from pathlib2 import Path, PurePath # type: ignore + + +if sys.version_info > (3,): + from contextlib import suppress +else: + from contextlib2 import suppress # type: ignore + + +try: + from functools import singledispatch +except ImportError: + from singledispatch import singledispatch # type: ignore + + +try: + from abc import ABC # type: ignore +except ImportError: + from abc import ABCMeta + + class ABC(object): # type: ignore + __metaclass__ = ABCMeta + + +try: + FileNotFoundError = FileNotFoundError # type: ignore +except NameError: + FileNotFoundError = OSError # type: ignore + + +try: + from zipfile import Path as ZipPath # type: ignore +except ImportError: + from zipp import Path as ZipPath # type: ignore + + +try: + from typing import runtime_checkable # type: ignore +except ImportError: + def runtime_checkable(cls): # type: ignore + return cls + + +try: + from typing import Protocol # type: ignore +except ImportError: + Protocol = ABC # type: ignore + + +__metaclass__ = type + + +class PackageSpec: + def __init__(self, **kwargs): + vars(self).update(kwargs) + + +class TraversableResourcesAdapter: + def __init__(self, spec): + self.spec = spec + self.loader = LoaderAdapter(spec) + + def __getattr__(self, name): + return getattr(self.spec, name) + + +class LoaderAdapter: + """ + Adapt loaders to provide TraversableResources and other + compatibility. + """ + def __init__(self, spec): + self.spec = spec + + @property + def path(self): + # Python < 3 + return self.spec.origin + + def get_resource_reader(self, name): + # Python < 3.9 + from . import readers + + def _zip_reader(spec): + with suppress(AttributeError): + return readers.ZipReader(spec.loader, spec.name) + + def _available_reader(spec): + with suppress(AttributeError): + return spec.loader.get_resource_reader(spec.name) + + def _native_reader(spec): + reader = _available_reader(spec) + return reader if hasattr(reader, 'files') else None + + return ( + # native reader if it supplies 'files' + _native_reader(self.spec) or + # local ZipReader if a zip module + _zip_reader(self.spec) or + # local FileReader + readers.FileReader(self) + ) + + +def package_spec(package): + """ + Construct a minimal package spec suitable for + matching the interfaces this library relies upon + in later Python versions. + """ + spec = getattr(package, '__spec__', None) or \ + PackageSpec( + origin=package.__file__, + loader=getattr(package, '__loader__', None), + name=package.__name__, + submodule_search_locations=getattr(package, '__path__', None), + ) + return TraversableResourcesAdapter(spec) diff --git a/venv/Lib/site-packages/importlib_resources/_py2.py b/venv/Lib/site-packages/importlib_resources/_py2.py new file mode 100644 index 00000000..dd8c7d62 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/_py2.py @@ -0,0 +1,107 @@ +import os +import errno + +from . import _common +from ._compat import FileNotFoundError +from io import BytesIO, TextIOWrapper, open as io_open + + +def open_binary(package, resource): + """Return a file-like object opened for binary reading of the resource.""" + resource = _common.normalize_path(resource) + package = _common.get_package(package) + # Using pathlib doesn't work well here due to the lack of 'strict' argument + # for pathlib.Path.resolve() prior to Python 3.6. + package_path = os.path.dirname(package.__file__) + relative_path = os.path.join(package_path, resource) + full_path = os.path.abspath(relative_path) + try: + return io_open(full_path, 'rb') + except IOError: + # This might be a package in a zip file. zipimport provides a loader + # with a functioning get_data() method, however we have to strip the + # archive (i.e. the .zip file's name) off the front of the path. This + # is because the zipimport loader in Python 2 doesn't actually follow + # PEP 302. It should allow the full path, but actually requires that + # the path be relative to the zip file. + try: + loader = package.__loader__ + full_path = relative_path[len(loader.archive)+1:] + data = loader.get_data(full_path) + except (IOError, AttributeError): + package_name = package.__name__ + message = '{!r} resource not found in {!r}'.format( + resource, package_name) + raise FileNotFoundError(message) + return BytesIO(data) + + +def open_text(package, resource, encoding='utf-8', errors='strict'): + """Return a file-like object opened for text reading of the resource.""" + return TextIOWrapper( + open_binary(package, resource), encoding=encoding, errors=errors) + + +def read_binary(package, resource): + """Return the binary contents of the resource.""" + with open_binary(package, resource) as fp: + return fp.read() + + +def read_text(package, resource, encoding='utf-8', errors='strict'): + """Return the decoded string of the resource. + + The decoding-related arguments have the same semantics as those of + bytes.decode(). + """ + with open_text(package, resource, encoding, errors) as fp: + return fp.read() + + +def path(package, resource): + """A context manager providing a file path object to the resource. + + If the resource does not already exist on its own on the file system, + a temporary file will be created. If the file was created, the file + will be deleted upon exiting the context manager (no exception is + raised if the file was deleted prior to the context manager + exiting). + """ + path = _common.files(package).joinpath(_common.normalize_path(resource)) + if not path.is_file(): + raise FileNotFoundError(path) + return _common.as_file(path) + + +def is_resource(package, name): + """True if name is a resource inside package. + + Directories are *not* resources. + """ + package = _common.get_package(package) + _common.normalize_path(name) + try: + package_contents = set(contents(package)) + except OSError as error: + if error.errno not in (errno.ENOENT, errno.ENOTDIR): + # We won't hit this in the Python 2 tests, so it'll appear + # uncovered. We could mock os.listdir() to return a non-ENOENT or + # ENOTDIR, but then we'd have to depend on another external + # library since Python 2 doesn't have unittest.mock. It's not + # worth it. + raise # pragma: nocover + return False + if name not in package_contents: + return False + return (_common.from_package(package) / name).is_file() + + +def contents(package): + """Return an iterable of entries in `package`. + + Note that not all entries are resources. Specifically, directories are + not considered resources. Use `is_resource()` on each entry returned here + to check if it is a resource or not. + """ + package = _common.get_package(package) + return list(item.name for item in _common.from_package(package).iterdir()) diff --git a/venv/Lib/site-packages/importlib_resources/_py3.py b/venv/Lib/site-packages/importlib_resources/_py3.py new file mode 100644 index 00000000..5998f215 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/_py3.py @@ -0,0 +1,150 @@ +import os +import sys + +from . import _common +from contextlib import contextmanager, suppress +from importlib.abc import ResourceLoader +from io import BytesIO, TextIOWrapper +from pathlib import Path +from types import ModuleType +from typing import Iterable, Iterator, Optional, Set, Union # noqa: F401 +from typing import cast +from typing.io import BinaryIO, TextIO + +if False: # TYPE_CHECKING + from typing import ContextManager + +Package = Union[ModuleType, str] +if sys.version_info >= (3, 6): + Resource = Union[str, os.PathLike] # pragma: <=35 +else: + Resource = str # pragma: >=36 + + +def open_binary(package: Package, resource: Resource) -> BinaryIO: + """Return a file-like object opened for binary reading of the resource.""" + resource = _common.normalize_path(resource) + package = _common.get_package(package) + reader = _common.get_resource_reader(package) + if reader is not None: + return reader.open_resource(resource) + # Using pathlib doesn't work well here due to the lack of 'strict' + # argument for pathlib.Path.resolve() prior to Python 3.6. + absolute_package_path = os.path.abspath( + package.__spec__.origin or 'non-existent file') + package_path = os.path.dirname(absolute_package_path) + full_path = os.path.join(package_path, resource) + try: + return open(full_path, mode='rb') + except OSError: + # Just assume the loader is a resource loader; all the relevant + # importlib.machinery loaders are and an AttributeError for + # get_data() will make it clear what is needed from the loader. + loader = cast(ResourceLoader, package.__spec__.loader) + data = None + if hasattr(package.__spec__.loader, 'get_data'): + with suppress(OSError): + data = loader.get_data(full_path) + if data is None: + package_name = package.__spec__.name + message = '{!r} resource not found in {!r}'.format( + resource, package_name) + raise FileNotFoundError(message) + return BytesIO(data) + + +def open_text(package: Package, + resource: Resource, + encoding: str = 'utf-8', + errors: str = 'strict') -> TextIO: + """Return a file-like object opened for text reading of the resource.""" + return TextIOWrapper( + open_binary(package, resource), encoding=encoding, errors=errors) + + +def read_binary(package: Package, resource: Resource) -> bytes: + """Return the binary contents of the resource.""" + with open_binary(package, resource) as fp: + return fp.read() + + +def read_text(package: Package, + resource: Resource, + encoding: str = 'utf-8', + errors: str = 'strict') -> str: + """Return the decoded string of the resource. + + The decoding-related arguments have the same semantics as those of + bytes.decode(). + """ + with open_text(package, resource, encoding, errors) as fp: + return fp.read() + + +def path( + package: Package, resource: Resource, + ) -> 'ContextManager[Path]': + """A context manager providing a file path object to the resource. + + If the resource does not already exist on its own on the file system, + a temporary file will be created. If the file was created, the file + will be deleted upon exiting the context manager (no exception is + raised if the file was deleted prior to the context manager + exiting). + """ + reader = _common.get_resource_reader(_common.get_package(package)) + return ( + _path_from_reader(reader, resource) + if reader else + _common.as_file( + _common.files(package).joinpath(_common.normalize_path(resource))) + ) + + +@contextmanager +def _path_from_reader(reader, resource): + norm_resource = _common.normalize_path(resource) + with suppress(FileNotFoundError): + yield Path(reader.resource_path(norm_resource)) + return + opener_reader = reader.open_resource(norm_resource) + with _common._tempfile(opener_reader.read, suffix=norm_resource) as res: + yield res + + +def is_resource(package: Package, name: str) -> bool: + """True if `name` is a resource inside `package`. + + Directories are *not* resources. + """ + package = _common.get_package(package) + _common.normalize_path(name) + reader = _common.get_resource_reader(package) + if reader is not None: + return reader.is_resource(name) + package_contents = set(contents(package)) + if name not in package_contents: + return False + return (_common.from_package(package) / name).is_file() + + +def contents(package: Package) -> Iterable[str]: + """Return an iterable of entries in `package`. + + Note that not all entries are resources. Specifically, directories are + not considered resources. Use `is_resource()` on each entry returned here + to check if it is a resource or not. + """ + package = _common.get_package(package) + reader = _common.get_resource_reader(package) + if reader is not None: + return reader.contents() + # Is the package a namespace package? By definition, namespace packages + # cannot have resources. + namespace = ( + package.__spec__.origin is None or + package.__spec__.origin == 'namespace' + ) + if namespace or not package.__spec__.has_location: + return () + return list(item.name for item in _common.from_package(package).iterdir()) diff --git a/venv/Lib/site-packages/importlib_resources/abc.py b/venv/Lib/site-packages/importlib_resources/abc.py new file mode 100644 index 00000000..18bc4ef8 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/abc.py @@ -0,0 +1,142 @@ +from __future__ import absolute_import + +import abc + +from ._compat import ABC, FileNotFoundError, runtime_checkable, Protocol + +# Use mypy's comment syntax for Python 2 compatibility +try: + from typing import BinaryIO, Iterable, Text +except ImportError: + pass + + +class ResourceReader(ABC): + """Abstract base class for loaders to provide resource reading support.""" + + @abc.abstractmethod + def open_resource(self, resource): + # type: (Text) -> BinaryIO + """Return an opened, file-like object for binary reading. + + The 'resource' argument is expected to represent only a file name. + If the resource cannot be found, FileNotFoundError is raised. + """ + # This deliberately raises FileNotFoundError instead of + # NotImplementedError so that if this method is accidentally called, + # it'll still do the right thing. + raise FileNotFoundError + + @abc.abstractmethod + def resource_path(self, resource): + # type: (Text) -> Text + """Return the file system path to the specified resource. + + The 'resource' argument is expected to represent only a file name. + If the resource does not exist on the file system, raise + FileNotFoundError. + """ + # This deliberately raises FileNotFoundError instead of + # NotImplementedError so that if this method is accidentally called, + # it'll still do the right thing. + raise FileNotFoundError + + @abc.abstractmethod + def is_resource(self, path): + # type: (Text) -> bool + """Return True if the named 'path' is a resource. + + Files are resources, directories are not. + """ + raise FileNotFoundError + + @abc.abstractmethod + def contents(self): + # type: () -> Iterable[str] + """Return an iterable of entries in `package`.""" + raise FileNotFoundError + + +@runtime_checkable +class Traversable(Protocol): + """ + An object with a subset of pathlib.Path methods suitable for + traversing directories and opening files. + """ + + @abc.abstractmethod + def iterdir(self): + """ + Yield Traversable objects in self + """ + + @abc.abstractmethod + def read_bytes(self): + """ + Read contents of self as bytes + """ + + @abc.abstractmethod + def read_text(self, encoding=None): + """ + Read contents of self as bytes + """ + + @abc.abstractmethod + def is_dir(self): + """ + Return True if self is a dir + """ + + @abc.abstractmethod + def is_file(self): + """ + Return True if self is a file + """ + + @abc.abstractmethod + def joinpath(self, child): + """ + Return Traversable child in self + """ + + @abc.abstractmethod + def __truediv__(self, child): + """ + Return Traversable child in self + """ + + @abc.abstractmethod + def open(self, mode='r', *args, **kwargs): + """ + mode may be 'r' or 'rb' to open as text or binary. Return a handle + suitable for reading (same as pathlib.Path.open). + + When opening as text, accepts encoding parameters such as those + accepted by io.TextIOWrapper. + """ + + @abc.abstractproperty + def name(self): + # type: () -> str + """ + The base name of this object without any parent references. + """ + + +class TraversableResources(ResourceReader): + @abc.abstractmethod + def files(self): + """Return a Traversable object for the loaded package.""" + + def open_resource(self, resource): + return self.files().joinpath(resource).open('rb') + + def resource_path(self, resource): + raise FileNotFoundError(resource) + + def is_resource(self, path): + return self.files().joinpath(path).is_file() + + def contents(self): + return (item.name for item in self.files().iterdir()) diff --git a/venv/Lib/site-packages/importlib_resources/py.typed b/venv/Lib/site-packages/importlib_resources/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/readers.py b/venv/Lib/site-packages/importlib_resources/readers.py new file mode 100644 index 00000000..0e0b17ab --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/readers.py @@ -0,0 +1,41 @@ +from . import abc + +from ._compat import Path, ZipPath + + +class FileReader(abc.TraversableResources): + def __init__(self, loader): + self.path = Path(loader.path).parent + + def resource_path(self, resource): + """ + Return the file system path to prevent + `resources.path()` from creating a temporary + copy. + """ + return str(self.path.joinpath(resource)) + + def files(self): + return self.path + + +class ZipReader(abc.TraversableResources): + def __init__(self, loader, module): + _, _, name = module.rpartition('.') + prefix = loader.prefix.replace('\\', '/') + name + '/' + self.path = ZipPath(loader.archive, prefix) + + def open_resource(self, resource): + try: + return super().open_resource(resource) + except KeyError as exc: + raise FileNotFoundError(exc.args[0]) + + def is_resource(self, path): + # workaround for `zipfile.Path.is_file` returning true + # for non-existent paths. + target = self.files().joinpath(path) + return target.is_file() and target.exists() + + def files(self): + return self.path diff --git a/venv/Lib/site-packages/importlib_resources/tests/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data01/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data01/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data01/binary.file b/venv/Lib/site-packages/importlib_resources/tests/data01/binary.file new file mode 100644 index 0000000000000000000000000000000000000000..eaf36c1daccfdf325514461cd1a2ffbc139b5464 GIT binary patch literal 4 LcmZQzWMT#Y01f~L literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/importlib_resources/tests/data01/subdirectory/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data01/subdirectory/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data01/subdirectory/binary.file b/venv/Lib/site-packages/importlib_resources/tests/data01/subdirectory/binary.file new file mode 100644 index 0000000000000000000000000000000000000000..eaf36c1daccfdf325514461cd1a2ffbc139b5464 GIT binary patch literal 4 LcmZQzWMT#Y01f~L literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/importlib_resources/tests/data01/utf-16.file b/venv/Lib/site-packages/importlib_resources/tests/data01/utf-16.file new file mode 100644 index 0000000000000000000000000000000000000000..2cb772295ef4b480a8d83725bd5006a0236d8f68 GIT binary patch literal 44 ucmezW&x0YAAqNQa8FUyF7(y9B7~B|i84MZBfV^^`Xc15@g+Y;liva-T)Ce>H literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/importlib_resources/tests/data01/utf-8.file b/venv/Lib/site-packages/importlib_resources/tests/data01/utf-8.file new file mode 100644 index 00000000..1c0132ad --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/data01/utf-8.file @@ -0,0 +1 @@ +Hello, UTF-8 world! diff --git a/venv/Lib/site-packages/importlib_resources/tests/data02/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data02/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data02/one/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data02/one/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data02/one/resource1.txt b/venv/Lib/site-packages/importlib_resources/tests/data02/one/resource1.txt new file mode 100644 index 00000000..61a813e4 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/data02/one/resource1.txt @@ -0,0 +1 @@ +one resource diff --git a/venv/Lib/site-packages/importlib_resources/tests/data02/two/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data02/two/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data02/two/resource2.txt b/venv/Lib/site-packages/importlib_resources/tests/data02/two/resource2.txt new file mode 100644 index 00000000..a80ce46e --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/data02/two/resource2.txt @@ -0,0 +1 @@ +two resource diff --git a/venv/Lib/site-packages/importlib_resources/tests/data03/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data03/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data03/namespace/portion1/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data03/namespace/portion1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data03/namespace/portion2/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/data03/namespace/portion2/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/data03/namespace/resource1.txt b/venv/Lib/site-packages/importlib_resources/tests/data03/namespace/resource1.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/test_files.py b/venv/Lib/site-packages/importlib_resources/tests/test_files.py new file mode 100644 index 00000000..5a9cf9c7 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/test_files.py @@ -0,0 +1,39 @@ +import typing +import unittest + +import importlib_resources as resources +from importlib_resources.abc import Traversable +from . import data01 +from . import util + + +class FilesTests: + def test_read_bytes(self): + files = resources.files(self.data) + actual = files.joinpath('utf-8.file').read_bytes() + assert actual == b'Hello, UTF-8 world!\n' + + def test_read_text(self): + files = resources.files(self.data) + actual = files.joinpath('utf-8.file').read_text() + assert actual == 'Hello, UTF-8 world!\n' + + @unittest.skipUnless( + hasattr(typing, 'runtime_checkable'), + "Only suitable when typing supports runtime_checkable", + ) + def test_traversable(self): + assert isinstance(resources.files(self.data), Traversable) + + +class OpenDiskTests(FilesTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class OpenZipTests(FilesTests, util.ZipSetup, unittest.TestCase): + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/venv/Lib/site-packages/importlib_resources/tests/test_open.py b/venv/Lib/site-packages/importlib_resources/tests/test_open.py new file mode 100644 index 00000000..8a3429f2 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/test_open.py @@ -0,0 +1,73 @@ +import unittest + +import importlib_resources as resources +from . import data01 +from . import util +from .._compat import FileNotFoundError + + +class CommonBinaryTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + with resources.open_binary(package, path): + pass + + +class CommonTextTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + with resources.open_text(package, path): + pass + + +class OpenTests: + def test_open_binary(self): + with resources.open_binary(self.data, 'utf-8.file') as fp: + result = fp.read() + self.assertEqual(result, b'Hello, UTF-8 world!\n') + + def test_open_text_default_encoding(self): + with resources.open_text(self.data, 'utf-8.file') as fp: + result = fp.read() + self.assertEqual(result, 'Hello, UTF-8 world!\n') + + def test_open_text_given_encoding(self): + with resources.open_text( + self.data, 'utf-16.file', 'utf-16', 'strict') as fp: + result = fp.read() + self.assertEqual(result, 'Hello, UTF-16 world!\n') + + def test_open_text_with_errors(self): + # Raises UnicodeError without the 'errors' argument. + with resources.open_text( + self.data, 'utf-16.file', 'utf-8', 'strict') as fp: + self.assertRaises(UnicodeError, fp.read) + with resources.open_text( + self.data, 'utf-16.file', 'utf-8', 'ignore') as fp: + result = fp.read() + self.assertEqual( + result, + 'H\x00e\x00l\x00l\x00o\x00,\x00 ' + '\x00U\x00T\x00F\x00-\x001\x006\x00 ' + '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00') + + def test_open_binary_FileNotFoundError(self): + self.assertRaises( + FileNotFoundError, + resources.open_binary, self.data, 'does-not-exist') + + def test_open_text_FileNotFoundError(self): + self.assertRaises( + FileNotFoundError, + resources.open_text, self.data, 'does-not-exist') + + +class OpenDiskTests(OpenTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class OpenZipTests(OpenTests, util.ZipSetup, unittest.TestCase): + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/venv/Lib/site-packages/importlib_resources/tests/test_path.py b/venv/Lib/site-packages/importlib_resources/tests/test_path.py new file mode 100644 index 00000000..943b3752 --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/test_path.py @@ -0,0 +1,51 @@ +import unittest + +import importlib_resources as resources +from . import data01 +from . import util + + +class CommonTests(util.CommonTests, unittest.TestCase): + + def execute(self, package, path): + with resources.path(package, path): + pass + + +class PathTests: + + def test_reading(self): + # Path should be readable. + # Test also implicitly verifies the returned object is a pathlib.Path + # instance. + with resources.path(self.data, 'utf-8.file') as path: + self.assertTrue(path.name.endswith("utf-8.file"), repr(path)) + # pathlib.Path.read_text() was introduced in Python 3.5. + with path.open('r', encoding='utf-8') as file: + text = file.read() + self.assertEqual('Hello, UTF-8 world!\n', text) + + +class PathDiskTests(PathTests, unittest.TestCase): + data = data01 + + def test_natural_path(self): + """ + Guarantee the internal implementation detail that + file-system-backed resources do not get the tempdir + treatment. + """ + with resources.path(self.data, 'utf-8.file') as path: + assert 'data' in str(path) + + +class PathZipTests(PathTests, util.ZipSetup, unittest.TestCase): + def test_remove_in_context_manager(self): + # It is not an error if the file that was temporarily stashed on the + # file system is removed inside the `with` stanza. + with resources.path(self.data, 'utf-8.file') as path: + path.unlink() + + +if __name__ == '__main__': + unittest.main() diff --git a/venv/Lib/site-packages/importlib_resources/tests/test_read.py b/venv/Lib/site-packages/importlib_resources/tests/test_read.py new file mode 100644 index 00000000..ee94d8ad --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/test_read.py @@ -0,0 +1,63 @@ +import unittest +import importlib_resources as resources + +from . import data01 +from . import util +from importlib import import_module + + +class CommonBinaryTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + resources.read_binary(package, path) + + +class CommonTextTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + resources.read_text(package, path) + + +class ReadTests: + def test_read_binary(self): + result = resources.read_binary(self.data, 'binary.file') + self.assertEqual(result, b'\0\1\2\3') + + def test_read_text_default_encoding(self): + result = resources.read_text(self.data, 'utf-8.file') + self.assertEqual(result, 'Hello, UTF-8 world!\n') + + def test_read_text_given_encoding(self): + result = resources.read_text( + self.data, 'utf-16.file', encoding='utf-16') + self.assertEqual(result, 'Hello, UTF-16 world!\n') + + def test_read_text_with_errors(self): + # Raises UnicodeError without the 'errors' argument. + self.assertRaises( + UnicodeError, resources.read_text, self.data, 'utf-16.file') + result = resources.read_text(self.data, 'utf-16.file', errors='ignore') + self.assertEqual( + result, + 'H\x00e\x00l\x00l\x00o\x00,\x00 ' + '\x00U\x00T\x00F\x00-\x001\x006\x00 ' + '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00') + + +class ReadDiskTests(ReadTests, unittest.TestCase): + data = data01 + + +class ReadZipTests(ReadTests, util.ZipSetup, unittest.TestCase): + def test_read_submodule_resource(self): + submodule = import_module('ziptestdata.subdirectory') + result = resources.read_binary( + submodule, 'binary.file') + self.assertEqual(result, b'\0\1\2\3') + + def test_read_submodule_resource_by_name(self): + result = resources.read_binary( + 'ziptestdata.subdirectory', 'binary.file') + self.assertEqual(result, b'\0\1\2\3') + + +if __name__ == '__main__': + unittest.main() diff --git a/venv/Lib/site-packages/importlib_resources/tests/test_resource.py b/venv/Lib/site-packages/importlib_resources/tests/test_resource.py new file mode 100644 index 00000000..8c5a72cb --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/test_resource.py @@ -0,0 +1,170 @@ +import sys +import unittest +import importlib_resources as resources + +from . import data01 +from . import zipdata01, zipdata02 +from . import util +from importlib import import_module + + +class ResourceTests: + # Subclasses are expected to set the `data` attribute. + + def test_is_resource_good_path(self): + self.assertTrue(resources.is_resource(self.data, 'binary.file')) + + def test_is_resource_missing(self): + self.assertFalse(resources.is_resource(self.data, 'not-a-file')) + + def test_is_resource_subresource_directory(self): + # Directories are not resources. + self.assertFalse(resources.is_resource(self.data, 'subdirectory')) + + def test_contents(self): + contents = set(resources.contents(self.data)) + # There may be cruft in the directory listing of the data directory. + # Under Python 3 we could have a __pycache__ directory, and under + # Python 2 we could have .pyc files. These are both artifacts of the + # test suite importing these modules and writing these caches. They + # aren't germane to this test, so just filter them out. + contents.discard('__pycache__') + contents.discard('__init__.pyc') + contents.discard('__init__.pyo') + self.assertEqual(contents, { + '__init__.py', + 'subdirectory', + 'utf-8.file', + 'binary.file', + 'utf-16.file', + }) + + +class ResourceDiskTests(ResourceTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class ResourceZipTests(ResourceTests, util.ZipSetup, unittest.TestCase): + pass + + +@unittest.skipIf(sys.version_info < (3,), 'No ResourceReader in Python 2') +class ResourceLoaderTests(unittest.TestCase): + def test_resource_contents(self): + package = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C']) + self.assertEqual( + set(resources.contents(package)), + {'A', 'B', 'C'}) + + def test_resource_is_resource(self): + package = util.create_package( + file=data01, path=data01.__file__, + contents=['A', 'B', 'C', 'D/E', 'D/F']) + self.assertTrue(resources.is_resource(package, 'B')) + + def test_resource_directory_is_not_resource(self): + package = util.create_package( + file=data01, path=data01.__file__, + contents=['A', 'B', 'C', 'D/E', 'D/F']) + self.assertFalse(resources.is_resource(package, 'D')) + + def test_resource_missing_is_not_resource(self): + package = util.create_package( + file=data01, path=data01.__file__, + contents=['A', 'B', 'C', 'D/E', 'D/F']) + self.assertFalse(resources.is_resource(package, 'Z')) + + +class ResourceCornerCaseTests(unittest.TestCase): + def test_package_has_no_reader_fallback(self): + # Test odd ball packages which: + # 1. Do not have a ResourceReader as a loader + # 2. Are not on the file system + # 3. Are not in a zip file + module = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C']) + # Give the module a dummy loader. + module.__loader__ = object() + # Give the module a dummy origin. + module.__file__ = '/path/which/shall/not/be/named' + if sys.version_info >= (3,): + module.__spec__.loader = module.__loader__ + module.__spec__.origin = module.__file__ + self.assertFalse(resources.is_resource(module, 'A')) + + +class ResourceFromZipsTest01(util.ZipSetupBase, unittest.TestCase): + ZIP_MODULE = zipdata01 # type: ignore + + def test_is_submodule_resource(self): + submodule = import_module('ziptestdata.subdirectory') + self.assertTrue( + resources.is_resource(submodule, 'binary.file')) + + def test_read_submodule_resource_by_name(self): + self.assertTrue( + resources.is_resource('ziptestdata.subdirectory', 'binary.file')) + + def test_submodule_contents(self): + submodule = import_module('ziptestdata.subdirectory') + self.assertEqual( + set(resources.contents(submodule)), + {'__init__.py', 'binary.file'}) + + def test_submodule_contents_by_name(self): + self.assertEqual( + set(resources.contents('ziptestdata.subdirectory')), + {'__init__.py', 'binary.file'}) + + +class ResourceFromZipsTest02(util.ZipSetupBase, unittest.TestCase): + ZIP_MODULE = zipdata02 # type: ignore + + def test_unrelated_contents(self): + # https://gitlab.com/python-devs/importlib_resources/issues/44 + # + # Here we have a zip file with two unrelated subpackages. The bug + # reports that getting the contents of a resource returns unrelated + # files. + self.assertEqual( + set(resources.contents('ziptestdata.one')), + {'__init__.py', 'resource1.txt'}) + self.assertEqual( + set(resources.contents('ziptestdata.two')), + {'__init__.py', 'resource2.txt'}) + + +@unittest.skipIf(sys.version_info < (3,), 'No namespace packages in Python 2') +class NamespaceTest(unittest.TestCase): + def test_namespaces_cannot_have_resources(self): + contents = resources.contents( + 'importlib_resources.tests.data03.namespace') + self.assertFalse(list(contents)) + # Even though there is a file in the namespace directory, it is not + # considered a resource, since namespace packages can't have them. + self.assertFalse(resources.is_resource( + 'importlib_resources.tests.data03.namespace', + 'resource1.txt')) + # We should get an exception if we try to read it or open it. + self.assertRaises( + FileNotFoundError, + resources.open_text, + 'importlib_resources.tests.data03.namespace', 'resource1.txt') + self.assertRaises( + FileNotFoundError, + resources.open_binary, + 'importlib_resources.tests.data03.namespace', 'resource1.txt') + self.assertRaises( + FileNotFoundError, + resources.read_text, + 'importlib_resources.tests.data03.namespace', 'resource1.txt') + self.assertRaises( + FileNotFoundError, + resources.read_binary, + 'importlib_resources.tests.data03.namespace', 'resource1.txt') + + +if __name__ == '__main__': + unittest.main() diff --git a/venv/Lib/site-packages/importlib_resources/tests/util.py b/venv/Lib/site-packages/importlib_resources/tests/util.py new file mode 100644 index 00000000..8c26496d --- /dev/null +++ b/venv/Lib/site-packages/importlib_resources/tests/util.py @@ -0,0 +1,213 @@ +import abc +import importlib +import io +import sys +import types +import unittest + +from . import data01 +from . import zipdata01 +from .._compat import ABC, Path, PurePath, FileNotFoundError +from ..abc import ResourceReader + +try: + from test.support import modules_setup, modules_cleanup +except ImportError: + # Python 2.7. + def modules_setup(): + return sys.modules.copy(), + + def modules_cleanup(oldmodules): + # Encoders/decoders are registered permanently within the internal + # codec cache. If we destroy the corresponding modules their + # globals will be set to None which will trip up the cached functions. + encodings = [(k, v) for k, v in sys.modules.items() + if k.startswith('encodings.')] + sys.modules.clear() + sys.modules.update(encodings) + # XXX: This kind of problem can affect more than just encodings. In + # particular extension modules (such as _ssl) don't cope with reloading + # properly. Really, test modules should be cleaning out the test + # specific modules they know they added (ala test_runpy) rather than + # relying on this function (as test_importhooks and test_pkg do + # currently). Implicitly imported *real* modules should be left alone + # (see issue 10556). + sys.modules.update(oldmodules) + + +try: + from importlib.machinery import ModuleSpec +except ImportError: + ModuleSpec = None # type: ignore + + +def create_package(file, path, is_package=True, contents=()): + class Reader(ResourceReader): + def get_resource_reader(self, package): + return self + + def open_resource(self, path): + self._path = path + if isinstance(file, Exception): + raise file + else: + return file + + def resource_path(self, path_): + self._path = path_ + if isinstance(path, Exception): + raise path + else: + return path + + def is_resource(self, path_): + self._path = path_ + if isinstance(path, Exception): + raise path + for entry in contents: + parts = entry.split('/') + if len(parts) == 1 and parts[0] == path_: + return True + return False + + def contents(self): + if isinstance(path, Exception): + raise path + # There's no yield from in baseball, er, Python 2. + for entry in contents: + yield entry + + name = 'testingpackage' + # Unforunately importlib.util.module_from_spec() was not introduced until + # Python 3.5. + module = types.ModuleType(name) + if ModuleSpec is None: + # Python 2. + module.__name__ = name + module.__file__ = 'does-not-exist' + if is_package: + module.__path__ = [] + else: + # Python 3. + loader = Reader() + spec = ModuleSpec( + name, loader, + origin='does-not-exist', + is_package=is_package) + module.__spec__ = spec + module.__loader__ = loader + return module + + +class CommonTests(ABC): + + @abc.abstractmethod + def execute(self, package, path): + raise NotImplementedError + + def test_package_name(self): + # Passing in the package name should succeed. + self.execute(data01.__name__, 'utf-8.file') + + def test_package_object(self): + # Passing in the package itself should succeed. + self.execute(data01, 'utf-8.file') + + def test_string_path(self): + # Passing in a string for the path should succeed. + path = 'utf-8.file' + self.execute(data01, path) + + @unittest.skipIf(sys.version_info < (3, 6), 'requires os.PathLike support') + def test_pathlib_path(self): + # Passing in a pathlib.PurePath object for the path should succeed. + path = PurePath('utf-8.file') + self.execute(data01, path) + + def test_absolute_path(self): + # An absolute path is a ValueError. + path = Path(__file__) + full_path = path.parent/'utf-8.file' + with self.assertRaises(ValueError): + self.execute(data01, full_path) + + def test_relative_path(self): + # A reative path is a ValueError. + with self.assertRaises(ValueError): + self.execute(data01, '../data01/utf-8.file') + + def test_importing_module_as_side_effect(self): + # The anchor package can already be imported. + del sys.modules[data01.__name__] + self.execute(data01.__name__, 'utf-8.file') + + def test_non_package_by_name(self): + # The anchor package cannot be a module. + with self.assertRaises(TypeError): + self.execute(__name__, 'utf-8.file') + + def test_non_package_by_package(self): + # The anchor package cannot be a module. + with self.assertRaises(TypeError): + module = sys.modules['importlib_resources.tests.util'] + self.execute(module, 'utf-8.file') + + @unittest.skipIf(sys.version_info < (3,), 'No ResourceReader in Python 2') + def test_resource_opener(self): + bytes_data = io.BytesIO(b'Hello, world!') + package = create_package(file=bytes_data, path=FileNotFoundError()) + self.execute(package, 'utf-8.file') + self.assertEqual(package.__loader__._path, 'utf-8.file') + + @unittest.skipIf(sys.version_info < (3,), 'No ResourceReader in Python 2') + def test_resource_path(self): + bytes_data = io.BytesIO(b'Hello, world!') + path = __file__ + package = create_package(file=bytes_data, path=path) + self.execute(package, 'utf-8.file') + self.assertEqual(package.__loader__._path, 'utf-8.file') + + def test_useless_loader(self): + package = create_package(file=FileNotFoundError(), + path=FileNotFoundError()) + with self.assertRaises(FileNotFoundError): + self.execute(package, 'utf-8.file') + + +class ZipSetupBase: + ZIP_MODULE = None + + @classmethod + def setUpClass(cls): + data_path = Path(cls.ZIP_MODULE.__file__) + data_dir = data_path.parent + cls._zip_path = str(data_dir / 'ziptestdata.zip') + sys.path.append(cls._zip_path) + cls.data = importlib.import_module('ziptestdata') + + @classmethod + def tearDownClass(cls): + try: + sys.path.remove(cls._zip_path) + except ValueError: + pass + + try: + del sys.path_importer_cache[cls._zip_path] + del sys.modules[cls.data.__name__] + except KeyError: + pass + + try: + del cls.data + del cls._zip_path + except AttributeError: + pass + + def setUp(self): + modules = modules_setup() + self.addCleanup(modules_cleanup, *modules) + + +class ZipSetup(ZipSetupBase): + ZIP_MODULE = zipdata01 # type: ignore diff --git a/venv/Lib/site-packages/importlib_resources/tests/zipdata01/__init__.py b/venv/Lib/site-packages/importlib_resources/tests/zipdata01/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/importlib_resources/tests/zipdata01/ziptestdata.zip b/venv/Lib/site-packages/importlib_resources/tests/zipdata01/ziptestdata.zip new file mode 100644 index 0000000000000000000000000000000000000000..12f7872cd596ace39602223cc127ad6c13bbca89 GIT binary patch literal 1131 zcmaJf(O}q#y>WP~hS1_KM0; zZZ9ZMoby*q+jcU^M!lRZCWnq|8>yJcgV5iQg=(7BvzVsk`Xdpvb$K(1B8*Z7wXI&u z9nGslC>#lZwb`ATC>_0DAc%4YledMdrbk{kVrS>iO&!0PM+nyvrbi_Wfa5fs)Y7dbLRJa2Gynh4&re;NK57z)QD%O}fMH67EA*Tv15S`|s;=?O?$3rK!uN#^h| z^rj*3V>+JUmKVZ#EtBxBh$Jr(31Gw*zAHbvki50HhIS zpApCbKmlY2FfxfS;|@5WZ@^$lBZ$HojJOQ}1tbhCX*2~gkqyBJR#bz~0~TRW9u|XO zz61wzfH$g9Fs&dO)lJ*bjKT +Akihiro Motoki +Alex Gaynor +Alexander Makarov +Alfredo Moralejo +Andreas Jaeger +Andreas Jaeger +Andrew Bogott +Angus Salkeld +Anthony Young +Attila Fazekas +Ben Nemec +Bhuvan Arumugam +Brandon LeBlanc +Brant Knudson +Brian Waldon +Cao Xuan Hoang +Chang Bo Guo +ChangBo Guo(gcb) +Chris Dent +Christian Berendt +Chuck Short +Clark Boylan +Claudiu Popa +Corey Bryant +Dan Prince +Darragh Bailey +Davanum Srinivas +Dave Walker (Daviey) +David Ripton +David Stanek +Dennis Verspuij +Devananda van der Veen +Dirk Mueller +Doug Hellmann +Doug Hellmann +Doug Hellmann +Dougal Matthews +Elena Ezhova +Eoghan Glynn +Eric Windisch +Erik M. Bray +Eugene Kirpichov +Florian Wilhelm +Gaetan Semet +Gage Hugo +Gary Kotton +Giampaolo Lauria +Hervé Beraud +Ian Cordasco +Ian Wienand +Ian Y. Choi +Ionuț Arțăriși +James E. Blair +James Polley +Jason Kölker +Jason R. Coombs +Jay Pipes +Jeremy Stanley +Joe D'Andrea +Joe Gordon +Joe Gordon +Joe Heck +Johannes Erdfelt +Joshua Harlow +Joshua Harlow +Joshua Harlow +Julien Danjou +Kevin McCarthy +Khai Do +Laurence Miao +Lucian Petrut +Luo Gangyi +Marc Abramowitz +Mark McLoughlin +Mark Sienkiewicz +Martin Domke +Maru Newby +Masaki Matsushita +Matt Riedemann +Matthew Montgomery +Matthew Treinish +Matthew Treinish +Mehdi Abaakouk +Michael Basnight +Michael Still +Mike Heald +Moises Guimaraes de Medeiros +Monty Taylor +Nikhil Manchanda +Octavian Ciuhandu +Ondřej Nový +Paul Belanger +Rajaram Mallya +Rajath Agasthya +Ralf Haferkamp +Randall Nortman +Rick Harris +Robert Collins +Robert Myers +Roger Luethi +Ronald Bradford +Ruby Loo +Russell Bryant +Ryan Bourgeois +Ryan Petrello +Sachi King +Sascha Peilicke +Sean Dague +Sean Dague +Sean McGinnis +Sergey Lukjanov +Sorin Sbarnea +Stephen Finucane +Stephen Finucane +Steve Kowalik +Steve Martinelli +Steven Hardy +Thomas Bechtold +Thomas Goirand +Thomas Grainger +Thomas Herve +Thomas Leaman +Thomas Morin +Tim Burke +Tim Simpson +Timothy Chavez +Toilal +Vasudev Kamath +Vincent Untz +Vishvananda Ishaya +Wei Tie +Will Szumski +YAMAMOTO Takashi +Yaguang Tang +Yuriy Taraday +Zhongyue Luo +alexpilotti +cbjchen@cn.ibm.com +dineshbhor +jiansong +lifeless +melanie witt +melissaml +nizam +qingszhao +weiweigu +xuanyandong +zhangyangyang +zhangyanxian diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/INSTALLER b/venv/Lib/site-packages/pbr-5.4.5.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/LICENSE b/venv/Lib/site-packages/pbr-5.4.5.dist-info/LICENSE new file mode 100644 index 00000000..68c771a0 --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/LICENSE @@ -0,0 +1,176 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/METADATA b/venv/Lib/site-packages/pbr-5.4.5.dist-info/METADATA new file mode 100644 index 00000000..b685152a --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/METADATA @@ -0,0 +1,73 @@ +Metadata-Version: 2.1 +Name: pbr +Version: 5.4.5 +Summary: Python Build Reasonableness +Home-page: https://docs.openstack.org/pbr/latest/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Project-URL: Bug Tracker, https://bugs.launchpad.net/pbr/ +Project-URL: Documentation, https://docs.openstack.org/pbr/ +Project-URL: Source Code, https://git.openstack.org/cgit/openstack-dev/pbr/ +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Environment :: OpenStack +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Information Technology +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Description-Content-Type: text/x-rst; charset=UTF-8 + +Introduction +============ + +.. image:: https://img.shields.io/pypi/v/pbr.svg + :target: https://pypi.python.org/pypi/pbr/ + :alt: Latest Version + +.. image:: https://img.shields.io/pypi/dm/pbr.svg + :target: https://pypi.python.org/pypi/pbr/ + :alt: Downloads + +PBR is a library that injects some useful and sensible default behaviors +into your setuptools run. It started off life as the chunks of code that +were copied between all of the `OpenStack`_ projects. Around the time that +OpenStack hit 18 different projects each with at least 3 active branches, +it seemed like a good time to make that code into a proper reusable library. + +PBR is only mildly configurable. The basic idea is that there's a decent +way to run things and if you do, you should reap the rewards, because then +it's simple and repeatable. If you want to do things differently, cool! But +you've already got the power of Python at your fingertips, so you don't +really need PBR. + +PBR builds on top of the work that `d2to1`_ started to provide for declarative +configuration. `d2to1`_ is itself an implementation of the ideas behind +`distutils2`_. Although `distutils2`_ is now abandoned in favor of work towards +`PEP 426`_ and Metadata 2.0, declarative config is still a great idea and +specifically important in trying to distribute setup code as a library +when that library itself will alter how the setup is processed. As Metadata +2.0 and other modern Python packaging PEPs come out, PBR aims to support +them as quickly as possible. + +* License: Apache License, Version 2.0 +* Documentation: https://docs.openstack.org/pbr/latest/ +* Source: https://git.openstack.org/cgit/openstack-dev/pbr +* Bugs: https://bugs.launchpad.net/pbr +* Change Log: https://docs.openstack.org/pbr/latest/user/history.html + +.. _d2to1: https://pypi.python.org/pypi/d2to1 +.. _distutils2: https://pypi.python.org/pypi/Distutils2 +.. _PEP 426: http://legacy.python.org/dev/peps/pep-0426/ +.. _OpenStack: https://www.openstack.org/ + + + diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/RECORD b/venv/Lib/site-packages/pbr-5.4.5.dist-info/RECORD new file mode 100644 index 00000000..587394d7 --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/RECORD @@ -0,0 +1,110 @@ +../../Scripts/pbr.exe,sha256=xSTRYFoiZWuU4uQQmfDGukcPDp85nNgJaPPwblM1joc,106363 +pbr-5.4.5.dist-info/AUTHORS,sha256=Wsbu3DWgLA9h0veSbQmLUhuog5Uqrj8tkQAApWQxghc,5598 +pbr-5.4.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pbr-5.4.5.dist-info/LICENSE,sha256=XfKg2H1sVi8OoRxoisUlMqoo10TKvHmU_wU39ks7MyA,10143 +pbr-5.4.5.dist-info/METADATA,sha256=oD8D24XnlowVjZMrRXJ8tt88Lql0l8dKAKpOdOwbJXw,3140 +pbr-5.4.5.dist-info/RECORD,, +pbr-5.4.5.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +pbr-5.4.5.dist-info/entry_points.txt,sha256=QHw3RnItVVy03jocQCjhoKUiyKjBwiPBhJszz-i5YMg,149 +pbr-5.4.5.dist-info/top_level.txt,sha256=X3Q9Vhf2YxJul564xso0UcL55u9D75jaBuGZedivUyE,4 +pbr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/__pycache__/__init__.cpython-36.pyc,, +pbr/__pycache__/builddoc.cpython-36.pyc,, +pbr/__pycache__/core.cpython-36.pyc,, +pbr/__pycache__/extra_files.cpython-36.pyc,, +pbr/__pycache__/find_package.cpython-36.pyc,, +pbr/__pycache__/git.cpython-36.pyc,, +pbr/__pycache__/options.cpython-36.pyc,, +pbr/__pycache__/packaging.cpython-36.pyc,, +pbr/__pycache__/pbr_json.cpython-36.pyc,, +pbr/__pycache__/sphinxext.cpython-36.pyc,, +pbr/__pycache__/testr_command.cpython-36.pyc,, +pbr/__pycache__/util.cpython-36.pyc,, +pbr/__pycache__/version.cpython-36.pyc,, +pbr/builddoc.py,sha256=SenZnqZuAW24hf8AWNb17PbY8_j3hT6gaB5vqbpV8n0,11915 +pbr/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/cmd/__pycache__/__init__.cpython-36.pyc,, +pbr/cmd/__pycache__/main.cpython-36.pyc,, +pbr/cmd/main.py,sha256=UVyJSnoMiVoXLQzuGQ6e8C4fEJnou1gjwkyKi-ZSsDs,3695 +pbr/core.py,sha256=5XOb58Wgj_cfjSgXQa7Aume11Jjd5L3Xtz2FDUAE9Tc,5945 +pbr/extra_files.py,sha256=7raV9bomd_Z0adKFUa_qBN-ZMbtnlDbxoc9e0gFib7s,1096 +pbr/find_package.py,sha256=u8Xm8Z9CQYLBBBWNrHi7YUGS1vhetw1CdYNuv2RpvJI,1043 +pbr/git.py,sha256=azhqYP1EalleraiAjxK9ETkSeQwJtU6eaaOQONC2eyU,11580 +pbr/hooks/__init__.py,sha256=v6xtosYxcJsJqE3sVg1IFNUa-FIXpJsuT0zavgxdbUM,1086 +pbr/hooks/__pycache__/__init__.cpython-36.pyc,, +pbr/hooks/__pycache__/backwards.cpython-36.pyc,, +pbr/hooks/__pycache__/base.cpython-36.pyc,, +pbr/hooks/__pycache__/commands.cpython-36.pyc,, +pbr/hooks/__pycache__/files.cpython-36.pyc,, +pbr/hooks/__pycache__/metadata.cpython-36.pyc,, +pbr/hooks/backwards.py,sha256=uz1ofnisgwXuEz2QKDARknw_GkeayWObKDHi36ekS2A,1176 +pbr/hooks/base.py,sha256=BQLcBfFd-f151aSOOOY359rKYNb2LKOaetj4hF25XY4,1038 +pbr/hooks/commands.py,sha256=iTErrioU8avItyV-v2yozVe2GQa_RlPKaUIZrXNmSEw,2476 +pbr/hooks/files.py,sha256=XvKTUF533sfVf8krZ3BqjqG9DVMC65XX1nbrNk0LZDw,4745 +pbr/hooks/metadata.py,sha256=f3gcLX1TNYJF2OmaexyAe9oh2aXLsdxp84KL30DP8IQ,1076 +pbr/options.py,sha256=pppVIelMTpHKpUAp8mTPxLIQtwgdEwj3MFojE32Ywjo,2371 +pbr/packaging.py,sha256=4NimH34KeK2ZAnQz8_vDJrrAE3-pZR6HZOiHLaSDV8k,31282 +pbr/pbr_json.py,sha256=tENBo-oXejEG4sUBS4QeR8anwGCoPdu7QIeFmQgY7NA,1250 +pbr/sphinxext.py,sha256=u8LsHwE9dl5wLll9o5CcpeybVRz-FaMsDPk3E54x68c,3207 +pbr/testr_command.py,sha256=CT0EcDNUQuuJ6WUkiJM73Q_M5W5gw8fHV2jxrcQEF04,5867 +pbr/tests/__init__.py,sha256=XX97pKeZeZ2X2nnRGTlCIbnBxaVd9WBdBZCKi5VEeSg,985 +pbr/tests/__pycache__/__init__.cpython-36.pyc,, +pbr/tests/__pycache__/base.cpython-36.pyc,, +pbr/tests/__pycache__/test_commands.cpython-36.pyc,, +pbr/tests/__pycache__/test_core.cpython-36.pyc,, +pbr/tests/__pycache__/test_files.cpython-36.pyc,, +pbr/tests/__pycache__/test_hooks.cpython-36.pyc,, +pbr/tests/__pycache__/test_integration.cpython-36.pyc,, +pbr/tests/__pycache__/test_packaging.cpython-36.pyc,, +pbr/tests/__pycache__/test_pbr_json.cpython-36.pyc,, +pbr/tests/__pycache__/test_setup.cpython-36.pyc,, +pbr/tests/__pycache__/test_util.cpython-36.pyc,, +pbr/tests/__pycache__/test_version.cpython-36.pyc,, +pbr/tests/__pycache__/test_wsgi.cpython-36.pyc,, +pbr/tests/__pycache__/util.cpython-36.pyc,, +pbr/tests/base.py,sha256=a13w0grj7r6JYPThWR3aQmIatQjutkXEfEB9QcKxkE8,8871 +pbr/tests/test_commands.py,sha256=Nv853JWSsRvM-J-kkvTzI4M14FH1yW2ZpLA2bYI5B8U,3688 +pbr/tests/test_core.py,sha256=MsL6tp_qBUqdg8yyeryGqHCNjq8UgBGMt57R6w_R-0I,5419 +pbr/tests/test_files.py,sha256=dKQQViZdxdzZ7rcvVcPEopyiPeVUKSkuWINtyizjnWQ,5465 +pbr/tests/test_hooks.py,sha256=XjPb8B4s_uvr2ysH0wDpGaU0WnU8z6T-2pzReXDyE54,3007 +pbr/tests/test_integration.py,sha256=tvDy5z3JZ90OO2mXz2jIipYJFsrz85UuyKSw0y0Ex2Q,10892 +pbr/tests/test_packaging.py,sha256=pPYX5_TuHqNPSxq2GyQBrJMZjEctUUCuRfhdRCoudic,46477 +pbr/tests/test_pbr_json.py,sha256=o_pZ_UJzJGj-YsmQmSUKIUI0SLN8sE0s38OfUdNpP8Y,1162 +pbr/tests/test_setup.py,sha256=mVeFbWJF-YSrSdG4t8b3iLld-i6pYBu7SeU2oue3YLY,18462 +pbr/tests/test_util.py,sha256=Ka70GMQD62wb3r-LwY4fNzyhzwKc-iQtR-2nLtSz8j8,7311 +pbr/tests/test_version.py,sha256=1c-5s75lrfAADE1Bp7yVeBikcAN_TDs7vetLLtZSRSU,14100 +pbr/tests/test_wsgi.py,sha256=kbkIdxPS8eznH9ZesVWlJuMHRtlfFWIfbXiSXzimzm0,5741 +pbr/tests/testpackage/CHANGES.txt,sha256=N6vxDAYI6Mx42G7pUkCNmtrBQgBioFSEiX0QGhOcAJo,4020 +pbr/tests/testpackage/LICENSE.txt,sha256=60qMh5H2yqsc823ybbK29OLd2lJlewYP9_AqvGORCu8,1464 +pbr/tests/testpackage/MANIFEST.in,sha256=pdPDHyVjHsaqv-OZ5-uYNPNUH25PlPbtG7WSS9yEJd8,54 +pbr/tests/testpackage/README.txt,sha256=i2cNRAa9UCdPqilaZXEjWMQKIikAXyGdZ96BQz_gB70,6674 +pbr/tests/testpackage/__pycache__/setup.cpython-36.pyc,, +pbr/tests/testpackage/data_files/a.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/data_files/b.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/data_files/c.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/doc/source/__pycache__/conf.cpython-36.pyc,, +pbr/tests/testpackage/doc/source/conf.py,sha256=DUBiC-yg_nmQozdzEydiPnWauvNp76n0MX8y0dTq72s,1912 +pbr/tests/testpackage/doc/source/index.rst,sha256=4qvttWTQk9-UuzyS6s5EjSuhqlcxyhcQagBiJ0Pn2qM,479 +pbr/tests/testpackage/doc/source/installation.rst,sha256=JL_m5J7BX88Bq-hAP4xI9a6kt2EXxW76nK3YxndbcPQ,202 +pbr/tests/testpackage/doc/source/usage.rst,sha256=U5ZvmzuSYWEkaA3e1WhfN8-FpY3vFteakcR1vcl9IJo,83 +pbr/tests/testpackage/extra-file.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/git-extra-file.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/pbr_testpackage/__init__.py,sha256=LlPnJQqAYOmgTYrZqJZ9hT0hEBBeViqFGMijjRAXBF8,94 +pbr/tests/testpackage/pbr_testpackage/__pycache__/__init__.cpython-36.pyc,, +pbr/tests/testpackage/pbr_testpackage/__pycache__/_setup_hooks.cpython-36.pyc,, +pbr/tests/testpackage/pbr_testpackage/__pycache__/cmd.cpython-36.pyc,, +pbr/tests/testpackage/pbr_testpackage/__pycache__/extra.cpython-36.pyc,, +pbr/tests/testpackage/pbr_testpackage/__pycache__/wsgi.cpython-36.pyc,, +pbr/tests/testpackage/pbr_testpackage/_setup_hooks.py,sha256=3g7Cff_VRiM1ipAA4VgOCpUoNMYrxpfVvO_F7HIu-JY,2310 +pbr/tests/testpackage/pbr_testpackage/cmd.py,sha256=T0eYtOjY-jvg21NSfVjTDQLkOyqrp3q3NcFkhA4LoiE,798 +pbr/tests/testpackage/pbr_testpackage/extra.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/pbr_testpackage/package_data/1.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/pbr_testpackage/package_data/2.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pbr/tests/testpackage/pbr_testpackage/wsgi.py,sha256=e3fHleqX_eDkjZIcgOkQ7fZYqZwTywMkLD2s0ouR0A8,1321 +pbr/tests/testpackage/setup.cfg,sha256=bG9-mX1jwVjtrW7V9EaRO8-wn-DDSmzZ3H87kb3xWrg,1737 +pbr/tests/testpackage/setup.py,sha256=GvzdcEFgIwgSO8wk8NzoJUUmoGnvrYRRQr3Kf9mbtuw,692 +pbr/tests/testpackage/src/testext.c,sha256=-fezBujL_5bvoKftDQSyxDcNhleYPR49npnnboy-P8U,673 +pbr/tests/testpackage/test-requirements.txt,sha256=hFOB6kveR9_ihI5A--BQuqU1e4bP1XAO6K2sswIVzeU,48 +pbr/tests/util.py,sha256=p9LBbCXovocRrGfuyfz887F2wzybCI1VtBs409N8XLg,2662 +pbr/util.py,sha256=5-__rqD_ojVL6vdrZox3JX5y38nQfYXQ1xIirhKjE2k,23745 +pbr/version.py,sha256=hRSU92m8tNVqUptF8lqI6enk62uXCi0VYm5TehvrRKs,18977 diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/WHEEL b/venv/Lib/site-packages/pbr-5.4.5.dist-info/WHEEL new file mode 100644 index 00000000..ef99c6cf --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/entry_points.txt b/venv/Lib/site-packages/pbr-5.4.5.dist-info/entry_points.txt new file mode 100644 index 00000000..ba195784 --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/entry_points.txt @@ -0,0 +1,9 @@ +[console_scripts] +pbr = pbr.cmd.main:main + +[distutils.setup_keywords] +pbr = pbr.core:pbr + +[egg_info.writers] +pbr.json = pbr.pbr_json:write_pbr_json + diff --git a/venv/Lib/site-packages/pbr-5.4.5.dist-info/top_level.txt b/venv/Lib/site-packages/pbr-5.4.5.dist-info/top_level.txt new file mode 100644 index 00000000..1d45dc6e --- /dev/null +++ b/venv/Lib/site-packages/pbr-5.4.5.dist-info/top_level.txt @@ -0,0 +1 @@ +pbr diff --git a/venv/Lib/site-packages/pbr/__init__.py b/venv/Lib/site-packages/pbr/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/builddoc.py b/venv/Lib/site-packages/pbr/builddoc.py new file mode 100644 index 00000000..276eec67 --- /dev/null +++ b/venv/Lib/site-packages/pbr/builddoc.py @@ -0,0 +1,292 @@ +# Copyright 2011 OpenStack Foundation +# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from distutils import log +import fnmatch +import os +import sys + +try: + import cStringIO +except ImportError: + import io as cStringIO + +try: + import sphinx + # NOTE(dhellmann): Newer versions of Sphinx have moved the apidoc + # module into sphinx.ext and the API is slightly different (the + # function expects sys.argv[1:] instead of sys.argv[:]. So, figure + # out where we can import it from and set a flag so we can invoke + # it properly. See this change in sphinx for details: + # https://github.com/sphinx-doc/sphinx/commit/87630c8ae8bff8c0e23187676e6343d8903003a6 + try: + from sphinx.ext import apidoc + apidoc_use_padding = False + except ImportError: + from sphinx import apidoc + apidoc_use_padding = True + from sphinx import application + from sphinx import setup_command +except Exception as e: + # NOTE(dhellmann): During the installation of docutils, setuptools + # tries to import pbr code to find the egg_info.writer hooks. That + # imports this module, which imports sphinx, which imports + # docutils, which is being installed. Because docutils uses 2to3 + # to convert its code during installation under python 3, the + # import fails, but it fails with an error other than ImportError + # (today it's a NameError on StandardError, an exception base + # class). Convert the exception type here so it can be caught in + # packaging.py where we try to determine if we can import and use + # sphinx by importing this module. See bug #1403510 for details. + raise ImportError(str(e)) +from pbr import git +from pbr import options +from pbr import version + + +_deprecated_options = ['autodoc_tree_index_modules', 'autodoc_index_modules', + 'autodoc_tree_excludes', 'autodoc_exclude_modules'] +_deprecated_envs = ['AUTODOC_TREE_INDEX_MODULES', 'AUTODOC_INDEX_MODULES'] +_rst_template = """%(heading)s +%(underline)s + +.. automodule:: %(module)s + :members: + :undoc-members: + :show-inheritance: +""" + + +def _find_modules(arg, dirname, files): + for filename in files: + if filename.endswith('.py') and filename != '__init__.py': + arg["%s.%s" % (dirname.replace('/', '.'), + filename[:-3])] = True + + +class LocalBuildDoc(setup_command.BuildDoc): + + builders = ['html'] + command_name = 'build_sphinx' + sphinx_initialized = False + + def _get_source_dir(self): + option_dict = self.distribution.get_option_dict('build_sphinx') + pbr_option_dict = self.distribution.get_option_dict('pbr') + _, api_doc_dir = pbr_option_dict.get('api_doc_dir', (None, 'api')) + if 'source_dir' in option_dict: + source_dir = os.path.join(option_dict['source_dir'][1], + api_doc_dir) + else: + source_dir = 'doc/source/' + api_doc_dir + if not os.path.exists(source_dir): + os.makedirs(source_dir) + return source_dir + + def generate_autoindex(self, excluded_modules=None): + log.info("[pbr] Autodocumenting from %s" + % os.path.abspath(os.curdir)) + modules = {} + source_dir = self._get_source_dir() + for pkg in self.distribution.packages: + if '.' not in pkg: + for dirpath, dirnames, files in os.walk(pkg): + _find_modules(modules, dirpath, files) + + def include(module): + return not any(fnmatch.fnmatch(module, pat) + for pat in excluded_modules) + + module_list = sorted(mod for mod in modules.keys() if include(mod)) + autoindex_filename = os.path.join(source_dir, 'autoindex.rst') + with open(autoindex_filename, 'w') as autoindex: + autoindex.write(""".. toctree:: + :maxdepth: 1 + +""") + for module in module_list: + output_filename = os.path.join(source_dir, + "%s.rst" % module) + heading = "The :mod:`%s` Module" % module + underline = "=" * len(heading) + values = dict(module=module, heading=heading, + underline=underline) + + log.info("[pbr] Generating %s" + % output_filename) + with open(output_filename, 'w') as output_file: + output_file.write(_rst_template % values) + autoindex.write(" %s.rst\n" % module) + + def _sphinx_tree(self): + source_dir = self._get_source_dir() + cmd = ['-H', 'Modules', '-o', source_dir, '.'] + if apidoc_use_padding: + cmd.insert(0, 'apidoc') + apidoc.main(cmd + self.autodoc_tree_excludes) + + def _sphinx_run(self): + if not self.verbose: + status_stream = cStringIO.StringIO() + else: + status_stream = sys.stdout + confoverrides = {} + if self.project: + confoverrides['project'] = self.project + if self.version: + confoverrides['version'] = self.version + if self.release: + confoverrides['release'] = self.release + if self.today: + confoverrides['today'] = self.today + if self.sphinx_initialized: + confoverrides['suppress_warnings'] = [ + 'app.add_directive', 'app.add_role', + 'app.add_generic_role', 'app.add_node', + 'image.nonlocal_uri', + ] + app = application.Sphinx( + self.source_dir, self.config_dir, + self.builder_target_dir, self.doctree_dir, + self.builder, confoverrides, status_stream, + freshenv=self.fresh_env, warningiserror=self.warning_is_error) + self.sphinx_initialized = True + + try: + app.build(force_all=self.all_files) + except Exception as err: + from docutils import utils + if isinstance(err, utils.SystemMessage): + sys.stder.write('reST markup error:\n') + sys.stderr.write(err.args[0].encode('ascii', + 'backslashreplace')) + sys.stderr.write('\n') + else: + raise + + if self.link_index: + src = app.config.master_doc + app.builder.out_suffix + dst = app.builder.get_outfilename('index') + os.symlink(src, dst) + + def run(self): + option_dict = self.distribution.get_option_dict('pbr') + + # TODO(stephenfin): Remove this (and the entire file) when 5.0 is + # released + warn_opts = set(option_dict.keys()).intersection(_deprecated_options) + warn_env = list(filter(lambda x: os.getenv(x), _deprecated_envs)) + if warn_opts or warn_env: + msg = ('The autodoc and autodoc_tree features are deprecated in ' + '4.2 and will be removed in a future release. You should ' + 'use the sphinxcontrib-apidoc Sphinx extension instead. ' + 'Refer to the pbr documentation for more information.') + if warn_opts: + msg += ' Deprecated options: %s' % list(warn_opts) + if warn_env: + msg += ' Deprecated environment variables: %s' % warn_env + + log.warn(msg) + + if git._git_is_installed(): + git.write_git_changelog(option_dict=option_dict) + git.generate_authors(option_dict=option_dict) + tree_index = options.get_boolean_option(option_dict, + 'autodoc_tree_index_modules', + 'AUTODOC_TREE_INDEX_MODULES') + auto_index = options.get_boolean_option(option_dict, + 'autodoc_index_modules', + 'AUTODOC_INDEX_MODULES') + if not os.getenv('SPHINX_DEBUG'): + # NOTE(afazekas): These options can be used together, + # but they do a very similar thing in a different way + if tree_index: + self._sphinx_tree() + if auto_index: + self.generate_autoindex( + set(option_dict.get( + "autodoc_exclude_modules", + [None, ""])[1].split())) + + self.finalize_options() + + is_multibuilder_sphinx = version.SemanticVersion.from_pip_string( + sphinx.__version__) >= version.SemanticVersion(1, 6) + + # TODO(stephenfin): Remove support for Sphinx < 1.6 in 4.0 + if not is_multibuilder_sphinx: + log.warn('[pbr] Support for Sphinx < 1.6 will be dropped in ' + 'pbr 4.0. Upgrade to Sphinx 1.6+') + + # TODO(stephenfin): Remove this at the next MAJOR version bump + if self.builders != ['html']: + log.warn("[pbr] Sphinx 1.6 added native support for " + "specifying multiple builders in the " + "'[sphinx_build] builder' configuration option, " + "found in 'setup.cfg'. As a result, the " + "'[sphinx_build] builders' option has been " + "deprecated and will be removed in pbr 4.0. Migrate " + "to the 'builder' configuration option.") + if is_multibuilder_sphinx: + self.builder = self.builders + + if is_multibuilder_sphinx: + # Sphinx >= 1.6 + return setup_command.BuildDoc.run(self) + + # Sphinx < 1.6 + for builder in self.builders: + self.builder = builder + self.finalize_options() + self._sphinx_run() + + def initialize_options(self): + # Not a new style class, super keyword does not work. + setup_command.BuildDoc.initialize_options(self) + + # NOTE(dstanek): exclude setup.py from the autodoc tree index + # builds because all projects will have an issue with it + self.autodoc_tree_excludes = ['setup.py'] + + def finalize_options(self): + from pbr import util + + # Not a new style class, super keyword does not work. + setup_command.BuildDoc.finalize_options(self) + + # Handle builder option from command line - override cfg + option_dict = self.distribution.get_option_dict('build_sphinx') + if 'command line' in option_dict.get('builder', [[]])[0]: + self.builders = option_dict['builder'][1] + # Allow builders to be configurable - as a comma separated list. + if not isinstance(self.builders, list) and self.builders: + self.builders = self.builders.split(',') + + self.project = self.distribution.get_name() + self.version = self.distribution.get_version() + self.release = self.distribution.get_version() + + # NOTE(dstanek): check for autodoc tree exclusion overrides + # in the setup.cfg + opt = 'autodoc_tree_excludes' + option_dict = self.distribution.get_option_dict('pbr') + if opt in option_dict: + self.autodoc_tree_excludes = util.split_multiline( + option_dict[opt][1]) + + # handle Sphinx < 1.5.0 + if not hasattr(self, 'warning_is_error'): + self.warning_is_error = False diff --git a/venv/Lib/site-packages/pbr/cmd/__init__.py b/venv/Lib/site-packages/pbr/cmd/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/cmd/main.py b/venv/Lib/site-packages/pbr/cmd/main.py new file mode 100644 index 00000000..162304f7 --- /dev/null +++ b/venv/Lib/site-packages/pbr/cmd/main.py @@ -0,0 +1,119 @@ +# Copyright 2014 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import argparse +import json +import sys + +import pkg_resources + +import pbr.version + + +def _get_metadata(package_name): + try: + return json.loads( + pkg_resources.get_distribution( + package_name).get_metadata('pbr.json')) + except pkg_resources.DistributionNotFound: + raise Exception('Package {0} not installed'.format(package_name)) + except Exception: + return None + + +def get_sha(args): + sha = _get_info(args.name)['sha'] + if sha: + print(sha) + + +def get_info(args): + if args.short: + print("{version}".format(**_get_info(args.name))) + else: + print("{name}\t{version}\t{released}\t{sha}".format( + **_get_info(args.name))) + + +def _get_info(name): + metadata = _get_metadata(name) + version = pkg_resources.get_distribution(name).version + if metadata: + if metadata['is_release']: + released = 'released' + else: + released = 'pre-release' + sha = metadata['git_version'] + else: + version_parts = version.split('.') + if version_parts[-1].startswith('g'): + sha = version_parts[-1][1:] + released = 'pre-release' + else: + sha = "" + released = "released" + for part in version_parts: + if not part.isdigit(): + released = "pre-release" + return dict(name=name, version=version, sha=sha, released=released) + + +def freeze(args): + sorted_dists = sorted(pkg_resources.working_set, + key=lambda dist: dist.project_name.lower()) + for dist in sorted_dists: + info = _get_info(dist.project_name) + output = "{name}=={version}".format(**info) + if info['sha']: + output += " # git sha {sha}".format(**info) + print(output) + + +def main(): + parser = argparse.ArgumentParser( + description='pbr: Python Build Reasonableness') + parser.add_argument( + '-v', '--version', action='version', + version=str(pbr.version.VersionInfo('pbr'))) + + subparsers = parser.add_subparsers( + title='commands', description='valid commands', help='additional help', + dest='cmd') + subparsers.required = True + + cmd_sha = subparsers.add_parser('sha', help='print sha of package') + cmd_sha.set_defaults(func=get_sha) + cmd_sha.add_argument('name', help='package to print sha of') + + cmd_info = subparsers.add_parser( + 'info', help='print version info for package') + cmd_info.set_defaults(func=get_info) + cmd_info.add_argument('name', help='package to print info of') + cmd_info.add_argument('-s', '--short', action="store_true", + help='only display package version') + + cmd_freeze = subparsers.add_parser( + 'freeze', help='print version info for all installed packages') + cmd_freeze.set_defaults(func=freeze) + + args = parser.parse_args() + try: + args.func(args) + except Exception as e: + print(e) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/venv/Lib/site-packages/pbr/core.py b/venv/Lib/site-packages/pbr/core.py new file mode 100644 index 00000000..645a2ef1 --- /dev/null +++ b/venv/Lib/site-packages/pbr/core.py @@ -0,0 +1,145 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +import logging +import os +import sys +import warnings + +from distutils import errors + +from pbr import util + + +if sys.version_info[0] == 3: + string_type = str + integer_types = (int,) +else: + string_type = basestring # noqa + integer_types = (int, long) # noqa + + +def pbr(dist, attr, value): + """Implements the actual pbr setup() keyword. + + When used, this should be the only keyword in your setup() aside from + `setup_requires`. + + If given as a string, the value of pbr is assumed to be the relative path + to the setup.cfg file to use. Otherwise, if it evaluates to true, it + simply assumes that pbr should be used, and the default 'setup.cfg' is + used. + + This works by reading the setup.cfg file, parsing out the supported + metadata and command options, and using them to rebuild the + `DistributionMetadata` object and set the newly added command options. + + The reason for doing things this way is that a custom `Distribution` class + will not play nicely with setup_requires; however, this implementation may + not work well with distributions that do use a `Distribution` subclass. + """ + + if not value: + return + if isinstance(value, string_type): + path = os.path.abspath(value) + else: + path = os.path.abspath('setup.cfg') + if not os.path.exists(path): + raise errors.DistutilsFileError( + 'The setup.cfg file %s does not exist.' % path) + + # Converts the setup.cfg file to setup() arguments + try: + attrs = util.cfg_to_args(path, dist.script_args) + except Exception: + e = sys.exc_info()[1] + # NB: This will output to the console if no explicit logging has + # been setup - but thats fine, this is a fatal distutils error, so + # being pretty isn't the #1 goal.. being diagnosable is. + logging.exception('Error parsing') + raise errors.DistutilsSetupError( + 'Error parsing %s: %s: %s' % (path, e.__class__.__name__, e)) + + # There are some metadata fields that are only supported by + # setuptools and not distutils, and hence are not in + # dist.metadata. We are OK to write these in. For gory details + # see + # https://github.com/pypa/setuptools/pull/1343 + _DISTUTILS_UNSUPPORTED_METADATA = ( + 'long_description_content_type', 'project_urls', 'provides_extras' + ) + + # Repeat some of the Distribution initialization code with the newly + # provided attrs + if attrs: + # Skips 'options' and 'licence' support which are rarely used; may + # add back in later if demanded + for key, val in attrs.items(): + if hasattr(dist.metadata, 'set_' + key): + getattr(dist.metadata, 'set_' + key)(val) + elif hasattr(dist.metadata, key): + setattr(dist.metadata, key, val) + elif hasattr(dist, key): + setattr(dist, key, val) + elif key in _DISTUTILS_UNSUPPORTED_METADATA: + setattr(dist.metadata, key, val) + else: + msg = 'Unknown distribution option: %s' % repr(key) + warnings.warn(msg) + + # Re-finalize the underlying Distribution + try: + super(dist.__class__, dist).finalize_options() + except TypeError: + # If dist is not declared as a new-style class (with object as + # a subclass) then super() will not work on it. This is the case + # for Python 2. In that case, fall back to doing this the ugly way + dist.__class__.__bases__[-1].finalize_options(dist) + + # This bit comes out of distribute/setuptools + if isinstance(dist.metadata.version, integer_types + (float,)): + # Some people apparently take "version number" too literally :) + dist.metadata.version = str(dist.metadata.version) diff --git a/venv/Lib/site-packages/pbr/extra_files.py b/venv/Lib/site-packages/pbr/extra_files.py new file mode 100644 index 00000000..a72db0c1 --- /dev/null +++ b/venv/Lib/site-packages/pbr/extra_files.py @@ -0,0 +1,35 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from distutils import errors +import os + +_extra_files = [] + + +def get_extra_files(): + global _extra_files + return _extra_files + + +def set_extra_files(extra_files): + # Let's do a sanity check + for filename in extra_files: + if not os.path.exists(filename): + raise errors.DistutilsFileError( + '%s from the extra_files option in setup.cfg does not ' + 'exist' % filename) + global _extra_files + _extra_files[:] = extra_files[:] diff --git a/venv/Lib/site-packages/pbr/find_package.py b/venv/Lib/site-packages/pbr/find_package.py new file mode 100644 index 00000000..717e93da --- /dev/null +++ b/venv/Lib/site-packages/pbr/find_package.py @@ -0,0 +1,29 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os + +import setuptools + + +def smart_find_packages(package_list): + """Run find_packages the way we intend.""" + packages = [] + for pkg in package_list.strip().split("\n"): + pkg_path = pkg.replace('.', os.path.sep) + packages.append(pkg) + packages.extend(['%s.%s' % (pkg, f) + for f in setuptools.find_packages(pkg_path)]) + return "\n".join(set(packages)) diff --git a/venv/Lib/site-packages/pbr/git.py b/venv/Lib/site-packages/pbr/git.py new file mode 100644 index 00000000..f1d7c501 --- /dev/null +++ b/venv/Lib/site-packages/pbr/git.py @@ -0,0 +1,338 @@ +# Copyright 2011 OpenStack Foundation +# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from __future__ import unicode_literals + +import distutils.errors +from distutils import log +import errno +import io +import os +import re +import subprocess +import time + +import pkg_resources + +from pbr import options +from pbr import version + + +def _run_shell_command(cmd, throw_on_error=False, buffer=True, env=None): + if buffer: + out_location = subprocess.PIPE + err_location = subprocess.PIPE + else: + out_location = None + err_location = None + + newenv = os.environ.copy() + if env: + newenv.update(env) + + output = subprocess.Popen(cmd, + stdout=out_location, + stderr=err_location, + env=newenv) + out = output.communicate() + if output.returncode and throw_on_error: + raise distutils.errors.DistutilsError( + "%s returned %d" % (cmd, output.returncode)) + if len(out) == 0 or not out[0] or not out[0].strip(): + return '' + # Since we don't control the history, and forcing users to rebase arbitrary + # history to fix utf8 issues is harsh, decode with replace. + return out[0].strip().decode('utf-8', 'replace') + + +def _run_git_command(cmd, git_dir, **kwargs): + if not isinstance(cmd, (list, tuple)): + cmd = [cmd] + return _run_shell_command( + ['git', '--git-dir=%s' % git_dir] + cmd, **kwargs) + + +def _get_git_directory(): + try: + return _run_shell_command(['git', 'rev-parse', '--git-dir']) + except OSError as e: + if e.errno == errno.ENOENT: + # git not installed. + return '' + raise + + +def _git_is_installed(): + try: + # We cannot use 'which git' as it may not be available + # in some distributions, So just try 'git --version' + # to see if we run into trouble + _run_shell_command(['git', '--version']) + except OSError: + return False + return True + + +def _get_highest_tag(tags): + """Find the highest tag from a list. + + Pass in a list of tag strings and this will return the highest + (latest) as sorted by the pkg_resources version parser. + """ + return max(tags, key=pkg_resources.parse_version) + + +def _find_git_files(dirname='', git_dir=None): + """Behave like a file finder entrypoint plugin. + + We don't actually use the entrypoints system for this because it runs + at absurd times. We only want to do this when we are building an sdist. + """ + file_list = [] + if git_dir is None: + git_dir = _run_git_functions() + if git_dir: + log.info("[pbr] In git context, generating filelist from git") + file_list = _run_git_command(['ls-files', '-z'], git_dir) + # Users can fix utf8 issues locally with a single commit, so we are + # strict here. + file_list = file_list.split(b'\x00'.decode('utf-8')) + return [f for f in file_list if f] + + +def _get_raw_tag_info(git_dir): + describe = _run_git_command(['describe', '--always'], git_dir) + if "-" in describe: + return describe.rsplit("-", 2)[-2] + if "." in describe: + return 0 + return None + + +def get_is_release(git_dir): + return _get_raw_tag_info(git_dir) == 0 + + +def _run_git_functions(): + git_dir = None + if _git_is_installed(): + git_dir = _get_git_directory() + return git_dir or None + + +def get_git_short_sha(git_dir=None): + """Return the short sha for this repo, if it exists.""" + if not git_dir: + git_dir = _run_git_functions() + if git_dir: + return _run_git_command( + ['log', '-n1', '--pretty=format:%h'], git_dir) + return None + + +def _clean_changelog_message(msg): + """Cleans any instances of invalid sphinx wording. + + This escapes/removes any instances of invalid characters + that can be interpreted by sphinx as a warning or error + when translating the Changelog into an HTML file for + documentation building within projects. + + * Escapes '_' which is interpreted as a link + * Escapes '*' which is interpreted as a new line + * Escapes '`' which is interpreted as a literal + """ + + msg = msg.replace('*', r'\*') + msg = msg.replace('_', r'\_') + msg = msg.replace('`', r'\`') + + return msg + + +def _iter_changelog(changelog): + """Convert a oneline log iterator to formatted strings. + + :param changelog: An iterator of one line log entries like + that given by _iter_log_oneline. + :return: An iterator over (release, formatted changelog) tuples. + """ + first_line = True + current_release = None + yield current_release, "CHANGES\n=======\n\n" + for hash, tags, msg in changelog: + if tags: + current_release = _get_highest_tag(tags) + underline = len(current_release) * '-' + if not first_line: + yield current_release, '\n' + yield current_release, ( + "%(tag)s\n%(underline)s\n\n" % + dict(tag=current_release, underline=underline)) + + if not msg.startswith("Merge "): + if msg.endswith("."): + msg = msg[:-1] + msg = _clean_changelog_message(msg) + yield current_release, "* %(msg)s\n" % dict(msg=msg) + first_line = False + + +def _iter_log_oneline(git_dir=None): + """Iterate over --oneline log entries if possible. + + This parses the output into a structured form but does not apply + presentation logic to the output - making it suitable for different + uses. + + :return: An iterator of (hash, tags_set, 1st_line) tuples, or None if + changelog generation is disabled / not available. + """ + if git_dir is None: + git_dir = _get_git_directory() + if not git_dir: + return [] + return _iter_log_inner(git_dir) + + +def _is_valid_version(candidate): + try: + version.SemanticVersion.from_pip_string(candidate) + return True + except ValueError: + return False + + +def _iter_log_inner(git_dir): + """Iterate over --oneline log entries. + + This parses the output intro a structured form but does not apply + presentation logic to the output - making it suitable for different + uses. + + .. caution:: this function risk to return a tag that doesn't exist really + inside the git objects list due to replacement made + to tag name to also list pre-release suffix. + Compliant with the SemVer specification (e.g 1.2.3-rc1) + + :return: An iterator of (hash, tags_set, 1st_line) tuples. + """ + log.info('[pbr] Generating ChangeLog') + log_cmd = ['log', '--decorate=full', '--format=%h%x00%s%x00%d'] + changelog = _run_git_command(log_cmd, git_dir) + for line in changelog.split('\n'): + line_parts = line.split('\x00') + if len(line_parts) != 3: + continue + sha, msg, refname = line_parts + tags = set() + + # refname can be: + # + # HEAD, tag: refs/tags/1.4.0, refs/remotes/origin/master, \ + # refs/heads/master + # refs/tags/1.3.4 + if "refs/tags/" in refname: + refname = refname.strip()[1:-1] # remove wrapping ()'s + # If we start with "tag: refs/tags/1.2b1, tag: refs/tags/1.2" + # The first split gives us "['', '1.2b1, tag:', '1.2']" + # Which is why we do the second split below on the comma + for tag_string in refname.split("refs/tags/")[1:]: + # git tag does not allow : or " " in tag names, so we split + # on ", " which is the separator between elements + candidate = tag_string.split(", ")[0].replace("-", ".") + if _is_valid_version(candidate): + tags.add(candidate) + + yield sha, tags, msg + + +def write_git_changelog(git_dir=None, dest_dir=os.path.curdir, + option_dict=None, changelog=None): + """Write a changelog based on the git changelog.""" + start = time.time() + if not option_dict: + option_dict = {} + should_skip = options.get_boolean_option(option_dict, 'skip_changelog', + 'SKIP_WRITE_GIT_CHANGELOG') + if should_skip: + return + if not changelog: + changelog = _iter_log_oneline(git_dir=git_dir) + if changelog: + changelog = _iter_changelog(changelog) + if not changelog: + return + + new_changelog = os.path.join(dest_dir, 'ChangeLog') + if os.path.exists(new_changelog) and not os.access(new_changelog, os.W_OK): + # If there's already a ChangeLog and it's not writable, just use it + log.info('[pbr] ChangeLog not written (file already' + ' exists and it is not writeable)') + return + + log.info('[pbr] Writing ChangeLog') + with io.open(new_changelog, "w", encoding="utf-8") as changelog_file: + for release, content in changelog: + changelog_file.write(content) + stop = time.time() + log.info('[pbr] ChangeLog complete (%0.1fs)' % (stop - start)) + + +def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()): + """Create AUTHORS file using git commits.""" + should_skip = options.get_boolean_option(option_dict, 'skip_authors', + 'SKIP_GENERATE_AUTHORS') + if should_skip: + return + + start = time.time() + old_authors = os.path.join(dest_dir, 'AUTHORS.in') + new_authors = os.path.join(dest_dir, 'AUTHORS') + if os.path.exists(new_authors) and not os.access(new_authors, os.W_OK): + # If there's already an AUTHORS file and it's not writable, just use it + return + + log.info('[pbr] Generating AUTHORS') + ignore_emails = '((jenkins|zuul)@review|infra@lists|jenkins@openstack)' + if git_dir is None: + git_dir = _get_git_directory() + if git_dir: + authors = [] + + # don't include jenkins email address in AUTHORS file + git_log_cmd = ['log', '--format=%aN <%aE>'] + authors += _run_git_command(git_log_cmd, git_dir).split('\n') + authors = [a for a in authors if not re.search(ignore_emails, a)] + + # get all co-authors from commit messages + co_authors_out = _run_git_command('log', git_dir) + co_authors = re.findall('Co-authored-by:.+', co_authors_out, + re.MULTILINE) + co_authors = [signed.split(":", 1)[1].strip() + for signed in co_authors if signed] + + authors += co_authors + authors = sorted(set(authors)) + + with open(new_authors, 'wb') as new_authors_fh: + if os.path.exists(old_authors): + with open(old_authors, "rb") as old_authors_fh: + new_authors_fh.write(old_authors_fh.read()) + new_authors_fh.write(('\n'.join(authors) + '\n') + .encode('utf-8')) + stop = time.time() + log.info('[pbr] AUTHORS complete (%0.1fs)' % (stop - start)) diff --git a/venv/Lib/site-packages/pbr/hooks/__init__.py b/venv/Lib/site-packages/pbr/hooks/__init__.py new file mode 100644 index 00000000..f0056c0e --- /dev/null +++ b/venv/Lib/site-packages/pbr/hooks/__init__.py @@ -0,0 +1,28 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from pbr.hooks import backwards +from pbr.hooks import commands +from pbr.hooks import files +from pbr.hooks import metadata + + +def setup_hook(config): + """Filter config parsed from a setup.cfg to inject our defaults.""" + metadata_config = metadata.MetadataConfig(config) + metadata_config.run() + backwards.BackwardsCompatConfig(config).run() + commands.CommandsConfig(config).run() + files.FilesConfig(config, metadata_config.get_name()).run() diff --git a/venv/Lib/site-packages/pbr/hooks/backwards.py b/venv/Lib/site-packages/pbr/hooks/backwards.py new file mode 100644 index 00000000..01f07ab8 --- /dev/null +++ b/venv/Lib/site-packages/pbr/hooks/backwards.py @@ -0,0 +1,33 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from pbr.hooks import base +from pbr import packaging + + +class BackwardsCompatConfig(base.BaseConfig): + + section = 'backwards_compat' + + def hook(self): + self.config['include_package_data'] = 'True' + packaging.append_text_list( + self.config, 'dependency_links', + packaging.parse_dependency_links()) + packaging.append_text_list( + self.config, 'tests_require', + packaging.parse_requirements( + packaging.TEST_REQUIREMENTS_FILES, + strip_markers=True)) diff --git a/venv/Lib/site-packages/pbr/hooks/base.py b/venv/Lib/site-packages/pbr/hooks/base.py new file mode 100644 index 00000000..6672a362 --- /dev/null +++ b/venv/Lib/site-packages/pbr/hooks/base.py @@ -0,0 +1,34 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +class BaseConfig(object): + + section = None + + def __init__(self, config): + self._global_config = config + self.config = self._global_config.get(self.section, dict()) + self.pbr_config = config.get('pbr', dict()) + + def run(self): + self.hook() + self.save() + + def hook(self): + pass + + def save(self): + self._global_config[self.section] = self.config diff --git a/venv/Lib/site-packages/pbr/hooks/commands.py b/venv/Lib/site-packages/pbr/hooks/commands.py new file mode 100644 index 00000000..aa4db704 --- /dev/null +++ b/venv/Lib/site-packages/pbr/hooks/commands.py @@ -0,0 +1,66 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os + +from setuptools.command import easy_install + +from pbr.hooks import base +from pbr import options +from pbr import packaging + + +class CommandsConfig(base.BaseConfig): + + section = 'global' + + def __init__(self, config): + super(CommandsConfig, self).__init__(config) + self.commands = self.config.get('commands', "") + + def save(self): + self.config['commands'] = self.commands + super(CommandsConfig, self).save() + + def add_command(self, command): + self.commands = "%s\n%s" % (self.commands, command) + + def hook(self): + self.add_command('pbr.packaging.LocalEggInfo') + self.add_command('pbr.packaging.LocalSDist') + self.add_command('pbr.packaging.LocalInstallScripts') + self.add_command('pbr.packaging.LocalDevelop') + self.add_command('pbr.packaging.LocalRPMVersion') + self.add_command('pbr.packaging.LocalDebVersion') + if os.name != 'nt': + easy_install.get_script_args = packaging.override_get_script_args + + if packaging.have_sphinx(): + self.add_command('pbr.builddoc.LocalBuildDoc') + + if os.path.exists('.testr.conf') and packaging.have_testr(): + # There is a .testr.conf file. We want to use it. + self.add_command('pbr.packaging.TestrTest') + elif self.config.get('nosetests', False) and packaging.have_nose(): + # We seem to still have nose configured + self.add_command('pbr.packaging.NoseTest') + + use_egg = options.get_boolean_option( + self.pbr_config, 'use-egg', 'PBR_USE_EGG') + # We always want non-egg install unless explicitly requested + if 'manpages' in self.pbr_config or not use_egg: + self.add_command('pbr.packaging.LocalInstall') + else: + self.add_command('pbr.packaging.InstallWithGit') diff --git a/venv/Lib/site-packages/pbr/hooks/files.py b/venv/Lib/site-packages/pbr/hooks/files.py new file mode 100644 index 00000000..c44af7c4 --- /dev/null +++ b/venv/Lib/site-packages/pbr/hooks/files.py @@ -0,0 +1,126 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os +import shlex +import sys + +from pbr import find_package +from pbr.hooks import base + + +def get_manpath(): + manpath = 'share/man' + if os.path.exists(os.path.join(sys.prefix, 'man')): + # This works around a bug with install where it expects every node + # in the relative data directory to be an actual directory, since at + # least Debian derivatives (and probably other platforms as well) + # like to symlink Unixish /usr/local/man to /usr/local/share/man. + manpath = 'man' + return manpath + + +def get_man_section(section): + return os.path.join(get_manpath(), 'man%s' % section) + + +def unquote_path(path): + # unquote the full path, e.g: "'a/full/path'" becomes "a/full/path", also + # strip the quotes off individual path components because os.walk cannot + # handle paths like: "'i like spaces'/'another dir'", so we will pass it + # "i like spaces/another dir" instead. + + if os.name == 'nt': + # shlex cannot handle paths that contain backslashes, treating those + # as escape characters. + path = path.replace("\\", "/") + return "".join(shlex.split(path)).replace("/", "\\") + + return "".join(shlex.split(path)) + + +class FilesConfig(base.BaseConfig): + + section = 'files' + + def __init__(self, config, name): + super(FilesConfig, self).__init__(config) + self.name = name + self.data_files = self.config.get('data_files', '') + + def save(self): + self.config['data_files'] = self.data_files + super(FilesConfig, self).save() + + def expand_globs(self): + finished = [] + for line in self.data_files.split("\n"): + if line.rstrip().endswith('*') and '=' in line: + (target, source_glob) = line.split('=') + source_prefix = source_glob.strip()[:-1] + target = target.strip() + if not target.endswith(os.path.sep): + target += os.path.sep + unquoted_prefix = unquote_path(source_prefix) + unquoted_target = unquote_path(target) + for (dirpath, dirnames, fnames) in os.walk(unquoted_prefix): + # As source_prefix is always matched, using replace with a + # a limit of one is always going to replace the path prefix + # and not accidentally replace some text in the middle of + # the path + new_prefix = dirpath.replace(unquoted_prefix, + unquoted_target, 1) + finished.append("'%s' = " % new_prefix) + finished.extend( + [" '%s'" % os.path.join(dirpath, f) for f in fnames]) + else: + finished.append(line) + + self.data_files = "\n".join(finished) + + def add_man_path(self, man_path): + self.data_files = "%s\n'%s' =" % (self.data_files, man_path) + + def add_man_page(self, man_page): + self.data_files = "%s\n '%s'" % (self.data_files, man_page) + + def get_man_sections(self): + man_sections = dict() + manpages = self.pbr_config['manpages'] + for manpage in manpages.split(): + section_number = manpage.strip()[-1] + section = man_sections.get(section_number, list()) + section.append(manpage.strip()) + man_sections[section_number] = section + return man_sections + + def hook(self): + packages = self.config.get('packages', self.name).strip() + expanded = [] + for pkg in packages.split("\n"): + if os.path.isdir(pkg.strip()): + expanded.append(find_package.smart_find_packages(pkg.strip())) + + self.config['packages'] = "\n".join(expanded) + + self.expand_globs() + + if 'manpages' in self.pbr_config: + man_sections = self.get_man_sections() + for (section, pages) in man_sections.items(): + manpath = get_man_section(section) + self.add_man_path(manpath) + for page in pages: + self.add_man_page(page) diff --git a/venv/Lib/site-packages/pbr/hooks/metadata.py b/venv/Lib/site-packages/pbr/hooks/metadata.py new file mode 100644 index 00000000..3f65b6d7 --- /dev/null +++ b/venv/Lib/site-packages/pbr/hooks/metadata.py @@ -0,0 +1,32 @@ +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from pbr.hooks import base +from pbr import packaging + + +class MetadataConfig(base.BaseConfig): + + section = 'metadata' + + def hook(self): + self.config['version'] = packaging.get_version( + self.config['name'], self.config.get('version', None)) + packaging.append_text_list( + self.config, 'requires_dist', + packaging.parse_requirements()) + + def get_name(self): + return self.config['name'] diff --git a/venv/Lib/site-packages/pbr/options.py b/venv/Lib/site-packages/pbr/options.py new file mode 100644 index 00000000..2313cc4a --- /dev/null +++ b/venv/Lib/site-packages/pbr/options.py @@ -0,0 +1,53 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +import os + + +TRUE_VALUES = ('true', '1', 'yes') + + +def get_boolean_option(option_dict, option_name, env_name): + return ((option_name in option_dict and + option_dict[option_name][1].lower() in TRUE_VALUES) or + str(os.getenv(env_name)).lower() in TRUE_VALUES) diff --git a/venv/Lib/site-packages/pbr/packaging.py b/venv/Lib/site-packages/pbr/packaging.py new file mode 100644 index 00000000..a6979928 --- /dev/null +++ b/venv/Lib/site-packages/pbr/packaging.py @@ -0,0 +1,883 @@ +# Copyright 2011 OpenStack Foundation +# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +Utilities with minimum-depends for use in setup.py +""" + +from __future__ import unicode_literals + +from distutils.command import install as du_install +from distutils import log + +# (hberaud) do not use six here to import urlparse +# to keep this module free from external dependencies +# to avoid cross dependencies errors on minimal system +# free from dependencies. +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse + +import email +import email.errors +import os +import re +import sys +import warnings + +import pkg_resources +import setuptools +from setuptools.command import develop +from setuptools.command import easy_install +from setuptools.command import egg_info +from setuptools.command import install +from setuptools.command import install_scripts +from setuptools.command import sdist + +from pbr import extra_files +from pbr import git +from pbr import options +import pbr.pbr_json +from pbr import testr_command +from pbr import version + +REQUIREMENTS_FILES = ('requirements.txt', 'tools/pip-requires') +PY_REQUIREMENTS_FILES = [x % sys.version_info[0] for x in ( + 'requirements-py%d.txt', 'tools/pip-requires-py%d')] +TEST_REQUIREMENTS_FILES = ('test-requirements.txt', 'tools/test-requires') + + +def get_requirements_files(): + files = os.environ.get("PBR_REQUIREMENTS_FILES") + if files: + return tuple(f.strip() for f in files.split(',')) + # Returns a list composed of: + # - REQUIREMENTS_FILES with -py2 or -py3 in the name + # (e.g. requirements-py3.txt) + # - REQUIREMENTS_FILES + + return PY_REQUIREMENTS_FILES + list(REQUIREMENTS_FILES) + + +def append_text_list(config, key, text_list): + """Append a \n separated list to possibly existing value.""" + new_value = [] + current_value = config.get(key, "") + if current_value: + new_value.append(current_value) + new_value.extend(text_list) + config[key] = '\n'.join(new_value) + + +def _any_existing(file_list): + return [f for f in file_list if os.path.exists(f)] + + +# Get requirements from the first file that exists +def get_reqs_from_files(requirements_files): + existing = _any_existing(requirements_files) + + # TODO(stephenfin): Remove this in pbr 6.0+ + deprecated = [f for f in existing if f in PY_REQUIREMENTS_FILES] + if deprecated: + warnings.warn('Support for \'-pyN\'-suffixed requirements files is ' + 'removed in pbr 5.0 and these files are now ignored. ' + 'Use environment markers instead. Conflicting files: ' + '%r' % deprecated, + DeprecationWarning) + + existing = [f for f in existing if f not in PY_REQUIREMENTS_FILES] + for requirements_file in existing: + with open(requirements_file, 'r') as fil: + return fil.read().split('\n') + + return [] + + +def egg_fragment(match): + return re.sub(r'(?P[\w.-]+)-' + r'(?P' + r'(?P' + r'(?P0|[1-9][0-9]*)\.' + r'(?P0|[1-9][0-9]*)\.' + r'(?P0|[1-9][0-9]*)){1}' + r'(?P(?:\-' + r'(?P(?:(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|' + r'(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|' + r'(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)(?:[0-9A-Za-z-]+)){1}' + r'(?:\.(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|' + r'\.(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|' + r'\.(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)' + r'(?:[0-9A-Za-z-]+))*){1}){0,1}(?:\+' + r'(?P(?:[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))){0,1}))', + r'\g>=\g', + match.groups()[-1]) + + +def parse_requirements(requirements_files=None, strip_markers=False): + + if requirements_files is None: + requirements_files = get_requirements_files() + + requirements = [] + for line in get_reqs_from_files(requirements_files): + # Ignore comments + if (not line.strip()) or line.startswith('#'): + continue + + # Ignore index URL lines + if re.match(r'^\s*(-i|--index-url|--extra-index-url|--find-links).*', + line): + continue + + # Handle nested requirements files such as: + # -r other-requirements.txt + if line.startswith('-r'): + req_file = line.partition(' ')[2] + requirements += parse_requirements( + [req_file], strip_markers=strip_markers) + continue + + try: + project_name = pkg_resources.Requirement.parse(line).project_name + except ValueError: + project_name = None + + # For the requirements list, we need to inject only the portion + # after egg= so that distutils knows the package it's looking for + # such as: + # -e git://github.com/openstack/nova/master#egg=nova + # -e git://github.com/openstack/nova/master#egg=nova-1.2.3 + # -e git+https://foo.com/zipball#egg=bar&subdirectory=baz + # http://github.com/openstack/nova/zipball/master#egg=nova + # http://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 + # git+https://foo.com/zipball#egg=bar&subdirectory=baz + # git+[ssh]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 + # hg+[ssh]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 + # svn+[proto]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 + # -f lines are for index locations, and don't get used here + if re.match(r'\s*-e\s+', line): + extract = re.match(r'\s*-e\s+(.*)$', line) + line = extract.group(1) + egg = urlparse(line) + if egg.scheme: + line = re.sub(r'egg=([^&]+).*$', egg_fragment, egg.fragment) + elif re.match(r'\s*-f\s+', line): + line = None + reason = 'Index Location' + + if line is not None: + line = re.sub('#.*$', '', line) + if strip_markers: + semi_pos = line.find(';') + if semi_pos < 0: + semi_pos = None + line = line[:semi_pos] + requirements.append(line) + else: + log.info( + '[pbr] Excluding %s: %s' % (project_name, reason)) + + return requirements + + +def parse_dependency_links(requirements_files=None): + if requirements_files is None: + requirements_files = get_requirements_files() + dependency_links = [] + # dependency_links inject alternate locations to find packages listed + # in requirements + for line in get_reqs_from_files(requirements_files): + # skip comments and blank lines + if re.match(r'(\s*#)|(\s*$)', line): + continue + # lines with -e or -f need the whole line, minus the flag + if re.match(r'\s*-[ef]\s+', line): + dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) + # lines that are only urls can go in unmolested + elif re.match(r'^\s*(https?|git(\+(https|ssh))?|svn|hg)\S*:', line): + dependency_links.append(line) + return dependency_links + + +class InstallWithGit(install.install): + """Extracts ChangeLog and AUTHORS from git then installs. + + This is useful for e.g. readthedocs where the package is + installed and then docs built. + """ + + command_name = 'install' + + def run(self): + _from_git(self.distribution) + return install.install.run(self) + + +class LocalInstall(install.install): + """Runs python setup.py install in a sensible manner. + + Force a non-egg installed in the manner of + single-version-externally-managed, which allows us to install manpages + and config files. + """ + + command_name = 'install' + + def run(self): + _from_git(self.distribution) + return du_install.install.run(self) + + +class TestrTest(testr_command.Testr): + """Make setup.py test do the right thing.""" + + command_name = 'test' + description = 'DEPRECATED: Run unit tests using testr' + + def run(self): + warnings.warn('testr integration is deprecated in pbr 4.2 and will ' + 'be removed in a future release. Please call your test ' + 'runner directly', + DeprecationWarning) + + # Can't use super - base class old-style class + testr_command.Testr.run(self) + + +class LocalRPMVersion(setuptools.Command): + __doc__ = """Output the rpm *compatible* version string of this package""" + description = __doc__ + + user_options = [] + command_name = "rpm_version" + + def run(self): + log.info("[pbr] Extracting rpm version") + name = self.distribution.get_name() + print(version.VersionInfo(name).semantic_version().rpm_string()) + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + +class LocalDebVersion(setuptools.Command): + __doc__ = """Output the deb *compatible* version string of this package""" + description = __doc__ + + user_options = [] + command_name = "deb_version" + + def run(self): + log.info("[pbr] Extracting deb version") + name = self.distribution.get_name() + print(version.VersionInfo(name).semantic_version().debian_string()) + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + +def have_testr(): + return testr_command.have_testr + + +try: + from nose import commands + + class NoseTest(commands.nosetests): + """Fallback test runner if testr is a no-go.""" + + command_name = 'test' + description = 'DEPRECATED: Run unit tests using nose' + + def run(self): + warnings.warn('nose integration in pbr is deprecated. Please use ' + 'the native nose setuptools configuration or call ' + 'nose directly', + DeprecationWarning) + + # Can't use super - base class old-style class + commands.nosetests.run(self) + + _have_nose = True + +except ImportError: + _have_nose = False + + +def have_nose(): + return _have_nose + + +_wsgi_text = """#PBR Generated from %(group)r + +import threading + +from %(module_name)s import %(import_target)s + +if __name__ == "__main__": + import argparse + import socket + import sys + import wsgiref.simple_server as wss + + parser = argparse.ArgumentParser( + description=%(import_target)s.__doc__, + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + usage='%%(prog)s [-h] [--port PORT] [--host IP] -- [passed options]') + parser.add_argument('--port', '-p', type=int, default=8000, + help='TCP port to listen on') + parser.add_argument('--host', '-b', default='', + help='IP to bind the server to') + parser.add_argument('args', + nargs=argparse.REMAINDER, + metavar='-- [passed options]', + help="'--' is the separator of the arguments used " + "to start the WSGI server and the arguments passed " + "to the WSGI application.") + args = parser.parse_args() + if args.args: + if args.args[0] == '--': + args.args.pop(0) + else: + parser.error("unrecognized arguments: %%s" %% ' '.join(args.args)) + sys.argv[1:] = args.args + server = wss.make_server(args.host, args.port, %(invoke_target)s()) + + print("*" * 80) + print("STARTING test server %(module_name)s.%(invoke_target)s") + url = "http://%%s:%%d/" %% (server.server_name, server.server_port) + print("Available at %%s" %% url) + print("DANGER! For testing only, do not use in production") + print("*" * 80) + sys.stdout.flush() + + server.serve_forever() +else: + application = None + app_lock = threading.Lock() + + with app_lock: + if application is None: + application = %(invoke_target)s() + +""" + +_script_text = """# PBR Generated from %(group)r + +import sys + +from %(module_name)s import %(import_target)s + + +if __name__ == "__main__": + sys.exit(%(invoke_target)s()) +""" + + +# the following allows us to specify different templates per entry +# point group when generating pbr scripts. +ENTRY_POINTS_MAP = { + 'console_scripts': _script_text, + 'gui_scripts': _script_text, + 'wsgi_scripts': _wsgi_text +} + + +def generate_script(group, entry_point, header, template): + """Generate the script based on the template. + + :param str group: + The entry-point group name, e.g., "console_scripts". + :param str header: + The first line of the script, e.g., "!#/usr/bin/env python". + :param str template: + The script template. + :returns: + The templated script content + :rtype: + str + """ + if not entry_point.attrs or len(entry_point.attrs) > 2: + raise ValueError("Script targets must be of the form " + "'func' or 'Class.class_method'.") + script_text = template % dict( + group=group, + module_name=entry_point.module_name, + import_target=entry_point.attrs[0], + invoke_target='.'.join(entry_point.attrs), + ) + return header + script_text + + +def override_get_script_args( + dist, executable=os.path.normpath(sys.executable), is_wininst=False): + """Override entrypoints console_script.""" + header = easy_install.get_script_header("", executable, is_wininst) + for group, template in ENTRY_POINTS_MAP.items(): + for name, ep in dist.get_entry_map(group).items(): + yield (name, generate_script(group, ep, header, template)) + + +class LocalDevelop(develop.develop): + + command_name = 'develop' + + def install_wrapper_scripts(self, dist): + if sys.platform == 'win32': + return develop.develop.install_wrapper_scripts(self, dist) + if not self.exclude_scripts: + for args in override_get_script_args(dist): + self.write_script(*args) + + +class LocalInstallScripts(install_scripts.install_scripts): + """Intercepts console scripts entry_points.""" + command_name = 'install_scripts' + + def _make_wsgi_scripts_only(self, dist, executable, is_wininst): + header = easy_install.get_script_header("", executable, is_wininst) + wsgi_script_template = ENTRY_POINTS_MAP['wsgi_scripts'] + for name, ep in dist.get_entry_map('wsgi_scripts').items(): + content = generate_script( + 'wsgi_scripts', ep, header, wsgi_script_template) + self.write_script(name, content) + + def run(self): + import distutils.command.install_scripts + + self.run_command("egg_info") + if self.distribution.scripts: + # run first to set up self.outfiles + distutils.command.install_scripts.install_scripts.run(self) + else: + self.outfiles = [] + + ei_cmd = self.get_finalized_command("egg_info") + dist = pkg_resources.Distribution( + ei_cmd.egg_base, + pkg_resources.PathMetadata(ei_cmd.egg_base, ei_cmd.egg_info), + ei_cmd.egg_name, ei_cmd.egg_version, + ) + bs_cmd = self.get_finalized_command('build_scripts') + executable = getattr( + bs_cmd, 'executable', easy_install.sys_executable) + is_wininst = getattr( + self.get_finalized_command("bdist_wininst"), '_is_running', False + ) + + if 'bdist_wheel' in self.distribution.have_run: + # We're building a wheel which has no way of generating mod_wsgi + # scripts for us. Let's build them. + # NOTE(sigmavirus24): This needs to happen here because, as the + # comment below indicates, no_ep is True when building a wheel. + self._make_wsgi_scripts_only(dist, executable, is_wininst) + + if self.no_ep: + # no_ep is True if we're installing into an .egg file or building + # a .whl file, in those cases, we do not want to build all of the + # entry-points listed for this package. + return + + if os.name != 'nt': + get_script_args = override_get_script_args + else: + get_script_args = easy_install.get_script_args + executable = '"%s"' % executable + + for args in get_script_args(dist, executable, is_wininst): + self.write_script(*args) + + +class LocalManifestMaker(egg_info.manifest_maker): + """Add any files that are in git and some standard sensible files.""" + + def _add_pbr_defaults(self): + for template_line in [ + 'include AUTHORS', + 'include ChangeLog', + 'exclude .gitignore', + 'exclude .gitreview', + 'global-exclude *.pyc' + ]: + self.filelist.process_template_line(template_line) + + def add_defaults(self): + """Add all the default files to self.filelist: + + Extends the functionality provided by distutils to also included + additional sane defaults, such as the ``AUTHORS`` and ``ChangeLog`` + files generated by *pbr*. + + Warns if (``README`` or ``README.txt``) or ``setup.py`` are missing; + everything else is optional. + """ + option_dict = self.distribution.get_option_dict('pbr') + + sdist.sdist.add_defaults(self) + self.filelist.append(self.template) + self.filelist.append(self.manifest) + self.filelist.extend(extra_files.get_extra_files()) + should_skip = options.get_boolean_option(option_dict, 'skip_git_sdist', + 'SKIP_GIT_SDIST') + if not should_skip: + rcfiles = git._find_git_files() + if rcfiles: + self.filelist.extend(rcfiles) + elif os.path.exists(self.manifest): + self.read_manifest() + ei_cmd = self.get_finalized_command('egg_info') + self._add_pbr_defaults() + self.filelist.include_pattern("*", prefix=ei_cmd.egg_info) + + +class LocalEggInfo(egg_info.egg_info): + """Override the egg_info command to regenerate SOURCES.txt sensibly.""" + + command_name = 'egg_info' + + def find_sources(self): + """Generate SOURCES.txt only if there isn't one already. + + If we are in an sdist command, then we always want to update + SOURCES.txt. If we are not in an sdist command, then it doesn't + matter one flip, and is actually destructive. + However, if we're in a git context, it's always the right thing to do + to recreate SOURCES.txt + """ + manifest_filename = os.path.join(self.egg_info, "SOURCES.txt") + if (not os.path.exists(manifest_filename) or + os.path.exists('.git') or + 'sdist' in sys.argv): + log.info("[pbr] Processing SOURCES.txt") + mm = LocalManifestMaker(self.distribution) + mm.manifest = manifest_filename + mm.run() + self.filelist = mm.filelist + else: + log.info("[pbr] Reusing existing SOURCES.txt") + self.filelist = egg_info.FileList() + for entry in open(manifest_filename, 'r').read().split('\n'): + self.filelist.append(entry) + + +def _from_git(distribution): + option_dict = distribution.get_option_dict('pbr') + changelog = git._iter_log_oneline() + if changelog: + changelog = git._iter_changelog(changelog) + git.write_git_changelog(option_dict=option_dict, changelog=changelog) + git.generate_authors(option_dict=option_dict) + + +class LocalSDist(sdist.sdist): + """Builds the ChangeLog and Authors files from VC first.""" + + command_name = 'sdist' + + def checking_reno(self): + """Ensure reno is installed and configured. + + We can't run reno-based commands if reno isn't installed/available, and + don't want to if the user isn't using it. + """ + if hasattr(self, '_has_reno'): + return self._has_reno + + option_dict = self.distribution.get_option_dict('pbr') + should_skip = options.get_boolean_option(option_dict, 'skip_reno', + 'SKIP_GENERATE_RENO') + if should_skip: + self._has_reno = False + return False + + try: + # versions of reno witout this module will not have the required + # feature, hence the import + from reno import setup_command # noqa + except ImportError: + log.info('[pbr] reno was not found or is too old. Skipping ' + 'release notes') + self._has_reno = False + return False + + conf, output_file, cache_file = setup_command.load_config( + self.distribution) + + if not os.path.exists(os.path.join(conf.reporoot, conf.notespath)): + log.info('[pbr] reno does not appear to be configured. Skipping ' + 'release notes') + self._has_reno = False + return False + + self._files = [output_file, cache_file] + + log.info('[pbr] Generating release notes') + self._has_reno = True + + return True + + sub_commands = [('build_reno', checking_reno)] + sdist.sdist.sub_commands + + def run(self): + _from_git(self.distribution) + # sdist.sdist is an old style class, can't use super() + sdist.sdist.run(self) + + def make_distribution(self): + # This is included in make_distribution because setuptools doesn't use + # 'get_file_list'. As such, this is the only hook point that runs after + # the commands in 'sub_commands' + if self.checking_reno(): + self.filelist.extend(self._files) + self.filelist.sort() + sdist.sdist.make_distribution(self) + + +try: + from pbr import builddoc + _have_sphinx = True + # Import the symbols from their new home so the package API stays + # compatible. + LocalBuildDoc = builddoc.LocalBuildDoc +except ImportError: + _have_sphinx = False + LocalBuildDoc = None + + +def have_sphinx(): + return _have_sphinx + + +def _get_increment_kwargs(git_dir, tag): + """Calculate the sort of semver increment needed from git history. + + Every commit from HEAD to tag is consider for Sem-Ver metadata lines. + See the pbr docs for their syntax. + + :return: a dict of kwargs for passing into SemanticVersion.increment. + """ + result = {} + if tag: + version_spec = tag + "..HEAD" + else: + version_spec = "HEAD" + # Get the raw body of the commit messages so that we don't have to + # parse out any formatting whitespace and to avoid user settings on + # git log output affecting out ability to have working sem ver headers. + changelog = git._run_git_command(['log', '--pretty=%B', version_spec], + git_dir) + header_len = len('sem-ver:') + commands = [line[header_len:].strip() for line in changelog.split('\n') + if line.lower().startswith('sem-ver:')] + symbols = set() + for command in commands: + symbols.update([symbol.strip() for symbol in command.split(',')]) + + def _handle_symbol(symbol, symbols, impact): + if symbol in symbols: + result[impact] = True + symbols.discard(symbol) + _handle_symbol('bugfix', symbols, 'patch') + _handle_symbol('feature', symbols, 'minor') + _handle_symbol('deprecation', symbols, 'minor') + _handle_symbol('api-break', symbols, 'major') + for symbol in symbols: + log.info('[pbr] Unknown Sem-Ver symbol %r' % symbol) + # We don't want patch in the kwargs since it is not a keyword argument - + # its the default minimum increment. + result.pop('patch', None) + return result + + +def _get_revno_and_last_tag(git_dir): + """Return the commit data about the most recent tag. + + We use git-describe to find this out, but if there are no + tags then we fall back to counting commits since the beginning + of time. + """ + changelog = git._iter_log_oneline(git_dir=git_dir) + row_count = 0 + for row_count, (ignored, tag_set, ignored) in enumerate(changelog): + version_tags = set() + semver_to_tag = dict() + for tag in list(tag_set): + try: + semver = version.SemanticVersion.from_pip_string(tag) + semver_to_tag[semver] = tag + version_tags.add(semver) + except Exception: + pass + if version_tags: + return semver_to_tag[max(version_tags)], row_count + return "", row_count + + +def _get_version_from_git_target(git_dir, target_version): + """Calculate a version from a target version in git_dir. + + This is used for untagged versions only. A new version is calculated as + necessary based on git metadata - distance to tags, current hash, contents + of commit messages. + + :param git_dir: The git directory we're working from. + :param target_version: If None, the last tagged version (or 0 if there are + no tags yet) is incremented as needed to produce an appropriate target + version following semver rules. Otherwise target_version is used as a + constraint - if semver rules would result in a newer version then an + exception is raised. + :return: A semver version object. + """ + tag, distance = _get_revno_and_last_tag(git_dir) + last_semver = version.SemanticVersion.from_pip_string(tag or '0') + if distance == 0: + new_version = last_semver + else: + new_version = last_semver.increment( + **_get_increment_kwargs(git_dir, tag)) + if target_version is not None and new_version > target_version: + raise ValueError( + "git history requires a target version of %(new)s, but target " + "version is %(target)s" % + dict(new=new_version, target=target_version)) + if distance == 0: + return last_semver + new_dev = new_version.to_dev(distance) + if target_version is not None: + target_dev = target_version.to_dev(distance) + if target_dev > new_dev: + return target_dev + return new_dev + + +def _get_version_from_git(pre_version=None): + """Calculate a version string from git. + + If the revision is tagged, return that. Otherwise calculate a semantic + version description of the tree. + + The number of revisions since the last tag is included in the dev counter + in the version for untagged versions. + + :param pre_version: If supplied use this as the target version rather than + inferring one from the last tag + commit messages. + """ + git_dir = git._run_git_functions() + if git_dir: + try: + tagged = git._run_git_command( + ['describe', '--exact-match'], git_dir, + throw_on_error=True).replace('-', '.') + target_version = version.SemanticVersion.from_pip_string(tagged) + except Exception: + if pre_version: + # not released yet - use pre_version as the target + target_version = version.SemanticVersion.from_pip_string( + pre_version) + else: + # not released yet - just calculate from git history + target_version = None + result = _get_version_from_git_target(git_dir, target_version) + return result.release_string() + # If we don't know the version, return an empty string so at least + # the downstream users of the value always have the same type of + # object to work with. + try: + return unicode() + except NameError: + return '' + + +def _get_version_from_pkg_metadata(package_name): + """Get the version from package metadata if present. + + This looks for PKG-INFO if present (for sdists), and if not looks + for METADATA (for wheels) and failing that will return None. + """ + pkg_metadata_filenames = ['PKG-INFO', 'METADATA'] + pkg_metadata = {} + for filename in pkg_metadata_filenames: + try: + pkg_metadata_file = open(filename, 'r') + except (IOError, OSError): + continue + try: + pkg_metadata = email.message_from_file(pkg_metadata_file) + except email.errors.MessageError: + continue + + # Check to make sure we're in our own dir + if pkg_metadata.get('Name', None) != package_name: + return None + return pkg_metadata.get('Version', None) + + +def get_version(package_name, pre_version=None): + """Get the version of the project. + + First, try getting it from PKG-INFO or METADATA, if it exists. If it does, + that means we're in a distribution tarball or that install has happened. + Otherwise, if there is no PKG-INFO or METADATA file, pull the version + from git. + + We do not support setup.py version sanity in git archive tarballs, nor do + we support packagers directly sucking our git repo into theirs. We expect + that a source tarball be made from our git repo - or that if someone wants + to make a source tarball from a fork of our repo with additional tags in it + that they understand and desire the results of doing that. + + :param pre_version: The version field from setup.cfg - if set then this + version will be the next release. + """ + version = os.environ.get( + "PBR_VERSION", + os.environ.get("OSLO_PACKAGE_VERSION", None)) + if version: + return version + version = _get_version_from_pkg_metadata(package_name) + if version: + return version + version = _get_version_from_git(pre_version) + # Handle http://bugs.python.org/issue11638 + # version will either be an empty unicode string or a valid + # unicode version string, but either way it's unicode and needs to + # be encoded. + if sys.version_info[0] == 2: + version = version.encode('utf-8') + if version: + return version + raise Exception("Versioning for this project requires either an sdist" + " tarball, or access to an upstream git repository." + " It's also possible that there is a mismatch between" + " the package name in setup.cfg and the argument given" + " to pbr.version.VersionInfo. Project name {name} was" + " given, but was not able to be found.".format( + name=package_name)) + + +# This is added because pbr uses pbr to install itself. That means that +# any changes to the egg info writer entrypoints must be forward and +# backward compatible. This maintains the pbr.packaging.write_pbr_json +# path. +write_pbr_json = pbr.pbr_json.write_pbr_json diff --git a/venv/Lib/site-packages/pbr/pbr_json.py b/venv/Lib/site-packages/pbr/pbr_json.py new file mode 100644 index 00000000..08c3da22 --- /dev/null +++ b/venv/Lib/site-packages/pbr/pbr_json.py @@ -0,0 +1,34 @@ +# Copyright 2011 OpenStack Foundation +# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import json + +from pbr import git + + +def write_pbr_json(cmd, basename, filename): + if not hasattr(cmd.distribution, 'pbr') or not cmd.distribution.pbr: + return + git_dir = git._run_git_functions() + if not git_dir: + return + values = dict() + git_version = git.get_git_short_sha(git_dir) + is_release = git.get_is_release(git_dir) + if git_version is not None: + values['git_version'] = git_version + values['is_release'] = is_release + cmd.write_file('pbr', filename, json.dumps(values, sort_keys=True)) diff --git a/venv/Lib/site-packages/pbr/sphinxext.py b/venv/Lib/site-packages/pbr/sphinxext.py new file mode 100644 index 00000000..ef613052 --- /dev/null +++ b/venv/Lib/site-packages/pbr/sphinxext.py @@ -0,0 +1,99 @@ +# Copyright 2018 Red Hat, Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os.path + +from six.moves import configparser +from sphinx.util import logging + +import pbr.version + +_project = None +logger = logging.getLogger(__name__) + + +def _find_setup_cfg(srcdir): + """Find the 'setup.cfg' file, if it exists. + + This assumes we're using 'doc/source' for documentation, but also allows + for single level 'doc' paths. + """ + # TODO(stephenfin): Are we sure that this will always exist, e.g. for + # an sdist or wheel? Perhaps we should check for 'PKG-INFO' or + # 'METADATA' files, a la 'pbr.packaging._get_version_from_pkg_metadata' + for path in [ + os.path.join(srcdir, os.pardir, 'setup.cfg'), + os.path.join(srcdir, os.pardir, os.pardir, 'setup.cfg')]: + if os.path.exists(path): + return path + + return None + + +def _get_project_name(srcdir): + """Return string name of project name, or None. + + This extracts metadata from 'setup.cfg'. We don't rely on + distutils/setuptools as we don't want to actually install the package + simply to build docs. + """ + global _project + + if _project is None: + parser = configparser.ConfigParser() + + path = _find_setup_cfg(srcdir) + if not path or not parser.read(path): + logger.info('Could not find a setup.cfg to extract project name ' + 'from') + return None + + try: + # for project name we use the name in setup.cfg, but if the + # length is longer then 32 we use summary. Otherwise thAe + # menu rendering looks brolen + project = parser.get('metadata', 'name') + if len(project.split()) == 1 and len(project) > 32: + project = parser.get('metadata', 'summary') + except configparser.Error: + logger.info('Could not extract project metadata from setup.cfg') + return None + + _project = project + + return _project + + +def _builder_inited(app): + # TODO(stephenfin): Once Sphinx 1.8 is released, we should move the below + # to a 'config-inited' handler + + project_name = _get_project_name(app.srcdir) + try: + version_info = pbr.version.VersionInfo(project_name) + except Exception: + version_info = None + + if version_info and not app.config.version and not app.config.release: + app.config.version = version_info.canonical_version_string() + app.config.release = version_info.version_string_with_vcs() + + +def setup(app): + app.connect('builder-inited', _builder_inited) + return { + 'parallel_read_safe': True, + 'parallel_write_safe': True, + } diff --git a/venv/Lib/site-packages/pbr/testr_command.py b/venv/Lib/site-packages/pbr/testr_command.py new file mode 100644 index 00000000..d143565f --- /dev/null +++ b/venv/Lib/site-packages/pbr/testr_command.py @@ -0,0 +1,167 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (c) 2013 Testrepository Contributors +# +# Licensed under either the Apache License, Version 2.0 or the BSD 3-clause +# license at the users choice. A copy of both licenses are available in the +# project source as Apache-2.0 and BSD. You may not use this file except in +# compliance with one of these two licences. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# license you chose for the specific language governing permissions and +# limitations under that license. + +"""setuptools/distutils command to run testr via setup.py + +PBR will hook in the Testr class to provide "setup.py test" when +.testr.conf is present in the repository (see pbr/hooks/commands.py). + +If we are activated but testrepository is not installed, we provide a +sensible error. + +You can pass --coverage which will also export PYTHON='coverage run +--source ' and automatically combine the coverage from +each testr backend test runner after the run completes. + +""" + +from distutils import cmd +import distutils.errors +import logging +import os +import sys +import warnings + +logger = logging.getLogger(__name__) + + +class TestrReal(cmd.Command): + + description = "DEPRECATED: Run unit tests using testr" + + user_options = [ + ('coverage', None, "Replace PYTHON with coverage and merge coverage " + "from each testr worker."), + ('testr-args=', 't', "Run 'testr' with these args"), + ('omit=', 'o', "Files to omit from coverage calculations"), + ('coverage-package-name=', None, "Use this name to select packages " + "for coverage (one or more, " + "comma-separated)"), + ('slowest', None, "Show slowest test times after tests complete."), + ('no-parallel', None, "Run testr serially"), + ('log-level=', 'l', "Log level (default: info)"), + ] + + boolean_options = ['coverage', 'slowest', 'no_parallel'] + + def _run_testr(self, *args): + logger.debug("_run_testr called with args = %r", args) + return commands.run_argv([sys.argv[0]] + list(args), + sys.stdin, sys.stdout, sys.stderr) + + def initialize_options(self): + self.testr_args = None + self.coverage = None + self.omit = "" + self.slowest = None + self.coverage_package_name = None + self.no_parallel = None + self.log_level = 'info' + + def finalize_options(self): + self.log_level = getattr( + logging, + self.log_level.upper(), + logging.INFO) + logging.basicConfig(level=self.log_level) + logger.debug("finalize_options called") + if self.testr_args is None: + self.testr_args = [] + else: + self.testr_args = self.testr_args.split() + if self.omit: + self.omit = "--omit=%s" % self.omit + logger.debug("finalize_options: self.__dict__ = %r", self.__dict__) + + def run(self): + """Set up testr repo, then run testr.""" + logger.debug("run called") + + warnings.warn('testr integration in pbr is deprecated. Please use ' + 'the \'testr\' setup command or call testr directly', + DeprecationWarning) + + if not os.path.isdir(".testrepository"): + self._run_testr("init") + + if self.coverage: + self._coverage_before() + if not self.no_parallel: + testr_ret = self._run_testr("run", "--parallel", *self.testr_args) + else: + testr_ret = self._run_testr("run", *self.testr_args) + if testr_ret: + raise distutils.errors.DistutilsError( + "testr failed (%d)" % testr_ret) + if self.slowest: + print("Slowest Tests") + self._run_testr("slowest") + if self.coverage: + self._coverage_after() + + def _coverage_before(self): + logger.debug("_coverage_before called") + package = self.distribution.get_name() + if package.startswith('python-'): + package = package[7:] + + # Use this as coverage package name + if self.coverage_package_name: + package = self.coverage_package_name + options = "--source %s --parallel-mode" % package + os.environ['PYTHON'] = ("coverage run %s" % options) + logger.debug("os.environ['PYTHON'] = %r", os.environ['PYTHON']) + + def _coverage_after(self): + logger.debug("_coverage_after called") + os.system("coverage combine") + os.system("coverage html -d ./cover %s" % self.omit) + os.system("coverage xml -o ./cover/coverage.xml %s" % self.omit) + + +class TestrFake(cmd.Command): + description = "Run unit tests using testr" + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + print("Install testrepository to run 'testr' command properly.") + + +try: + from testrepository import commands + have_testr = True + Testr = TestrReal +except ImportError: + have_testr = False + Testr = TestrFake diff --git a/venv/Lib/site-packages/pbr/tests/__init__.py b/venv/Lib/site-packages/pbr/tests/__init__.py new file mode 100644 index 00000000..583e0c6b --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/__init__.py @@ -0,0 +1,26 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +import testscenarios + + +def load_tests(loader, standard_tests, pattern): + # top level directory cached on loader instance + this_dir = os.path.dirname(__file__) + package_tests = loader.discover(start_dir=this_dir, pattern=pattern) + result = loader.suiteClass() + result.addTests(testscenarios.generate_scenarios(standard_tests)) + result.addTests(testscenarios.generate_scenarios(package_tests)) + return result diff --git a/venv/Lib/site-packages/pbr/tests/base.py b/venv/Lib/site-packages/pbr/tests/base.py new file mode 100644 index 00000000..ea4a458a --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/base.py @@ -0,0 +1,223 @@ +# Copyright 2010-2011 OpenStack Foundation +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +"""Common utilities used in testing""" + +import os +import shutil +import subprocess +import sys + +import fixtures +import testresources +import testtools +from testtools import content + +from pbr import options + + +class DiveDir(fixtures.Fixture): + """Dive into given directory and return back on cleanup. + + :ivar path: The target directory. + """ + + def __init__(self, path): + self.path = path + + def setUp(self): + super(DiveDir, self).setUp() + self.addCleanup(os.chdir, os.getcwd()) + os.chdir(self.path) + + +class BaseTestCase(testtools.TestCase, testresources.ResourcedTestCase): + + def setUp(self): + super(BaseTestCase, self).setUp() + test_timeout = os.environ.get('OS_TEST_TIMEOUT', 30) + try: + test_timeout = int(test_timeout) + except ValueError: + # If timeout value is invalid, fail hard. + print("OS_TEST_TIMEOUT set to invalid value" + " defaulting to no timeout") + test_timeout = 0 + if test_timeout > 0: + self.useFixture(fixtures.Timeout(test_timeout, gentle=True)) + + if os.environ.get('OS_STDOUT_CAPTURE') in options.TRUE_VALUES: + stdout = self.useFixture(fixtures.StringStream('stdout')).stream + self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout)) + if os.environ.get('OS_STDERR_CAPTURE') in options.TRUE_VALUES: + stderr = self.useFixture(fixtures.StringStream('stderr')).stream + self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr)) + self.log_fixture = self.useFixture( + fixtures.FakeLogger('pbr')) + + # Older git does not have config --local, so create a temporary home + # directory to permit using git config --global without stepping on + # developer configuration. + self.useFixture(fixtures.TempHomeDir()) + self.useFixture(fixtures.NestedTempfile()) + self.useFixture(fixtures.FakeLogger()) + # TODO(lifeless) we should remove PBR_VERSION from the environment. + # rather than setting it, because thats not representative - we need to + # test non-preversioned codepaths too! + self.useFixture(fixtures.EnvironmentVariable('PBR_VERSION', '0.0')) + + self.temp_dir = self.useFixture(fixtures.TempDir()).path + self.package_dir = os.path.join(self.temp_dir, 'testpackage') + shutil.copytree(os.path.join(os.path.dirname(__file__), 'testpackage'), + self.package_dir) + self.addCleanup(os.chdir, os.getcwd()) + os.chdir(self.package_dir) + self.addCleanup(self._discard_testpackage) + # Tests can opt into non-PBR_VERSION by setting preversioned=False as + # an attribute. + if not getattr(self, 'preversioned', True): + self.useFixture(fixtures.EnvironmentVariable('PBR_VERSION')) + setup_cfg_path = os.path.join(self.package_dir, 'setup.cfg') + with open(setup_cfg_path, 'rt') as cfg: + content = cfg.read() + content = content.replace(u'version = 0.1.dev', u'') + with open(setup_cfg_path, 'wt') as cfg: + cfg.write(content) + + def _discard_testpackage(self): + # Remove pbr.testpackage from sys.modules so that it can be freshly + # re-imported by the next test + for k in list(sys.modules): + if (k == 'pbr_testpackage' or + k.startswith('pbr_testpackage.')): + del sys.modules[k] + + def run_pbr(self, *args, **kwargs): + return self._run_cmd('pbr', args, **kwargs) + + def run_setup(self, *args, **kwargs): + return self._run_cmd(sys.executable, ('setup.py',) + args, **kwargs) + + def _run_cmd(self, cmd, args=[], allow_fail=True, cwd=None): + """Run a command in the root of the test working copy. + + Runs a command, with the given argument list, in the root of the test + working copy--returns the stdout and stderr streams and the exit code + from the subprocess. + + :param cwd: If falsy run within the test package dir, otherwise run + within the named path. + """ + cwd = cwd or self.package_dir + result = _run_cmd([cmd] + list(args), cwd=cwd) + if result[2] and not allow_fail: + raise Exception("Command failed retcode=%s" % result[2]) + return result + + +class CapturedSubprocess(fixtures.Fixture): + """Run a process and capture its output. + + :attr stdout: The output (a string). + :attr stderr: The standard error (a string). + :attr returncode: The return code of the process. + + Note that stdout and stderr are decoded from the bytestrings subprocess + returns using error=replace. + """ + + def __init__(self, label, *args, **kwargs): + """Create a CapturedSubprocess. + + :param label: A label for the subprocess in the test log. E.g. 'foo'. + :param *args: The *args to pass to Popen. + :param **kwargs: The **kwargs to pass to Popen. + """ + super(CapturedSubprocess, self).__init__() + self.label = label + self.args = args + self.kwargs = kwargs + self.kwargs['stderr'] = subprocess.PIPE + self.kwargs['stdin'] = subprocess.PIPE + self.kwargs['stdout'] = subprocess.PIPE + + def setUp(self): + super(CapturedSubprocess, self).setUp() + proc = subprocess.Popen(*self.args, **self.kwargs) + out, err = proc.communicate() + self.out = out.decode('utf-8', 'replace') + self.err = err.decode('utf-8', 'replace') + self.addDetail(self.label + '-stdout', content.text_content(self.out)) + self.addDetail(self.label + '-stderr', content.text_content(self.err)) + self.returncode = proc.returncode + if proc.returncode: + raise AssertionError( + 'Failed process args=%r, kwargs=%r, returncode=%s' % ( + self.args, self.kwargs, proc.returncode)) + self.addCleanup(delattr, self, 'out') + self.addCleanup(delattr, self, 'err') + self.addCleanup(delattr, self, 'returncode') + + +def _run_cmd(args, cwd): + """Run the command args in cwd. + + :param args: The command to run e.g. ['git', 'status'] + :param cwd: The directory to run the comamnd in. + :return: ((stdout, stderr), returncode) + """ + p = subprocess.Popen( + args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, cwd=cwd) + streams = tuple(s.decode('latin1').strip() for s in p.communicate()) + for stream_content in streams: + print(stream_content) + return (streams) + (p.returncode,) + + +def _config_git(): + _run_cmd( + ['git', 'config', '--global', 'user.email', 'example@example.com'], + None) + _run_cmd( + ['git', 'config', '--global', 'user.name', 'OpenStack Developer'], + None) + _run_cmd( + ['git', 'config', '--global', 'user.signingkey', + 'example@example.com'], None) diff --git a/venv/Lib/site-packages/pbr/tests/test_commands.py b/venv/Lib/site-packages/pbr/tests/test_commands.py new file mode 100644 index 00000000..51e27116 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_commands.py @@ -0,0 +1,84 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +from testtools import content + +from pbr.tests import base + + +class TestCommands(base.BaseTestCase): + def test_custom_build_py_command(self): + """Test custom build_py command. + + Test that a custom subclass of the build_py command runs when listed in + the commands [global] option, rather than the normal build command. + """ + + stdout, stderr, return_code = self.run_setup('build_py') + self.addDetail('stdout', content.text_content(stdout)) + self.addDetail('stderr', content.text_content(stderr)) + self.assertIn('Running custom build_py command.', stdout) + self.assertEqual(0, return_code) + + def test_custom_deb_version_py_command(self): + """Test custom deb_version command.""" + stdout, stderr, return_code = self.run_setup('deb_version') + self.addDetail('stdout', content.text_content(stdout)) + self.addDetail('stderr', content.text_content(stderr)) + self.assertIn('Extracting deb version', stdout) + self.assertEqual(0, return_code) + + def test_custom_rpm_version_py_command(self): + """Test custom rpm_version command.""" + stdout, stderr, return_code = self.run_setup('rpm_version') + self.addDetail('stdout', content.text_content(stdout)) + self.addDetail('stderr', content.text_content(stderr)) + self.assertIn('Extracting rpm version', stdout) + self.assertEqual(0, return_code) + + def test_freeze_command(self): + """Test that freeze output is sorted in a case-insensitive manner.""" + stdout, stderr, return_code = self.run_pbr('freeze') + self.assertEqual(0, return_code) + pkgs = [] + for l in stdout.split('\n'): + pkgs.append(l.split('==')[0].lower()) + pkgs_sort = sorted(pkgs[:]) + self.assertEqual(pkgs_sort, pkgs) diff --git a/venv/Lib/site-packages/pbr/tests/test_core.py b/venv/Lib/site-packages/pbr/tests/test_core.py new file mode 100644 index 00000000..ccd14aba --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_core.py @@ -0,0 +1,151 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +import glob +import os +import tarfile + +import fixtures + +from pbr.tests import base + + +class TestCore(base.BaseTestCase): + + cmd_names = ('pbr_test_cmd', 'pbr_test_cmd_with_class') + + def check_script_install(self, install_stdout): + for cmd_name in self.cmd_names: + install_txt = 'Installing %s script to %s' % (cmd_name, + self.temp_dir) + self.assertIn(install_txt, install_stdout) + + cmd_filename = os.path.join(self.temp_dir, cmd_name) + + script_txt = open(cmd_filename, 'r').read() + self.assertNotIn('pkg_resources', script_txt) + + stdout, _, return_code = self._run_cmd(cmd_filename) + self.assertIn("PBR", stdout) + + def test_setup_py_keywords(self): + """setup.py --keywords. + + Test that the `./setup.py --keywords` command returns the correct + value without balking. + """ + + self.run_setup('egg_info') + stdout, _, _ = self.run_setup('--keywords') + assert stdout == 'packaging, distutils, setuptools' + + def test_setup_py_build_sphinx(self): + stdout, _, return_code = self.run_setup('build_sphinx') + self.assertEqual(0, return_code) + + def test_sdist_extra_files(self): + """Test that the extra files are correctly added.""" + + stdout, _, return_code = self.run_setup('sdist', '--formats=gztar') + + # There can be only one + try: + tf_path = glob.glob(os.path.join('dist', '*.tar.gz'))[0] + except IndexError: + assert False, 'source dist not found' + + tf = tarfile.open(tf_path) + names = ['/'.join(p.split('/')[1:]) for p in tf.getnames()] + + self.assertIn('extra-file.txt', names) + + def test_console_script_install(self): + """Test that we install a non-pkg-resources console script.""" + + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + stdout, _, return_code = self.run_setup( + 'install_scripts', '--install-dir=%s' % self.temp_dir) + + self.useFixture( + fixtures.EnvironmentVariable('PYTHONPATH', '.')) + + self.check_script_install(stdout) + + def test_console_script_develop(self): + """Test that we develop a non-pkg-resources console script.""" + + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + self.useFixture( + fixtures.EnvironmentVariable( + 'PYTHONPATH', ".:%s" % self.temp_dir)) + + stdout, _, return_code = self.run_setup( + 'develop', '--install-dir=%s' % self.temp_dir) + + self.check_script_install(stdout) + + +class TestGitSDist(base.BaseTestCase): + + def setUp(self): + super(TestGitSDist, self).setUp() + + stdout, _, return_code = self._run_cmd('git', ('init',)) + if return_code: + self.skipTest("git not installed") + + stdout, _, return_code = self._run_cmd('git', ('add', '.')) + stdout, _, return_code = self._run_cmd( + 'git', ('commit', '-m', 'Turn this into a git repo')) + + stdout, _, return_code = self.run_setup('sdist', '--formats=gztar') + + def test_sdist_git_extra_files(self): + """Test that extra files found in git are correctly added.""" + # There can be only one + tf_path = glob.glob(os.path.join('dist', '*.tar.gz'))[0] + tf = tarfile.open(tf_path) + names = ['/'.join(p.split('/')[1:]) for p in tf.getnames()] + + self.assertIn('git-extra-file.txt', names) diff --git a/venv/Lib/site-packages/pbr/tests/test_files.py b/venv/Lib/site-packages/pbr/tests/test_files.py new file mode 100644 index 00000000..94a2d9ad --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_files.py @@ -0,0 +1,148 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from __future__ import print_function + +import os + +import fixtures + +from pbr.hooks import files +from pbr.tests import base + + +class FilesConfigTest(base.BaseTestCase): + + def setUp(self): + super(FilesConfigTest, self).setUp() + + pkg_fixture = fixtures.PythonPackage( + "fake_package", [ + ("fake_module.py", b""), + ("other_fake_module.py", b""), + ]) + self.useFixture(pkg_fixture) + pkg_etc = os.path.join(pkg_fixture.base, 'etc') + pkg_ansible = os.path.join(pkg_fixture.base, 'ansible', + 'kolla-ansible', 'test') + dir_spcs = os.path.join(pkg_fixture.base, 'dir with space') + dir_subdir_spc = os.path.join(pkg_fixture.base, 'multi space', + 'more spaces') + pkg_sub = os.path.join(pkg_etc, 'sub') + subpackage = os.path.join( + pkg_fixture.base, 'fake_package', 'subpackage') + os.makedirs(pkg_sub) + os.makedirs(subpackage) + os.makedirs(pkg_ansible) + os.makedirs(dir_spcs) + os.makedirs(dir_subdir_spc) + with open(os.path.join(pkg_etc, "foo"), 'w') as foo_file: + foo_file.write("Foo Data") + with open(os.path.join(pkg_sub, "bar"), 'w') as foo_file: + foo_file.write("Bar Data") + with open(os.path.join(pkg_ansible, "baz"), 'w') as baz_file: + baz_file.write("Baz Data") + with open(os.path.join(subpackage, "__init__.py"), 'w') as foo_file: + foo_file.write("# empty") + with open(os.path.join(dir_spcs, "file with spc"), 'w') as spc_file: + spc_file.write("# empty") + with open(os.path.join(dir_subdir_spc, "file with spc"), 'w') as file_: + file_.write("# empty") + + self.useFixture(base.DiveDir(pkg_fixture.base)) + + def test_implicit_auto_package(self): + config = dict( + files=dict( + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn('subpackage', config['files']['packages']) + + def test_auto_package(self): + config = dict( + files=dict( + packages='fake_package', + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn('subpackage', config['files']['packages']) + + def test_data_files_globbing(self): + config = dict( + files=dict( + data_files="\n etc/pbr = etc/*" + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn( + "\n'etc/pbr/' = \n 'etc/foo'\n'etc/pbr/sub' = \n 'etc/sub/bar'", + config['files']['data_files']) + + def test_data_files_with_spaces(self): + config = dict( + files=dict( + data_files="\n 'i like spaces' = 'dir with space'/*" + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn( + "\n'i like spaces/' = \n 'dir with space/file with spc'", + config['files']['data_files']) + + def test_data_files_with_spaces_subdirectories(self): + # test that we can handle whitespace in subdirectories + data_files = "\n 'one space/two space' = 'multi space/more spaces'/*" + expected = ( + "\n'one space/two space/' = " + "\n 'multi space/more spaces/file with spc'") + config = dict( + files=dict( + data_files=data_files + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn(expected, config['files']['data_files']) + + def test_data_files_with_spaces_quoted_components(self): + # test that we can quote individual path components + data_files = ( + "\n'one space'/'two space' = 'multi space'/'more spaces'/*" + ) + expected = ("\n'one space/two space/' = " + "\n 'multi space/more spaces/file with spc'") + config = dict( + files=dict( + data_files=data_files + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn(expected, config['files']['data_files']) + + def test_data_files_globbing_source_prefix_in_directory_name(self): + # We want to test that the string, "docs", is not replaced in a + # subdirectory name, "sub-docs" + config = dict( + files=dict( + data_files="\n share/ansible = ansible/*" + ) + ) + files.FilesConfig(config, 'fake_package').run() + self.assertIn( + "\n'share/ansible/' = " + "\n'share/ansible/kolla-ansible' = " + "\n'share/ansible/kolla-ansible/test' = " + "\n 'ansible/kolla-ansible/test/baz'", + config['files']['data_files']) diff --git a/venv/Lib/site-packages/pbr/tests/test_hooks.py b/venv/Lib/site-packages/pbr/tests/test_hooks.py new file mode 100644 index 00000000..3f747904 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_hooks.py @@ -0,0 +1,75 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +import os + +from testtools import matchers +from testtools import skipUnless + +from pbr import testr_command +from pbr.tests import base +from pbr.tests import util + + +class TestHooks(base.BaseTestCase): + def setUp(self): + super(TestHooks, self).setUp() + with util.open_config( + os.path.join(self.package_dir, 'setup.cfg')) as cfg: + cfg.set('global', 'setup-hooks', + 'pbr_testpackage._setup_hooks.test_hook_1\n' + 'pbr_testpackage._setup_hooks.test_hook_2') + + def test_global_setup_hooks(self): + """Test setup_hooks. + + Test that setup_hooks listed in the [global] section of setup.cfg are + executed in order. + """ + + stdout, _, return_code = self.run_setup('egg_info') + assert 'test_hook_1\ntest_hook_2' in stdout + assert return_code == 0 + + @skipUnless(testr_command.have_testr, "testrepository not available") + def test_custom_commands_known(self): + stdout, _, return_code = self.run_setup('--help-commands') + self.assertFalse(return_code) + self.assertThat(stdout, matchers.Contains(" testr ")) diff --git a/venv/Lib/site-packages/pbr/tests/test_integration.py b/venv/Lib/site-packages/pbr/tests/test_integration.py new file mode 100644 index 00000000..8e96f21f --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_integration.py @@ -0,0 +1,269 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os.path +import shlex +import sys + +import fixtures +import testtools +import textwrap + +from pbr.tests import base +from pbr.tests import test_packaging + +PIPFLAGS = shlex.split(os.environ.get('PIPFLAGS', '')) +PIPVERSION = os.environ.get('PIPVERSION', 'pip') +PBRVERSION = os.environ.get('PBRVERSION', 'pbr') +REPODIR = os.environ.get('REPODIR', '') +WHEELHOUSE = os.environ.get('WHEELHOUSE', '') +PIP_CMD = ['-m', 'pip'] + PIPFLAGS + ['install', '-f', WHEELHOUSE] +PROJECTS = shlex.split(os.environ.get('PROJECTS', '')) +PBR_ROOT = os.path.abspath(os.path.join(__file__, '..', '..', '..')) + + +def all_projects(): + if not REPODIR: + return + # Future: make this path parameterisable. + excludes = set(['tempest', 'requirements']) + for name in PROJECTS: + name = name.strip() + short_name = name.split('/')[-1] + try: + with open(os.path.join( + REPODIR, short_name, 'setup.py'), 'rt') as f: + if 'pbr' not in f.read(): + continue + except IOError: + continue + if short_name in excludes: + continue + yield (short_name, dict(name=name, short_name=short_name)) + + +class TestIntegration(base.BaseTestCase): + + scenarios = list(all_projects()) + + def setUp(self): + # Integration tests need a higher default - big repos can be slow to + # clone, particularly under guest load. + env = fixtures.EnvironmentVariable( + 'OS_TEST_TIMEOUT', os.environ.get('OS_TEST_TIMEOUT', '600')) + with env: + super(TestIntegration, self).setUp() + base._config_git() + + @testtools.skipUnless( + os.environ.get('PBR_INTEGRATION', None) == '1', + 'integration tests not enabled') + def test_integration(self): + # Test that we can: + # - run sdist from the repo in a venv + # - install the resulting tarball in a new venv + # - pip install the repo + # - pip install -e the repo + # We don't break these into separate tests because we'd need separate + # source dirs to isolate from side effects of running pip, and the + # overheads of setup would start to beat the benefits of parallelism. + self.useFixture(base.CapturedSubprocess( + 'sync-req', + ['python', 'update.py', os.path.join(REPODIR, self.short_name)], + cwd=os.path.join(REPODIR, 'requirements'))) + self.useFixture(base.CapturedSubprocess( + 'commit-requirements', + 'git diff --quiet || git commit -amrequirements', + cwd=os.path.join(REPODIR, self.short_name), shell=True)) + path = os.path.join( + self.useFixture(fixtures.TempDir()).path, 'project') + self.useFixture(base.CapturedSubprocess( + 'clone', + ['git', 'clone', os.path.join(REPODIR, self.short_name), path])) + venv = self.useFixture( + test_packaging.Venv('sdist', + modules=['pip', 'wheel', PBRVERSION], + pip_cmd=PIP_CMD)) + python = venv.python + self.useFixture(base.CapturedSubprocess( + 'sdist', [python, 'setup.py', 'sdist'], cwd=path)) + venv = self.useFixture( + test_packaging.Venv('tarball', + modules=['pip', 'wheel', PBRVERSION], + pip_cmd=PIP_CMD)) + python = venv.python + filename = os.path.join( + path, 'dist', os.listdir(os.path.join(path, 'dist'))[0]) + self.useFixture(base.CapturedSubprocess( + 'tarball', [python] + PIP_CMD + [filename])) + venv = self.useFixture( + test_packaging.Venv('install-git', + modules=['pip', 'wheel', PBRVERSION], + pip_cmd=PIP_CMD)) + root = venv.path + python = venv.python + self.useFixture(base.CapturedSubprocess( + 'install-git', [python] + PIP_CMD + ['git+file://' + path])) + if self.short_name == 'nova': + found = False + for _, _, filenames in os.walk(root): + if 'migrate.cfg' in filenames: + found = True + self.assertTrue(found) + venv = self.useFixture( + test_packaging.Venv('install-e', + modules=['pip', 'wheel', PBRVERSION], + pip_cmd=PIP_CMD)) + root = venv.path + python = venv.python + self.useFixture(base.CapturedSubprocess( + 'install-e', [python] + PIP_CMD + ['-e', path])) + + +class TestInstallWithoutPbr(base.BaseTestCase): + + @testtools.skipUnless( + os.environ.get('PBR_INTEGRATION', None) == '1', + 'integration tests not enabled') + def test_install_without_pbr(self): + # Test easy-install of a thing that depends on a thing using pbr + tempdir = self.useFixture(fixtures.TempDir()).path + # A directory containing sdists of the things we're going to depend on + # in using-package. + dist_dir = os.path.join(tempdir, 'distdir') + os.mkdir(dist_dir) + self._run_cmd(sys.executable, ('setup.py', 'sdist', '-d', dist_dir), + allow_fail=False, cwd=PBR_ROOT) + # testpkg - this requires a pbr-using package + test_pkg_dir = os.path.join(tempdir, 'testpkg') + os.mkdir(test_pkg_dir) + pkgs = { + 'pkgTest': { + 'setup.py': textwrap.dedent("""\ + #!/usr/bin/env python + import setuptools + setuptools.setup( + name = 'pkgTest', + tests_require = ['pkgReq'], + test_suite='pkgReq' + ) + """), + 'setup.cfg': textwrap.dedent("""\ + [easy_install] + find_links = %s + """ % dist_dir)}, + 'pkgReq': { + 'requirements.txt': textwrap.dedent("""\ + pbr + """), + 'pkgReq/__init__.py': textwrap.dedent("""\ + print("FakeTest loaded and ran") + """)}, + } + pkg_dirs = self.useFixture( + test_packaging.CreatePackages(pkgs)).package_dirs + test_pkg_dir = pkg_dirs['pkgTest'] + req_pkg_dir = pkg_dirs['pkgReq'] + + self._run_cmd(sys.executable, ('setup.py', 'sdist', '-d', dist_dir), + allow_fail=False, cwd=req_pkg_dir) + # A venv to test within + venv = self.useFixture(test_packaging.Venv('nopbr', ['pip', 'wheel'])) + python = venv.python + # Run the depending script + self.useFixture(base.CapturedSubprocess( + 'nopbr', [python] + ['setup.py', 'test'], cwd=test_pkg_dir)) + + +class TestMarkersPip(base.BaseTestCase): + + scenarios = [ + ('pip-1.5', {'modules': ['pip>=1.5,<1.6']}), + ('pip-6.0', {'modules': ['pip>=6.0,<6.1']}), + ('pip-latest', {'modules': ['pip']}), + ('setuptools-EL7', {'modules': ['pip==1.4.1', 'setuptools==0.9.8']}), + ('setuptools-Trusty', {'modules': ['pip==1.5', 'setuptools==2.2']}), + ('setuptools-minimum', {'modules': ['pip==1.5', 'setuptools==0.7.2']}), + ] + + @testtools.skipUnless( + os.environ.get('PBR_INTEGRATION', None) == '1', + 'integration tests not enabled') + def test_pip_versions(self): + pkgs = { + 'test_markers': + {'requirements.txt': textwrap.dedent("""\ + pkg_a; python_version=='1.2' + pkg_b; python_version!='1.2' + """)}, + 'pkg_a': {}, + 'pkg_b': {}, + } + pkg_dirs = self.useFixture( + test_packaging.CreatePackages(pkgs)).package_dirs + temp_dir = self.useFixture(fixtures.TempDir()).path + repo_dir = os.path.join(temp_dir, 'repo') + venv = self.useFixture(test_packaging.Venv('markers')) + bin_python = venv.python + os.mkdir(repo_dir) + for module in self.modules: + self._run_cmd( + bin_python, + ['-m', 'pip', 'install', '--upgrade', module], + cwd=venv.path, allow_fail=False) + for pkg in pkg_dirs: + self._run_cmd( + bin_python, ['setup.py', 'sdist', '-d', repo_dir], + cwd=pkg_dirs[pkg], allow_fail=False) + self._run_cmd( + bin_python, + ['-m', 'pip', 'install', '--no-index', '-f', repo_dir, + 'test_markers'], + cwd=venv.path, allow_fail=False) + self.assertIn('pkg-b', self._run_cmd( + bin_python, ['-m', 'pip', 'freeze'], cwd=venv.path, + allow_fail=False)[0]) + + +class TestLTSSupport(base.BaseTestCase): + + # These versions come from the versions installed from the 'virtualenv' + # command from the 'python-virtualenv' package. + scenarios = [ + ('EL7', {'modules': ['pip==1.4.1', 'setuptools==0.9.8'], + 'py3support': True}), # And EPEL6 + ('Trusty', {'modules': ['pip==1.5', 'setuptools==2.2'], + 'py3support': True}), + ('Jessie', {'modules': ['pip==1.5.6', 'setuptools==5.5.1'], + 'py3support': True}), + # Wheezy has pip1.1, which cannot be called with '-m pip' + # So we'll use a different version of pip here. + ('WheezyPrecise', {'modules': ['pip==1.4.1', 'setuptools==0.6c11'], + 'py3support': False}) + ] + + @testtools.skipUnless( + os.environ.get('PBR_INTEGRATION', None) == '1', + 'integration tests not enabled') + def test_lts_venv_default_versions(self): + if (sys.version_info[0] == 3 and not self.py3support): + self.skipTest('This combination will not install with py3, ' + 'skipping test') + venv = self.useFixture( + test_packaging.Venv('setuptools', modules=self.modules)) + bin_python = venv.python + pbr = 'file://%s#egg=pbr' % PBR_ROOT + # Installing PBR is a reasonable indication that we are not broken on + # this particular combination of setuptools and pip. + self._run_cmd(bin_python, ['-m', 'pip', 'install', pbr], + cwd=venv.path, allow_fail=False) diff --git a/venv/Lib/site-packages/pbr/tests/test_packaging.py b/venv/Lib/site-packages/pbr/tests/test_packaging.py new file mode 100644 index 00000000..07be5477 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_packaging.py @@ -0,0 +1,1113 @@ +# Copyright (c) 2013 New Dream Network, LLC (DreamHost) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +import email +import email.errors +import imp +import os +import re +import sysconfig +import tempfile +import textwrap + +import fixtures +import mock +import pkg_resources +import six +import testscenarios +import testtools +from testtools import matchers +import virtualenv +from wheel import wheelfile + +from pbr import git +from pbr import packaging +from pbr.tests import base + + +PBR_ROOT = os.path.abspath(os.path.join(__file__, '..', '..', '..')) + + +class TestRepo(fixtures.Fixture): + """A git repo for testing with. + + Use of TempHomeDir with this fixture is strongly recommended as due to the + lack of config --local in older gits, it will write to the users global + configuration without TempHomeDir. + """ + + def __init__(self, basedir): + super(TestRepo, self).__init__() + self._basedir = basedir + + def setUp(self): + super(TestRepo, self).setUp() + base._run_cmd(['git', 'init', '.'], self._basedir) + base._config_git() + base._run_cmd(['git', 'add', '.'], self._basedir) + + def commit(self, message_content='test commit'): + files = len(os.listdir(self._basedir)) + path = self._basedir + '/%d' % files + open(path, 'wt').close() + base._run_cmd(['git', 'add', path], self._basedir) + base._run_cmd(['git', 'commit', '-m', message_content], self._basedir) + + def uncommit(self): + base._run_cmd(['git', 'reset', '--hard', 'HEAD^'], self._basedir) + + def tag(self, version): + base._run_cmd( + ['git', 'tag', '-sm', 'test tag', version], self._basedir) + + +class GPGKeyFixture(fixtures.Fixture): + """Creates a GPG key for testing. + + It's recommended that this be used in concert with a unique home + directory. + """ + + def setUp(self): + super(GPGKeyFixture, self).setUp() + tempdir = self.useFixture(fixtures.TempDir()) + gnupg_version_re = re.compile(r'^gpg\s.*\s([\d+])\.([\d+])\.([\d+])') + gnupg_version = base._run_cmd(['gpg', '--version'], tempdir.path) + for line in gnupg_version[0].split('\n'): + gnupg_version = gnupg_version_re.match(line) + if gnupg_version: + gnupg_version = (int(gnupg_version.group(1)), + int(gnupg_version.group(2)), + int(gnupg_version.group(3))) + break + else: + if gnupg_version is None: + gnupg_version = (0, 0, 0) + + config_file = os.path.join(tempdir.path, 'key-config') + with open(config_file, 'wt') as f: + if gnupg_version[0] == 2 and gnupg_version[1] >= 1: + f.write(""" + %no-protection + %transient-key + """) + f.write(""" + %no-ask-passphrase + Key-Type: RSA + Name-Real: Example Key + Name-Comment: N/A + Name-Email: example@example.com + Expire-Date: 2d + Preferences: (setpref) + %commit + """) + + # Note that --quick-random (--debug-quick-random in GnuPG 2.x) + # does not have a corresponding preferences file setting and + # must be passed explicitly on the command line instead + if gnupg_version[0] == 1: + gnupg_random = '--quick-random' + elif gnupg_version[0] >= 2: + gnupg_random = '--debug-quick-random' + else: + gnupg_random = '' + + base._run_cmd( + ['gpg', '--gen-key', '--batch', gnupg_random, config_file], + tempdir.path) + + +class Venv(fixtures.Fixture): + """Create a virtual environment for testing with. + + :attr path: The path to the environment root. + :attr python: The path to the python binary in the environment. + """ + + def __init__(self, reason, modules=(), pip_cmd=None): + """Create a Venv fixture. + + :param reason: A human readable string to bake into the venv + file path to aid diagnostics in the case of failures. + :param modules: A list of modules to install, defaults to latest + pip, wheel, and the working copy of PBR. + :attr pip_cmd: A list to override the default pip_cmd passed to + python for installing base packages. + """ + self._reason = reason + if modules == (): + pbr = 'file://%s#egg=pbr' % PBR_ROOT + modules = ['pip', 'wheel', pbr] + self.modules = modules + if pip_cmd is None: + self.pip_cmd = ['-m', 'pip', 'install'] + else: + self.pip_cmd = pip_cmd + + def _setUp(self): + path = self.useFixture(fixtures.TempDir()).path + virtualenv.create_environment(path, clear=True) + python = os.path.join(path, 'bin', 'python') + command = [python] + self.pip_cmd + ['-U'] + if self.modules and len(self.modules) > 0: + command.extend(self.modules) + self.useFixture(base.CapturedSubprocess( + 'mkvenv-' + self._reason, command)) + self.addCleanup(delattr, self, 'path') + self.addCleanup(delattr, self, 'python') + self.path = path + self.python = python + return path, python + + +class CreatePackages(fixtures.Fixture): + """Creates packages from dict with defaults + + :param package_dirs: A dict of package name to directory strings + {'pkg_a': '/tmp/path/to/tmp/pkg_a', 'pkg_b': '/tmp/path/to/tmp/pkg_b'} + """ + + defaults = { + 'setup.py': textwrap.dedent(six.u("""\ + #!/usr/bin/env python + import setuptools + setuptools.setup( + setup_requires=['pbr'], + pbr=True, + ) + """)), + 'setup.cfg': textwrap.dedent(six.u("""\ + [metadata] + name = {pkg_name} + """)) + } + + def __init__(self, packages): + """Creates packages from dict with defaults + + :param packages: a dict where the keys are the package name and a + value that is a second dict that may be empty, containing keys of + filenames and a string value of the contents. + {'package-a': {'requirements.txt': 'string', 'setup.cfg': 'string'} + """ + self.packages = packages + + def _writeFile(self, directory, file_name, contents): + path = os.path.abspath(os.path.join(directory, file_name)) + path_dir = os.path.dirname(path) + if not os.path.exists(path_dir): + if path_dir.startswith(directory): + os.makedirs(path_dir) + else: + raise ValueError + with open(path, 'wt') as f: + f.write(contents) + + def _setUp(self): + tmpdir = self.useFixture(fixtures.TempDir()).path + package_dirs = {} + for pkg_name in self.packages: + pkg_path = os.path.join(tmpdir, pkg_name) + package_dirs[pkg_name] = pkg_path + os.mkdir(pkg_path) + for cf in ['setup.py', 'setup.cfg']: + if cf in self.packages[pkg_name]: + contents = self.packages[pkg_name].pop(cf) + else: + contents = self.defaults[cf].format(pkg_name=pkg_name) + self._writeFile(pkg_path, cf, contents) + + for cf in self.packages[pkg_name]: + self._writeFile(pkg_path, cf, self.packages[pkg_name][cf]) + self.useFixture(TestRepo(pkg_path)).commit() + self.addCleanup(delattr, self, 'package_dirs') + self.package_dirs = package_dirs + return package_dirs + + +class TestPackagingInGitRepoWithCommit(base.BaseTestCase): + + scenarios = [ + ('preversioned', dict(preversioned=True)), + ('postversioned', dict(preversioned=False)), + ] + + def setUp(self): + super(TestPackagingInGitRepoWithCommit, self).setUp() + self.repo = self.useFixture(TestRepo(self.package_dir)) + self.repo.commit() + + def test_authors(self): + self.run_setup('sdist', allow_fail=False) + # One commit, something should be in the authors list + with open(os.path.join(self.package_dir, 'AUTHORS'), 'r') as f: + body = f.read() + self.assertNotEqual(body, '') + + def test_changelog(self): + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + # One commit, something should be in the ChangeLog list + self.assertNotEqual(body, '') + + def test_changelog_handles_astrisk(self): + self.repo.commit(message_content="Allow *.openstack.org to work") + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertIn(r'\*', body) + + def test_changelog_handles_dead_links_in_commit(self): + self.repo.commit(message_content="See os_ for to_do about qemu_.") + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertIn(r'os\_', body) + self.assertIn(r'to\_do', body) + self.assertIn(r'qemu\_', body) + + def test_changelog_handles_backticks(self): + self.repo.commit(message_content="Allow `openstack.org` to `work") + self.run_setup('sdist', allow_fail=False) + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertIn(r'\`', body) + + def test_manifest_exclude_honoured(self): + self.run_setup('sdist', allow_fail=False) + with open(os.path.join( + self.package_dir, + 'pbr_testpackage.egg-info/SOURCES.txt'), 'r') as f: + body = f.read() + self.assertThat( + body, matchers.Not(matchers.Contains('pbr_testpackage/extra.py'))) + self.assertThat(body, matchers.Contains('pbr_testpackage/__init__.py')) + + def test_install_writes_changelog(self): + stdout, _, _ = self.run_setup( + 'install', '--root', self.temp_dir + 'installed', + allow_fail=False) + self.expectThat(stdout, matchers.Contains('Generating ChangeLog')) + + +class TestExtrafileInstallation(base.BaseTestCase): + def test_install_glob(self): + stdout, _, _ = self.run_setup( + 'install', '--root', self.temp_dir + 'installed', + allow_fail=False) + self.expectThat( + stdout, matchers.Contains('copying data_files/a.txt')) + self.expectThat( + stdout, matchers.Contains('copying data_files/b.txt')) + + +class TestPackagingInGitRepoWithoutCommit(base.BaseTestCase): + + def setUp(self): + super(TestPackagingInGitRepoWithoutCommit, self).setUp() + self.useFixture(TestRepo(self.package_dir)) + self.run_setup('sdist', allow_fail=False) + + def test_authors(self): + # No commits, no authors in list + with open(os.path.join(self.package_dir, 'AUTHORS'), 'r') as f: + body = f.read() + self.assertEqual('\n', body) + + def test_changelog(self): + # No commits, nothing should be in the ChangeLog list + with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: + body = f.read() + self.assertEqual('CHANGES\n=======\n\n', body) + + +class TestPackagingWheels(base.BaseTestCase): + + def setUp(self): + super(TestPackagingWheels, self).setUp() + self.useFixture(TestRepo(self.package_dir)) + # Build the wheel + self.run_setup('bdist_wheel', allow_fail=False) + # Slowly construct the path to the generated whl + dist_dir = os.path.join(self.package_dir, 'dist') + relative_wheel_filename = os.listdir(dist_dir)[0] + absolute_wheel_filename = os.path.join( + dist_dir, relative_wheel_filename) + wheel_file = wheelfile.WheelFile(absolute_wheel_filename) + wheel_name = wheel_file.parsed_filename.group('namever') + # Create a directory path to unpack the wheel to + self.extracted_wheel_dir = os.path.join(dist_dir, wheel_name) + # Extract the wheel contents to the directory we just created + wheel_file.extractall(self.extracted_wheel_dir) + wheel_file.close() + + def test_data_directory_has_wsgi_scripts(self): + # Build the path to the scripts directory + scripts_dir = os.path.join( + self.extracted_wheel_dir, 'pbr_testpackage-0.0.data/scripts') + self.assertTrue(os.path.exists(scripts_dir)) + scripts = os.listdir(scripts_dir) + + self.assertIn('pbr_test_wsgi', scripts) + self.assertIn('pbr_test_wsgi_with_class', scripts) + self.assertNotIn('pbr_test_cmd', scripts) + self.assertNotIn('pbr_test_cmd_with_class', scripts) + + def test_generates_c_extensions(self): + built_package_dir = os.path.join( + self.extracted_wheel_dir, 'pbr_testpackage') + static_object_filename = 'testext.so' + soabi = get_soabi() + if soabi: + static_object_filename = 'testext.{0}.so'.format(soabi) + static_object_path = os.path.join( + built_package_dir, static_object_filename) + + self.assertTrue(os.path.exists(built_package_dir)) + self.assertTrue(os.path.exists(static_object_path)) + + +class TestPackagingHelpers(testtools.TestCase): + + def test_generate_script(self): + group = 'console_scripts' + entry_point = pkg_resources.EntryPoint( + name='test-ep', + module_name='pbr.packaging', + attrs=('LocalInstallScripts',)) + header = '#!/usr/bin/env fake-header\n' + template = ('%(group)s %(module_name)s %(import_target)s ' + '%(invoke_target)s') + + generated_script = packaging.generate_script( + group, entry_point, header, template) + + expected_script = ( + '#!/usr/bin/env fake-header\nconsole_scripts pbr.packaging ' + 'LocalInstallScripts LocalInstallScripts' + ) + self.assertEqual(expected_script, generated_script) + + def test_generate_script_validates_expectations(self): + group = 'console_scripts' + entry_point = pkg_resources.EntryPoint( + name='test-ep', + module_name='pbr.packaging') + header = '#!/usr/bin/env fake-header\n' + template = ('%(group)s %(module_name)s %(import_target)s ' + '%(invoke_target)s') + self.assertRaises( + ValueError, packaging.generate_script, group, entry_point, header, + template) + + entry_point = pkg_resources.EntryPoint( + name='test-ep', + module_name='pbr.packaging', + attrs=('attr1', 'attr2', 'attr3')) + self.assertRaises( + ValueError, packaging.generate_script, group, entry_point, header, + template) + + +class TestPackagingInPlainDirectory(base.BaseTestCase): + + def setUp(self): + super(TestPackagingInPlainDirectory, self).setUp() + + def test_authors(self): + self.run_setup('sdist', allow_fail=False) + # Not a git repo, no AUTHORS file created + filename = os.path.join(self.package_dir, 'AUTHORS') + self.assertFalse(os.path.exists(filename)) + + def test_changelog(self): + self.run_setup('sdist', allow_fail=False) + # Not a git repo, no ChangeLog created + filename = os.path.join(self.package_dir, 'ChangeLog') + self.assertFalse(os.path.exists(filename)) + + def test_install_no_ChangeLog(self): + stdout, _, _ = self.run_setup( + 'install', '--root', self.temp_dir + 'installed', + allow_fail=False) + self.expectThat( + stdout, matchers.Not(matchers.Contains('Generating ChangeLog'))) + + +class TestPresenceOfGit(base.BaseTestCase): + + def testGitIsInstalled(self): + with mock.patch.object(git, + '_run_shell_command') as _command: + _command.return_value = 'git version 1.8.4.1' + self.assertEqual(True, git._git_is_installed()) + + def testGitIsNotInstalled(self): + with mock.patch.object(git, + '_run_shell_command') as _command: + _command.side_effect = OSError + self.assertEqual(False, git._git_is_installed()) + + +class ParseRequirementsTest(base.BaseTestCase): + + def test_empty_requirements(self): + actual = packaging.parse_requirements([]) + self.assertEqual([], actual) + + def test_default_requirements(self): + """Ensure default files used if no files provided.""" + tempdir = tempfile.mkdtemp() + requirements = os.path.join(tempdir, 'requirements.txt') + with open(requirements, 'w') as f: + f.write('pbr') + # the defaults are relative to where pbr is called from so we need to + # override them. This is OK, however, as we want to validate that + # defaults are used - not what those defaults are + with mock.patch.object(packaging, 'REQUIREMENTS_FILES', ( + requirements,)): + result = packaging.parse_requirements() + self.assertEqual(['pbr'], result) + + def test_override_with_env(self): + """Ensure environment variable used if no files provided.""" + _, tmp_file = tempfile.mkstemp(prefix='openstack', suffix='.setup') + with open(tmp_file, 'w') as fh: + fh.write("foo\nbar") + self.useFixture( + fixtures.EnvironmentVariable('PBR_REQUIREMENTS_FILES', tmp_file)) + self.assertEqual(['foo', 'bar'], + packaging.parse_requirements()) + + def test_override_with_env_multiple_files(self): + _, tmp_file = tempfile.mkstemp(prefix='openstack', suffix='.setup') + with open(tmp_file, 'w') as fh: + fh.write("foo\nbar") + self.useFixture( + fixtures.EnvironmentVariable('PBR_REQUIREMENTS_FILES', + "no-such-file," + tmp_file)) + self.assertEqual(['foo', 'bar'], + packaging.parse_requirements()) + + def test_index_present(self): + tempdir = tempfile.mkdtemp() + requirements = os.path.join(tempdir, 'requirements.txt') + with open(requirements, 'w') as f: + f.write('-i https://myindex.local\n') + f.write(' --index-url https://myindex.local\n') + f.write(' --extra-index-url https://myindex.local\n') + f.write('--find-links https://myindex.local\n') + f.write('arequirement>=1.0\n') + result = packaging.parse_requirements([requirements]) + self.assertEqual(['arequirement>=1.0'], result) + + def test_nested_requirements(self): + tempdir = tempfile.mkdtemp() + requirements = os.path.join(tempdir, 'requirements.txt') + nested = os.path.join(tempdir, 'nested.txt') + with open(requirements, 'w') as f: + f.write('-r ' + nested) + with open(nested, 'w') as f: + f.write('pbr') + result = packaging.parse_requirements([requirements]) + self.assertEqual(['pbr'], result) + + +class ParseRequirementsTestScenarios(base.BaseTestCase): + + versioned_scenarios = [ + ('non-versioned', {'versioned': False, 'expected': ['bar']}), + ('versioned', {'versioned': True, 'expected': ['bar>=1.2.3']}) + ] + + subdirectory_scenarios = [ + ('non-subdirectory', {'has_subdirectory': False}), + ('has-subdirectory', {'has_subdirectory': True}) + ] + + scenarios = [ + ('normal', {'url': "foo\nbar", 'expected': ['foo', 'bar']}), + ('normal_with_comments', { + 'url': "# this is a comment\nfoo\n# and another one\nbar", + 'expected': ['foo', 'bar']}), + ('removes_index_lines', {'url': '-f foobar', 'expected': []}), + ] + + scenarios = scenarios + testscenarios.multiply_scenarios([ + ('ssh_egg_url', {'url': 'git+ssh://foo.com/zipball#egg=bar'}), + ('git_https_egg_url', {'url': 'git+https://foo.com/zipball#egg=bar'}), + ('http_egg_url', {'url': 'https://foo.com/zipball#egg=bar'}), + ], versioned_scenarios, subdirectory_scenarios) + + scenarios = scenarios + testscenarios.multiply_scenarios( + [ + ('git_egg_url', + {'url': 'git://foo.com/zipball#egg=bar', 'name': 'bar'}) + ], [ + ('non-editable', {'editable': False}), + ('editable', {'editable': True}), + ], + versioned_scenarios, subdirectory_scenarios) + + def test_parse_requirements(self): + tmp_file = tempfile.NamedTemporaryFile() + req_string = self.url + if hasattr(self, 'editable') and self.editable: + req_string = ("-e %s" % req_string) + if hasattr(self, 'versioned') and self.versioned: + req_string = ("%s-1.2.3" % req_string) + if hasattr(self, 'has_subdirectory') and self.has_subdirectory: + req_string = ("%s&subdirectory=baz" % req_string) + with open(tmp_file.name, 'w') as fh: + fh.write(req_string) + self.assertEqual(self.expected, + packaging.parse_requirements([tmp_file.name])) + + +class ParseDependencyLinksTest(base.BaseTestCase): + + def setUp(self): + super(ParseDependencyLinksTest, self).setUp() + _, self.tmp_file = tempfile.mkstemp(prefix="openstack", + suffix=".setup") + + def test_parse_dependency_normal(self): + with open(self.tmp_file, "w") as fh: + fh.write("http://test.com\n") + self.assertEqual( + ["http://test.com"], + packaging.parse_dependency_links([self.tmp_file])) + + def test_parse_dependency_with_git_egg_url(self): + with open(self.tmp_file, "w") as fh: + fh.write("-e git://foo.com/zipball#egg=bar") + self.assertEqual( + ["git://foo.com/zipball#egg=bar"], + packaging.parse_dependency_links([self.tmp_file])) + + +class TestVersions(base.BaseTestCase): + + scenarios = [ + ('preversioned', dict(preversioned=True)), + ('postversioned', dict(preversioned=False)), + ] + + def setUp(self): + super(TestVersions, self).setUp() + self.repo = self.useFixture(TestRepo(self.package_dir)) + self.useFixture(GPGKeyFixture()) + self.useFixture(base.DiveDir(self.package_dir)) + + def test_email_parsing_errors_are_handled(self): + mocked_open = mock.mock_open() + with mock.patch('pbr.packaging.open', mocked_open): + with mock.patch('email.message_from_file') as message_from_file: + message_from_file.side_effect = [ + email.errors.MessageError('Test'), + {'Name': 'pbr_testpackage'}] + version = packaging._get_version_from_pkg_metadata( + 'pbr_testpackage') + + self.assertTrue(message_from_file.called) + self.assertIsNone(version) + + def test_capitalized_headers(self): + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit('Sem-Ver: api-break') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('2.0.0.dev1')) + + def test_capitalized_headers_partial(self): + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit('Sem-ver: api-break') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('2.0.0.dev1')) + + def test_tagged_version_has_tag_version(self): + self.repo.commit() + self.repo.tag('1.2.3') + version = packaging._get_version_from_git('1.2.3') + self.assertEqual('1.2.3', version) + + def test_tagged_version_with_semver_compliant_prerelease(self): + self.repo.commit() + self.repo.tag('1.2.3-rc2') + version = packaging._get_version_from_git() + self.assertEqual('1.2.3.0rc2', version) + + def test_non_canonical_tagged_version_bump(self): + self.repo.commit() + self.repo.tag('1.4') + self.repo.commit('Sem-Ver: api-break') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('2.0.0.dev1')) + + def test_untagged_version_has_dev_version_postversion(self): + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit() + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.2.4.dev1')) + + def test_untagged_pre_release_has_pre_dev_version_postversion(self): + self.repo.commit() + self.repo.tag('1.2.3.0a1') + self.repo.commit() + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.2.3.0a2.dev1')) + + def test_untagged_version_minor_bump(self): + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit('sem-ver: deprecation') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.3.0.dev1')) + + def test_untagged_version_major_bump(self): + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit('sem-ver: api-break') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('2.0.0.dev1')) + + def test_untagged_version_has_dev_version_preversion(self): + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit() + version = packaging._get_version_from_git('1.2.5') + self.assertThat(version, matchers.StartsWith('1.2.5.dev1')) + + def test_untagged_version_after_pre_has_dev_version_preversion(self): + self.repo.commit() + self.repo.tag('1.2.3.0a1') + self.repo.commit() + version = packaging._get_version_from_git('1.2.5') + self.assertThat(version, matchers.StartsWith('1.2.5.dev1')) + + def test_untagged_version_after_rc_has_dev_version_preversion(self): + self.repo.commit() + self.repo.tag('1.2.3.0a1') + self.repo.commit() + version = packaging._get_version_from_git('1.2.3') + self.assertThat(version, matchers.StartsWith('1.2.3.0a2.dev1')) + + def test_untagged_version_after_semver_compliant_prerelease_tag(self): + self.repo.commit() + self.repo.tag('1.2.3-rc2') + self.repo.commit() + version = packaging._get_version_from_git() + self.assertEqual('1.2.3.0rc3.dev1', version) + + def test_preversion_too_low_simple(self): + # That is, the target version is either already released or not high + # enough for the semver requirements given api breaks etc. + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit() + # Note that we can't target 1.2.3 anymore - with 1.2.3 released we + # need to be working on 1.2.4. + err = self.assertRaises( + ValueError, packaging._get_version_from_git, '1.2.3') + self.assertThat(err.args[0], matchers.StartsWith('git history')) + + def test_preversion_too_low_semver_headers(self): + # That is, the target version is either already released or not high + # enough for the semver requirements given api breaks etc. + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit('sem-ver: feature') + # Note that we can't target 1.2.4, the feature header means we need + # to be working on 1.3.0 or above. + err = self.assertRaises( + ValueError, packaging._get_version_from_git, '1.2.4') + self.assertThat(err.args[0], matchers.StartsWith('git history')) + + def test_get_kwargs_corner_cases(self): + # No tags: + + def get_kwargs(tag): + git_dir = self.repo._basedir + '/.git' + return packaging._get_increment_kwargs(git_dir, tag) + + def _check_combinations(tag): + self.repo.commit() + self.assertEqual(dict(), get_kwargs(tag)) + self.repo.commit('sem-ver: bugfix') + self.assertEqual(dict(), get_kwargs(tag)) + self.repo.commit('sem-ver: feature') + self.assertEqual(dict(minor=True), get_kwargs(tag)) + self.repo.uncommit() + self.repo.commit('sem-ver: deprecation') + self.assertEqual(dict(minor=True), get_kwargs(tag)) + self.repo.uncommit() + self.repo.commit('sem-ver: api-break') + self.assertEqual(dict(major=True), get_kwargs(tag)) + self.repo.commit('sem-ver: deprecation') + self.assertEqual(dict(major=True, minor=True), get_kwargs(tag)) + _check_combinations('') + self.repo.tag('1.2.3') + _check_combinations('1.2.3') + + def test_invalid_tag_ignored(self): + # Fix for bug 1356784 - we treated any tag as a version, not just those + # that are valid versions. + self.repo.commit() + self.repo.tag('1') + self.repo.commit() + # when the tree is tagged and its wrong: + self.repo.tag('badver') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.0.1.dev1')) + # When the tree isn't tagged, we also fall through. + self.repo.commit() + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.0.1.dev2')) + # We don't fall through x.y versions + self.repo.commit() + self.repo.tag('1.2') + self.repo.commit() + self.repo.tag('badver2') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.2.1.dev1')) + # Or x.y.z versions + self.repo.commit() + self.repo.tag('1.2.3') + self.repo.commit() + self.repo.tag('badver3') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.2.4.dev1')) + # Or alpha/beta/pre versions + self.repo.commit() + self.repo.tag('1.2.4.0a1') + self.repo.commit() + self.repo.tag('badver4') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('1.2.4.0a2.dev1')) + # Non-release related tags are ignored. + self.repo.commit() + self.repo.tag('2') + self.repo.commit() + self.repo.tag('non-release-tag/2014.12.16-1') + version = packaging._get_version_from_git() + self.assertThat(version, matchers.StartsWith('2.0.1.dev1')) + + def test_valid_tag_honoured(self): + # Fix for bug 1370608 - we converted any target into a 'dev version' + # even if there was a distance of 0 - indicating that we were on the + # tag itself. + self.repo.commit() + self.repo.tag('1.3.0.0a1') + version = packaging._get_version_from_git() + self.assertEqual('1.3.0.0a1', version) + + def test_skip_write_git_changelog(self): + # Fix for bug 1467440 + self.repo.commit() + self.repo.tag('1.2.3') + os.environ['SKIP_WRITE_GIT_CHANGELOG'] = '1' + version = packaging._get_version_from_git('1.2.3') + self.assertEqual('1.2.3', version) + + def tearDown(self): + super(TestVersions, self).tearDown() + os.environ.pop('SKIP_WRITE_GIT_CHANGELOG', None) + + +class TestRequirementParsing(base.BaseTestCase): + + def test_requirement_parsing(self): + pkgs = { + 'test_reqparse': + { + 'requirements.txt': textwrap.dedent("""\ + bar + quux<1.0; python_version=='2.6' + requests-aws>=0.1.4 # BSD License (3 clause) + Routes>=1.12.3,!=2.0,!=2.1;python_version=='2.7' + requests-kerberos>=0.6;python_version=='2.7' # MIT + """), + 'setup.cfg': textwrap.dedent("""\ + [metadata] + name = test_reqparse + + [extras] + test = + foo + baz>3.2 :python_version=='2.7' # MIT + bar>3.3 :python_version=='2.7' # MIT # Apache + """)}, + } + pkg_dirs = self.useFixture(CreatePackages(pkgs)).package_dirs + pkg_dir = pkg_dirs['test_reqparse'] + # pkg_resources.split_sections uses None as the title of an + # anonymous section instead of the empty string. Weird. + expected_requirements = { + None: ['bar', 'requests-aws>=0.1.4'], + ":(python_version=='2.6')": ['quux<1.0'], + ":(python_version=='2.7')": ['Routes!=2.0,!=2.1,>=1.12.3', + 'requests-kerberos>=0.6'], + 'test': ['foo'], + "test:(python_version=='2.7')": ['baz>3.2', 'bar>3.3'] + } + venv = self.useFixture(Venv('reqParse')) + bin_python = venv.python + # Two things are tested by this + # 1) pbr properly parses markers from requiremnts.txt and setup.cfg + # 2) bdist_wheel causes pbr to not evaluate markers + self._run_cmd(bin_python, ('setup.py', 'bdist_wheel'), + allow_fail=False, cwd=pkg_dir) + egg_info = os.path.join(pkg_dir, 'test_reqparse.egg-info') + + requires_txt = os.path.join(egg_info, 'requires.txt') + with open(requires_txt, 'rt') as requires: + generated_requirements = dict( + pkg_resources.split_sections(requires)) + + # NOTE(dhellmann): We have to spell out the comparison because + # the rendering for version specifiers in a range is not + # consistent across versions of setuptools. + + for section, expected in expected_requirements.items(): + exp_parsed = [ + pkg_resources.Requirement.parse(s) + for s in expected + ] + gen_parsed = [ + pkg_resources.Requirement.parse(s) + for s in generated_requirements[section] + ] + self.assertEqual(exp_parsed, gen_parsed) + + +class TestRepositoryURLDependencies(base.BaseTestCase): + + def setUp(self): + super(TestRepositoryURLDependencies, self).setUp() + self.requirements = os.path.join(tempfile.mkdtemp(), + 'requirements.txt') + with open(self.requirements, 'w') as f: + f.write('\n'.join([ + '-e git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rc', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-beta', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123', # noqa + '-e git+git://git.project.org/Proj#egg=Proj1', + 'git+https://git.project.org/Proj#egg=Proj2-0.0.1', + '-e git+ssh://git.project.org/Proj#egg=Proj3', + 'svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2', + '-e svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5', + 'hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3', + '-e hg+http://hg.project.org/Proj@2019#egg=Proj', + 'hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4', + '-e hg+http://hg.project.org/Proj@special_feature#egg=Proj', + 'git://foo.com/zipball#egg=foo-bar-1.2.4', + 'pypi-proj1', 'pypi-proj2'])) + + def test_egg_fragment(self): + expected = [ + 'django-thumborize', + 'django-thumborize-beta', + 'django-thumborize2-beta', + 'django-thumborize2-beta>=4.0.1', + 'django-thumborize2-beta>=1.0.0-alpha.beta.1', + 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa + 'django-thumborize2-beta>=2.0.0-rc.1+build.123', + 'django-thumborize-beta>=0.0.4', + 'django-thumborize-beta>=1.2.3', + 'django-thumborize-beta>=10.20.30', + 'django-thumborize-beta>=1.1.2-prerelease+meta', + 'django-thumborize-beta>=1.1.2+meta', + 'django-thumborize-beta>=1.1.2+meta-valid', + 'django-thumborize-beta>=1.0.0-alpha', + 'django-thumborize-beta>=1.0.0-beta', + 'django-thumborize-beta>=1.0.0-alpha.beta', + 'django-thumborize-beta>=1.0.0-alpha.beta.1', + 'django-thumborize-beta>=1.0.0-alpha.1', + 'django-thumborize-beta>=1.0.0-alpha0.valid', + 'django-thumborize-beta>=1.0.0-alpha.0valid', + 'django-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'django-thumborize-beta>=1.0.0-rc.1+build.1', + 'django-thumborize-beta>=2.0.0-rc.1+build.123', + 'django-thumborize-beta>=1.2.3-beta', + 'django-thumborize-beta>=10.2.3-DEV-SNAPSHOT', + 'django-thumborize-beta>=1.2.3-SNAPSHOT-123', + 'django-thumborize-beta>=1.0.0', + 'django-thumborize-beta>=2.0.0', + 'django-thumborize-beta>=1.1.7', + 'django-thumborize-beta>=2.0.0+build.1848', + 'django-thumborize-beta>=2.0.1-alpha.1227', + 'django-thumborize-beta>=1.0.0-alpha+beta', + 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788', + 'django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+meta', + 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12', + 'django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1', + 'django-thumborize-beta>=999999999999999999.99999999999999.9999999999999', # noqa + 'Proj1', + 'Proj2>=0.0.1', + 'Proj3', + 'Proj4>=0.0.2', + 'Proj5', + 'Proj>=0.0.3', + 'Proj', + 'Proj>=0.0.4', + 'Proj', + 'foo-bar>=1.2.4', + ] + tests = [ + 'egg=django-thumborize', + 'egg=django-thumborize-beta', + 'egg=django-thumborize2-beta', + 'egg=django-thumborize2-beta-4.0.1', + 'egg=django-thumborize2-beta-1.0.0-alpha.beta.1', + 'egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa + 'egg=django-thumborize2-beta-2.0.0-rc.1+build.123', + 'egg=django-thumborize-beta-0.0.4', + 'egg=django-thumborize-beta-1.2.3', + 'egg=django-thumborize-beta-10.20.30', + 'egg=django-thumborize-beta-1.1.2-prerelease+meta', + 'egg=django-thumborize-beta-1.1.2+meta', + 'egg=django-thumborize-beta-1.1.2+meta-valid', + 'egg=django-thumborize-beta-1.0.0-alpha', + 'egg=django-thumborize-beta-1.0.0-beta', + 'egg=django-thumborize-beta-1.0.0-alpha.beta', + 'egg=django-thumborize-beta-1.0.0-alpha.beta.1', + 'egg=django-thumborize-beta-1.0.0-alpha.1', + 'egg=django-thumborize-beta-1.0.0-alpha0.valid', + 'egg=django-thumborize-beta-1.0.0-alpha.0valid', + 'egg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'egg=django-thumborize-beta-1.0.0-rc.1+build.1', + 'egg=django-thumborize-beta-2.0.0-rc.1+build.123', + 'egg=django-thumborize-beta-1.2.3-beta', + 'egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOT', + 'egg=django-thumborize-beta-1.2.3-SNAPSHOT-123', + 'egg=django-thumborize-beta-1.0.0', + 'egg=django-thumborize-beta-2.0.0', + 'egg=django-thumborize-beta-1.1.7', + 'egg=django-thumborize-beta-2.0.0+build.1848', + 'egg=django-thumborize-beta-2.0.1-alpha.1227', + 'egg=django-thumborize-beta-1.0.0-alpha+beta', + 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788', # noqa + 'egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+meta', + 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12', + 'egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1', # noqa + 'egg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999', # noqa + 'egg=Proj1', + 'egg=Proj2-0.0.1', + 'egg=Proj3', + 'egg=Proj4-0.0.2', + 'egg=Proj5', + 'egg=Proj-0.0.3', + 'egg=Proj', + 'egg=Proj-0.0.4', + 'egg=Proj', + 'egg=foo-bar-1.2.4', + ] + for index, test in enumerate(tests): + self.assertEqual(expected[index], + re.sub(r'egg=([^&]+).*$', + packaging.egg_fragment, + test)) + + def test_parse_repo_url_requirements(self): + result = packaging.parse_requirements([self.requirements]) + self.assertEqual(['oslo.messaging>=1.0.0-rc', + 'django-thumborize', + 'django-thumborize-beta', + 'django-thumborize2-beta', + 'django-thumborize2-beta>=4.0.1', + 'django-thumborize2-beta>=1.0.0-alpha.beta.1', + 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'django-thumborize2-beta>=2.0.0-rc.1+build.123', + 'Proj1', 'Proj2>=0.0.1', 'Proj3', + 'Proj4>=0.0.2', 'Proj5', 'Proj>=0.0.3', + 'Proj', 'Proj>=0.0.4', 'Proj', + 'foo-bar>=1.2.4', 'pypi-proj1', + 'pypi-proj2'], result) + + def test_parse_repo_url_dependency_links(self): + result = packaging.parse_dependency_links([self.requirements]) + self.assertEqual( + [ + 'git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rc', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-beta', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123', # noqa + 'git+git://git.project.org/Proj#egg=Proj1', + 'git+https://git.project.org/Proj#egg=Proj2-0.0.1', + 'git+ssh://git.project.org/Proj#egg=Proj3', + 'svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2', + 'svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5', + 'hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3', + 'hg+http://hg.project.org/Proj@2019#egg=Proj', + 'hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4', + 'hg+http://hg.project.org/Proj@special_feature#egg=Proj', + 'git://foo.com/zipball#egg=foo-bar-1.2.4'], result) + + +def get_soabi(): + soabi = None + try: + soabi = sysconfig.get_config_var('SOABI') + arch = sysconfig.get_config_var('MULTIARCH') + except IOError: + pass + if soabi and arch and 'pypy' in sysconfig.get_scheme_names(): + soabi = '%s-%s' % (soabi, arch) + if soabi is None and 'pypy' in sysconfig.get_scheme_names(): + # NOTE(sigmavirus24): PyPy only added support for the SOABI config var + # to sysconfig in 2015. That was well after 2.2.1 was published in the + # Ubuntu 14.04 archive. + for suffix, _, _ in imp.get_suffixes(): + if suffix.startswith('.pypy') and suffix.endswith('.so'): + soabi = suffix.split('.')[1] + break + return soabi diff --git a/venv/Lib/site-packages/pbr/tests/test_pbr_json.py b/venv/Lib/site-packages/pbr/tests/test_pbr_json.py new file mode 100644 index 00000000..f0669713 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_pbr_json.py @@ -0,0 +1,30 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import mock + +from pbr import pbr_json +from pbr.tests import base + + +class TestJsonContent(base.BaseTestCase): + @mock.patch('pbr.git._run_git_functions', return_value=True) + @mock.patch('pbr.git.get_git_short_sha', return_value="123456") + @mock.patch('pbr.git.get_is_release', return_value=True) + def test_content(self, mock_get_is, mock_get_git, mock_run): + cmd = mock.Mock() + pbr_json.write_pbr_json(cmd, "basename", "pbr.json") + cmd.write_file.assert_called_once_with( + 'pbr', + 'pbr.json', + '{"git_version": "123456", "is_release": true}' + ) diff --git a/venv/Lib/site-packages/pbr/tests/test_setup.py b/venv/Lib/site-packages/pbr/tests/test_setup.py new file mode 100644 index 00000000..d171d7c0 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_setup.py @@ -0,0 +1,447 @@ +# Copyright (c) 2011 OpenStack Foundation +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from __future__ import print_function + +import os + +try: + import cStringIO as io + BytesIO = io.StringIO +except ImportError: + import io + BytesIO = io.BytesIO + +import fixtures + +from pbr import git +from pbr import options +from pbr import packaging +from pbr.tests import base + + +class SkipFileWrites(base.BaseTestCase): + + scenarios = [ + ('changelog_option_true', + dict(option_key='skip_changelog', option_value='True', + env_key='SKIP_WRITE_GIT_CHANGELOG', env_value=None, + pkg_func=git.write_git_changelog, filename='ChangeLog')), + ('changelog_option_false', + dict(option_key='skip_changelog', option_value='False', + env_key='SKIP_WRITE_GIT_CHANGELOG', env_value=None, + pkg_func=git.write_git_changelog, filename='ChangeLog')), + ('changelog_env_true', + dict(option_key='skip_changelog', option_value='False', + env_key='SKIP_WRITE_GIT_CHANGELOG', env_value='True', + pkg_func=git.write_git_changelog, filename='ChangeLog')), + ('changelog_both_true', + dict(option_key='skip_changelog', option_value='True', + env_key='SKIP_WRITE_GIT_CHANGELOG', env_value='True', + pkg_func=git.write_git_changelog, filename='ChangeLog')), + ('authors_option_true', + dict(option_key='skip_authors', option_value='True', + env_key='SKIP_GENERATE_AUTHORS', env_value=None, + pkg_func=git.generate_authors, filename='AUTHORS')), + ('authors_option_false', + dict(option_key='skip_authors', option_value='False', + env_key='SKIP_GENERATE_AUTHORS', env_value=None, + pkg_func=git.generate_authors, filename='AUTHORS')), + ('authors_env_true', + dict(option_key='skip_authors', option_value='False', + env_key='SKIP_GENERATE_AUTHORS', env_value='True', + pkg_func=git.generate_authors, filename='AUTHORS')), + ('authors_both_true', + dict(option_key='skip_authors', option_value='True', + env_key='SKIP_GENERATE_AUTHORS', env_value='True', + pkg_func=git.generate_authors, filename='AUTHORS')), + ] + + def setUp(self): + super(SkipFileWrites, self).setUp() + self.temp_path = self.useFixture(fixtures.TempDir()).path + self.root_dir = os.path.abspath(os.path.curdir) + self.git_dir = os.path.join(self.root_dir, ".git") + if not os.path.exists(self.git_dir): + self.skipTest("%s is missing; skipping git-related checks" + % self.git_dir) + return + self.filename = os.path.join(self.temp_path, self.filename) + self.option_dict = dict() + if self.option_key is not None: + self.option_dict[self.option_key] = ('setup.cfg', + self.option_value) + self.useFixture( + fixtures.EnvironmentVariable(self.env_key, self.env_value)) + + def test_skip(self): + self.pkg_func(git_dir=self.git_dir, + dest_dir=self.temp_path, + option_dict=self.option_dict) + self.assertEqual( + not os.path.exists(self.filename), + (self.option_value.lower() in options.TRUE_VALUES or + self.env_value is not None)) + + +_changelog_content = """7780758\x00Break parser\x00 (tag: refs/tags/1_foo.1) +04316fe\x00Make python\x00 (refs/heads/review/monty_taylor/27519) +378261a\x00Add an integration test script.\x00 +3c373ac\x00Merge "Lib\x00 (HEAD, tag: refs/tags/2013.2.rc2, tag: refs/tags/2013.2, refs/heads/mile-proposed) +182feb3\x00Fix pip invocation for old versions of pip.\x00 (tag: refs/tags/0.5.17) +fa4f46e\x00Remove explicit depend on distribute.\x00 (tag: refs/tags/0.5.16) +d1c53dd\x00Use pip instead of easy_install for installation.\x00 +a793ea1\x00Merge "Skip git-checkout related tests when .git is missing"\x00 +6c27ce7\x00Skip git-checkout related tests when .git is missing\x00 +451e513\x00Bug fix: create_stack() fails when waiting\x00 +4c8cfe4\x00Improve test coverage: network delete API\x00 (tag: refs/tags/(evil)) +d7e6167\x00Bug fix: Fix pass thru filtering in list_networks\x00 (tag: refs/tags/ev()il) +c47ec15\x00Consider 'in-use' a non-pending volume for caching\x00 (tag: refs/tags/ev)il) +8696fbd\x00Improve test coverage: private extension API\x00 (tag: refs/tags/ev(il) +f0440f8\x00Improve test coverage: hypervisor list\x00 (tag: refs/tags/e(vi)l) +04984a5\x00Refactor hooks file.\x00 (HEAD, tag: 0.6.7,b, tag: refs/tags/(12), refs/heads/master) +a65e8ee\x00Remove jinja pin.\x00 (tag: refs/tags/0.5.14, tag: refs/tags/0.5.13) +""" # noqa + + +def _make_old_git_changelog_format(line): + """Convert post-1.8.1 git log format to pre-1.8.1 git log format""" + + if not line.strip(): + return line + sha, msg, refname = line.split('\x00') + refname = refname.replace('tag: ', '') + return '\x00'.join((sha, msg, refname)) + + +_old_git_changelog_content = '\n'.join( + _make_old_git_changelog_format(line) + for line in _changelog_content.split('\n')) + + +class GitLogsTest(base.BaseTestCase): + + scenarios = [ + ('pre1.8.3', {'changelog': _old_git_changelog_content}), + ('post1.8.3', {'changelog': _changelog_content}), + ] + + def setUp(self): + super(GitLogsTest, self).setUp() + self.temp_path = self.useFixture(fixtures.TempDir()).path + self.root_dir = os.path.abspath(os.path.curdir) + self.git_dir = os.path.join(self.root_dir, ".git") + self.useFixture( + fixtures.EnvironmentVariable('SKIP_GENERATE_AUTHORS')) + self.useFixture( + fixtures.EnvironmentVariable('SKIP_WRITE_GIT_CHANGELOG')) + + def test_write_git_changelog(self): + self.useFixture(fixtures.FakePopen(lambda _: { + "stdout": BytesIO(self.changelog.encode('utf-8')) + })) + + git.write_git_changelog(git_dir=self.git_dir, + dest_dir=self.temp_path) + + with open(os.path.join(self.temp_path, "ChangeLog"), "r") as ch_fh: + changelog_contents = ch_fh.read() + self.assertIn("2013.2", changelog_contents) + self.assertIn("0.5.17", changelog_contents) + self.assertIn("------", changelog_contents) + self.assertIn("Refactor hooks file", changelog_contents) + self.assertIn( + r"Bug fix: create\_stack() fails when waiting", + changelog_contents) + self.assertNotIn("Refactor hooks file.", changelog_contents) + self.assertNotIn("182feb3", changelog_contents) + self.assertNotIn("review/monty_taylor/27519", changelog_contents) + self.assertNotIn("0.5.13", changelog_contents) + self.assertNotIn("0.6.7", changelog_contents) + self.assertNotIn("12", changelog_contents) + self.assertNotIn("(evil)", changelog_contents) + self.assertNotIn("ev()il", changelog_contents) + self.assertNotIn("ev(il", changelog_contents) + self.assertNotIn("ev)il", changelog_contents) + self.assertNotIn("e(vi)l", changelog_contents) + self.assertNotIn('Merge "', changelog_contents) + self.assertNotIn(r'1\_foo.1', changelog_contents) + + def test_generate_authors(self): + author_old = u"Foo Foo " + author_new = u"Bar Bar " + co_author = u"Foo Bar " + co_author_by = u"Co-authored-by: " + co_author + + git_log_cmd = ( + "git --git-dir=%s log --format=%%aN <%%aE>" + % self.git_dir) + git_co_log_cmd = ("git --git-dir=%s log" % self.git_dir) + git_top_level = "git rev-parse --show-toplevel" + cmd_map = { + git_log_cmd: author_new, + git_co_log_cmd: co_author_by, + git_top_level: self.root_dir, + } + + exist_files = [self.git_dir, + os.path.join(self.temp_path, "AUTHORS.in")] + self.useFixture(fixtures.MonkeyPatch( + "os.path.exists", + lambda path: os.path.abspath(path) in exist_files)) + + def _fake_run_shell_command(cmd, **kwargs): + return cmd_map[" ".join(cmd)] + + self.useFixture(fixtures.MonkeyPatch( + "pbr.git._run_shell_command", + _fake_run_shell_command)) + + with open(os.path.join(self.temp_path, "AUTHORS.in"), "w") as auth_fh: + auth_fh.write("%s\n" % author_old) + + git.generate_authors(git_dir=self.git_dir, + dest_dir=self.temp_path) + + with open(os.path.join(self.temp_path, "AUTHORS"), "r") as auth_fh: + authors = auth_fh.read() + self.assertTrue(author_old in authors) + self.assertTrue(author_new in authors) + self.assertTrue(co_author in authors) + + +class _SphinxConfig(object): + man_pages = ['foo'] + + +class BaseSphinxTest(base.BaseTestCase): + + def setUp(self): + super(BaseSphinxTest, self).setUp() + + # setup_command requires the Sphinx instance to have some + # attributes that aren't set normally with the way we use the + # class (because we replace the constructor). Add default + # values directly to the class definition. + import sphinx.application + sphinx.application.Sphinx.messagelog = [] + sphinx.application.Sphinx.statuscode = 0 + + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.__init__", lambda *a, **kw: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.build", lambda *a, **kw: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.config", _SphinxConfig)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.config.Config.init_values", lambda *a: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.config.Config.__init__", lambda *a: None)) + from distutils import dist + self.distr = dist.Distribution() + self.distr.packages = ("fake_package",) + self.distr.command_options["build_sphinx"] = { + "source_dir": ["a", "."]} + pkg_fixture = fixtures.PythonPackage( + "fake_package", [("fake_module.py", b""), + ("another_fake_module_for_testing.py", b""), + ("fake_private_module.py", b"")]) + self.useFixture(pkg_fixture) + self.useFixture(base.DiveDir(pkg_fixture.base)) + self.distr.command_options["pbr"] = {} + if hasattr(self, "excludes"): + self.distr.command_options["pbr"]["autodoc_exclude_modules"] = ( + 'setup.cfg', + "fake_package.fake_private_module\n" + "fake_package.another_fake_*\n" + "fake_package.unknown_module") + if hasattr(self, 'has_opt') and self.has_opt: + options = self.distr.command_options["pbr"] + options["autodoc_index_modules"] = ('setup.cfg', self.autodoc) + + +class BuildSphinxTest(BaseSphinxTest): + + scenarios = [ + ('true_autodoc_caps', + dict(has_opt=True, autodoc='True', has_autodoc=True)), + ('true_autodoc_caps_with_excludes', + dict(has_opt=True, autodoc='True', has_autodoc=True, + excludes="fake_package.fake_private_module\n" + "fake_package.another_fake_*\n" + "fake_package.unknown_module")), + ('true_autodoc_lower', + dict(has_opt=True, autodoc='true', has_autodoc=True)), + ('false_autodoc', + dict(has_opt=True, autodoc='False', has_autodoc=False)), + ('no_autodoc', + dict(has_opt=False, autodoc='False', has_autodoc=False)), + ] + + def test_build_doc(self): + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.run() + + self.assertTrue( + os.path.exists("api/autoindex.rst") == self.has_autodoc) + self.assertTrue( + os.path.exists( + "api/fake_package.fake_module.rst") == self.has_autodoc) + if not self.has_autodoc or hasattr(self, "excludes"): + assertion = self.assertFalse + else: + assertion = self.assertTrue + assertion( + os.path.exists( + "api/fake_package.fake_private_module.rst")) + assertion( + os.path.exists( + "api/fake_package.another_fake_module_for_testing.rst")) + + def test_builders_config(self): + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.finalize_options() + + self.assertEqual(1, len(build_doc.builders)) + self.assertIn('html', build_doc.builders) + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.builders = '' + build_doc.finalize_options() + + self.assertEqual('', build_doc.builders) + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.builders = 'man' + build_doc.finalize_options() + + self.assertEqual(1, len(build_doc.builders)) + self.assertIn('man', build_doc.builders) + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.builders = 'html,man,doctest' + build_doc.finalize_options() + + self.assertIn('html', build_doc.builders) + self.assertIn('man', build_doc.builders) + self.assertIn('doctest', build_doc.builders) + + def test_cmd_builder_override(self): + + if self.has_opt: + self.distr.command_options["pbr"] = { + "autodoc_index_modules": ('setup.cfg', self.autodoc) + } + + self.distr.command_options["build_sphinx"]["builder"] = ( + "command line", "non-existing-builder") + + build_doc = packaging.LocalBuildDoc(self.distr) + self.assertNotIn('non-existing-builder', build_doc.builders) + self.assertIn('html', build_doc.builders) + + # process command line options which should override config + build_doc.finalize_options() + + self.assertIn('non-existing-builder', build_doc.builders) + self.assertNotIn('html', build_doc.builders) + + def test_cmd_builder_override_multiple_builders(self): + + if self.has_opt: + self.distr.command_options["pbr"] = { + "autodoc_index_modules": ('setup.cfg', self.autodoc) + } + + self.distr.command_options["build_sphinx"]["builder"] = ( + "command line", "builder1,builder2") + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.finalize_options() + + self.assertEqual(["builder1", "builder2"], build_doc.builders) + + +class APIAutoDocTest(base.BaseTestCase): + + def setUp(self): + super(APIAutoDocTest, self).setUp() + + # setup_command requires the Sphinx instance to have some + # attributes that aren't set normally with the way we use the + # class (because we replace the constructor). Add default + # values directly to the class definition. + import sphinx.application + sphinx.application.Sphinx.messagelog = [] + sphinx.application.Sphinx.statuscode = 0 + + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.__init__", lambda *a, **kw: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.build", lambda *a, **kw: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.application.Sphinx.config", _SphinxConfig)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.config.Config.init_values", lambda *a: None)) + self.useFixture(fixtures.MonkeyPatch( + "sphinx.config.Config.__init__", lambda *a: None)) + from distutils import dist + self.distr = dist.Distribution() + self.distr.packages = ("fake_package",) + self.distr.command_options["build_sphinx"] = { + "source_dir": ["a", "."]} + self.sphinx_options = self.distr.command_options["build_sphinx"] + pkg_fixture = fixtures.PythonPackage( + "fake_package", [("fake_module.py", b""), + ("another_fake_module_for_testing.py", b""), + ("fake_private_module.py", b"")]) + self.useFixture(pkg_fixture) + self.useFixture(base.DiveDir(pkg_fixture.base)) + self.pbr_options = self.distr.command_options.setdefault('pbr', {}) + self.pbr_options["autodoc_index_modules"] = ('setup.cfg', 'True') + + def test_default_api_build_dir(self): + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.run() + + print('PBR OPTIONS:', self.pbr_options) + print('DISTR OPTIONS:', self.distr.command_options) + + self.assertTrue(os.path.exists("api/autoindex.rst")) + self.assertTrue(os.path.exists("api/fake_package.fake_module.rst")) + self.assertTrue( + os.path.exists( + "api/fake_package.fake_private_module.rst")) + self.assertTrue( + os.path.exists( + "api/fake_package.another_fake_module_for_testing.rst")) + + def test_different_api_build_dir(self): + # Options have to come out of the settings dict as a tuple + # showing the source and the value. + self.pbr_options['api_doc_dir'] = (None, 'contributor/api') + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.run() + + print('PBR OPTIONS:', self.pbr_options) + print('DISTR OPTIONS:', self.distr.command_options) + + self.assertTrue(os.path.exists("contributor/api/autoindex.rst")) + self.assertTrue( + os.path.exists("contributor/api/fake_package.fake_module.rst")) + self.assertTrue( + os.path.exists( + "contributor/api/fake_package.fake_private_module.rst")) diff --git a/venv/Lib/site-packages/pbr/tests/test_util.py b/venv/Lib/site-packages/pbr/tests/test_util.py new file mode 100644 index 00000000..1cbb2d2a --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_util.py @@ -0,0 +1,219 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. (HP) +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import io +import tempfile +import textwrap + +import six +from six.moves import configparser +import sys + +from pbr.tests import base +from pbr import util + + +def config_from_ini(ini): + config = {} + if sys.version_info >= (3, 2): + parser = configparser.ConfigParser() + else: + parser = configparser.SafeConfigParser() + ini = textwrap.dedent(six.u(ini)) + parser.readfp(io.StringIO(ini)) + for section in parser.sections(): + config[section] = dict(parser.items(section)) + return config + + +class TestExtrasRequireParsingScenarios(base.BaseTestCase): + + scenarios = [ + ('simple_extras', { + 'config_text': """ + [extras] + first = + foo + bar==1.0 + second = + baz>=3.2 + foo + """, + 'expected_extra_requires': { + 'first': ['foo', 'bar==1.0'], + 'second': ['baz>=3.2', 'foo'], + 'test': ['requests-mock'], + "test:(python_version=='2.6')": ['ordereddict'], + } + }), + ('with_markers', { + 'config_text': """ + [extras] + test = + foo:python_version=='2.6' + bar + baz<1.6 :python_version=='2.6' + zaz :python_version>'1.0' + """, + 'expected_extra_requires': { + "test:(python_version=='2.6')": ['foo', 'baz<1.6'], + "test": ['bar', 'zaz']}}), + ('no_extras', { + 'config_text': """ + [metadata] + long_description = foo + """, + 'expected_extra_requires': + {} + })] + + def test_extras_parsing(self): + config = config_from_ini(self.config_text) + kwargs = util.setup_cfg_to_setup_kwargs(config) + + self.assertEqual(self.expected_extra_requires, + kwargs['extras_require']) + + +class TestInvalidMarkers(base.BaseTestCase): + + def test_invalid_marker_raises_error(self): + config = {'extras': {'test': "foo :bad_marker>'1.0'"}} + self.assertRaises(SyntaxError, util.setup_cfg_to_setup_kwargs, config) + + +class TestMapFieldsParsingScenarios(base.BaseTestCase): + + scenarios = [ + ('simple_project_urls', { + 'config_text': """ + [metadata] + project_urls = + Bug Tracker = https://bugs.launchpad.net/pbr/ + Documentation = https://docs.openstack.org/pbr/ + Source Code = https://git.openstack.org/cgit/openstack-dev/pbr/ + """, # noqa: E501 + 'expected_project_urls': { + 'Bug Tracker': 'https://bugs.launchpad.net/pbr/', + 'Documentation': 'https://docs.openstack.org/pbr/', + 'Source Code': 'https://git.openstack.org/cgit/openstack-dev/pbr/', # noqa: E501 + }, + }), + ('query_parameters', { + 'config_text': """ + [metadata] + project_urls = + Bug Tracker = https://bugs.launchpad.net/pbr/?query=true + Documentation = https://docs.openstack.org/pbr/?foo=bar + Source Code = https://git.openstack.org/cgit/openstack-dev/pbr/commit/?id=hash + """, # noqa: E501 + 'expected_project_urls': { + 'Bug Tracker': 'https://bugs.launchpad.net/pbr/?query=true', + 'Documentation': 'https://docs.openstack.org/pbr/?foo=bar', + 'Source Code': 'https://git.openstack.org/cgit/openstack-dev/pbr/commit/?id=hash', # noqa: E501 + }, + }), + ] + + def test_project_url_parsing(self): + config = config_from_ini(self.config_text) + kwargs = util.setup_cfg_to_setup_kwargs(config) + + self.assertEqual(self.expected_project_urls, kwargs['project_urls']) + + +class TestKeywordsParsingScenarios(base.BaseTestCase): + + scenarios = [ + ('keywords_list', { + 'config_text': """ + [metadata] + keywords = + one + two + three + """, # noqa: E501 + 'expected_keywords': ['one', 'two', 'three'], + }, + ), + ('inline_keywords', { + 'config_text': """ + [metadata] + keywords = one, two, three + """, # noqa: E501 + 'expected_keywords': ['one, two, three'], + }), + ] + + def test_keywords_parsing(self): + config = config_from_ini(self.config_text) + kwargs = util.setup_cfg_to_setup_kwargs(config) + + self.assertEqual(self.expected_keywords, kwargs['keywords']) + + +class TestProvidesExtras(base.BaseTestCase): + def test_provides_extras(self): + ini = """ + [metadata] + provides_extras = foo + bar + """ + config = config_from_ini(ini) + kwargs = util.setup_cfg_to_setup_kwargs(config) + self.assertEqual(['foo', 'bar'], kwargs['provides_extras']) + + +class TestDataFilesParsing(base.BaseTestCase): + + scenarios = [ + ('data_files', { + 'config_text': """ + [files] + data_files = + 'i like spaces/' = + 'dir with space/file with spc 2' + 'dir with space/file with spc 1' + """, + 'data_files': [ + ('i like spaces/', ['dir with space/file with spc 2', + 'dir with space/file with spc 1']) + ] + })] + + def test_handling_of_whitespace_in_data_files(self): + config = config_from_ini(self.config_text) + kwargs = util.setup_cfg_to_setup_kwargs(config) + + self.assertEqual(self.data_files, + list(kwargs['data_files'])) + + +class TestUTF8DescriptionFile(base.BaseTestCase): + def test_utf8_description_file(self): + _, path = tempfile.mkstemp() + ini_template = """ + [metadata] + description_file = %s + """ + # Two \n's because pbr strips the file content and adds \n\n + # This way we can use it directly as the assert comparison + unicode_description = u'UTF8 description: é"…-ʃŋ\'\n\n' + ini = ini_template % path + with io.open(path, 'w', encoding='utf8') as f: + f.write(unicode_description) + config = config_from_ini(ini) + kwargs = util.setup_cfg_to_setup_kwargs(config) + self.assertEqual(unicode_description, kwargs['long_description']) diff --git a/venv/Lib/site-packages/pbr/tests/test_version.py b/venv/Lib/site-packages/pbr/tests/test_version.py new file mode 100644 index 00000000..d861d572 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_version.py @@ -0,0 +1,311 @@ +# Copyright 2012 Red Hat, Inc. +# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import itertools + +from testtools import matchers + +from pbr.tests import base +from pbr import version + + +from_pip_string = version.SemanticVersion.from_pip_string + + +class TestSemanticVersion(base.BaseTestCase): + + def test_ordering(self): + ordered_versions = [ + "1.2.3.dev6", + "1.2.3.dev7", + "1.2.3.a4.dev12", + "1.2.3.a4.dev13", + "1.2.3.a4", + "1.2.3.a5.dev1", + "1.2.3.a5", + "1.2.3.b3.dev1", + "1.2.3.b3", + "1.2.3.rc2.dev1", + "1.2.3.rc2", + "1.2.3.rc3.dev1", + "1.2.3", + "1.2.4", + "1.3.3", + "2.2.3", + ] + for v in ordered_versions: + sv = version.SemanticVersion.from_pip_string(v) + self.expectThat(sv, matchers.Equals(sv)) + for left, right in itertools.combinations(ordered_versions, 2): + l_pos = ordered_versions.index(left) + r_pos = ordered_versions.index(right) + if l_pos < r_pos: + m1 = matchers.LessThan + m2 = matchers.GreaterThan + else: + m1 = matchers.GreaterThan + m2 = matchers.LessThan + left_sv = version.SemanticVersion.from_pip_string(left) + right_sv = version.SemanticVersion.from_pip_string(right) + self.expectThat(left_sv, m1(right_sv)) + self.expectThat(right_sv, m2(left_sv)) + + def test_from_pip_string_legacy_alpha(self): + expected = version.SemanticVersion( + 1, 2, 0, prerelease_type='rc', prerelease=1) + parsed = from_pip_string('1.2.0rc1') + self.assertEqual(expected, parsed) + + def test_from_pip_string_legacy_postN(self): + # When pbr trunk was incompatible with PEP-440, a stable release was + # made that used postN versions to represent developer builds. As + # we expect only to be parsing versions of our own, we map those + # into dev builds of the next version. + expected = version.SemanticVersion(1, 2, 4, dev_count=5) + parsed = from_pip_string('1.2.3.post5') + self.expectThat(expected, matchers.Equals(parsed)) + expected = version.SemanticVersion(1, 2, 3, 'a', 5, dev_count=6) + parsed = from_pip_string('1.2.3.0a4.post6') + self.expectThat(expected, matchers.Equals(parsed)) + # We can't define a mapping for .postN.devM, so it should raise. + self.expectThat( + lambda: from_pip_string('1.2.3.post5.dev6'), + matchers.raises(ValueError)) + + def test_from_pip_string_v_version(self): + parsed = from_pip_string('v1.2.3') + expected = version.SemanticVersion(1, 2, 3) + self.expectThat(expected, matchers.Equals(parsed)) + + expected = version.SemanticVersion(1, 2, 3, 'a', 5, dev_count=6) + parsed = from_pip_string('V1.2.3.0a4.post6') + self.expectThat(expected, matchers.Equals(parsed)) + + self.expectThat( + lambda: from_pip_string('x1.2.3'), + matchers.raises(ValueError)) + + def test_from_pip_string_legacy_nonzero_lead_in(self): + # reported in bug 1361251 + expected = version.SemanticVersion( + 0, 0, 1, prerelease_type='a', prerelease=2) + parsed = from_pip_string('0.0.1a2') + self.assertEqual(expected, parsed) + + def test_from_pip_string_legacy_short_nonzero_lead_in(self): + expected = version.SemanticVersion( + 0, 1, 0, prerelease_type='a', prerelease=2) + parsed = from_pip_string('0.1a2') + self.assertEqual(expected, parsed) + + def test_from_pip_string_legacy_no_0_prerelease(self): + expected = version.SemanticVersion( + 2, 1, 0, prerelease_type='rc', prerelease=1) + parsed = from_pip_string('2.1.0.rc1') + self.assertEqual(expected, parsed) + + def test_from_pip_string_legacy_no_0_prerelease_2(self): + expected = version.SemanticVersion( + 2, 0, 0, prerelease_type='rc', prerelease=1) + parsed = from_pip_string('2.0.0.rc1') + self.assertEqual(expected, parsed) + + def test_from_pip_string_legacy_non_440_beta(self): + expected = version.SemanticVersion( + 2014, 2, prerelease_type='b', prerelease=2) + parsed = from_pip_string('2014.2.b2') + self.assertEqual(expected, parsed) + + def test_from_pip_string_pure_git_hash(self): + self.assertRaises(ValueError, from_pip_string, '6eed5ae') + + def test_from_pip_string_non_digit_start(self): + self.assertRaises(ValueError, from_pip_string, + 'non-release-tag/2014.12.16-1') + + def test_final_version(self): + semver = version.SemanticVersion(1, 2, 3) + self.assertEqual((1, 2, 3, 'final', 0), semver.version_tuple()) + self.assertEqual("1.2.3", semver.brief_string()) + self.assertEqual("1.2.3", semver.debian_string()) + self.assertEqual("1.2.3", semver.release_string()) + self.assertEqual("1.2.3", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.3")) + + def test_parsing_short_forms(self): + semver = version.SemanticVersion(1, 0, 0) + self.assertEqual(semver, from_pip_string("1")) + self.assertEqual(semver, from_pip_string("1.0")) + self.assertEqual(semver, from_pip_string("1.0.0")) + + def test_dev_version(self): + semver = version.SemanticVersion(1, 2, 4, dev_count=5) + self.assertEqual((1, 2, 4, 'dev', 4), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~dev5", semver.debian_string()) + self.assertEqual("1.2.4.dev5", semver.release_string()) + self.assertEqual("1.2.3.dev5", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.dev5")) + + def test_dev_no_git_version(self): + semver = version.SemanticVersion(1, 2, 4, dev_count=5) + self.assertEqual((1, 2, 4, 'dev', 4), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~dev5", semver.debian_string()) + self.assertEqual("1.2.4.dev5", semver.release_string()) + self.assertEqual("1.2.3.dev5", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.dev5")) + + def test_dev_zero_version(self): + semver = version.SemanticVersion(1, 2, 0, dev_count=5) + self.assertEqual((1, 2, 0, 'dev', 4), semver.version_tuple()) + self.assertEqual("1.2.0", semver.brief_string()) + self.assertEqual("1.2.0~dev5", semver.debian_string()) + self.assertEqual("1.2.0.dev5", semver.release_string()) + self.assertEqual("1.1.9999.dev5", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.0.dev5")) + + def test_alpha_dev_version(self): + semver = version.SemanticVersion(1, 2, 4, 'a', 1, 12) + self.assertEqual((1, 2, 4, 'alphadev', 12), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~a1.dev12", semver.debian_string()) + self.assertEqual("1.2.4.0a1.dev12", semver.release_string()) + self.assertEqual("1.2.3.a1.dev12", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0a1.dev12")) + + def test_alpha_version(self): + semver = version.SemanticVersion(1, 2, 4, 'a', 1) + self.assertEqual((1, 2, 4, 'alpha', 1), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~a1", semver.debian_string()) + self.assertEqual("1.2.4.0a1", semver.release_string()) + self.assertEqual("1.2.3.a1", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0a1")) + + def test_alpha_zero_version(self): + semver = version.SemanticVersion(1, 2, 0, 'a', 1) + self.assertEqual((1, 2, 0, 'alpha', 1), semver.version_tuple()) + self.assertEqual("1.2.0", semver.brief_string()) + self.assertEqual("1.2.0~a1", semver.debian_string()) + self.assertEqual("1.2.0.0a1", semver.release_string()) + self.assertEqual("1.1.9999.a1", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.0.0a1")) + + def test_alpha_major_zero_version(self): + semver = version.SemanticVersion(1, 0, 0, 'a', 1) + self.assertEqual((1, 0, 0, 'alpha', 1), semver.version_tuple()) + self.assertEqual("1.0.0", semver.brief_string()) + self.assertEqual("1.0.0~a1", semver.debian_string()) + self.assertEqual("1.0.0.0a1", semver.release_string()) + self.assertEqual("0.9999.9999.a1", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.0.0.0a1")) + + def test_alpha_default_version(self): + semver = version.SemanticVersion(1, 2, 4, 'a') + self.assertEqual((1, 2, 4, 'alpha', 0), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~a0", semver.debian_string()) + self.assertEqual("1.2.4.0a0", semver.release_string()) + self.assertEqual("1.2.3.a0", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0a0")) + + def test_beta_dev_version(self): + semver = version.SemanticVersion(1, 2, 4, 'b', 1, 12) + self.assertEqual((1, 2, 4, 'betadev', 12), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~b1.dev12", semver.debian_string()) + self.assertEqual("1.2.4.0b1.dev12", semver.release_string()) + self.assertEqual("1.2.3.b1.dev12", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0b1.dev12")) + + def test_beta_version(self): + semver = version.SemanticVersion(1, 2, 4, 'b', 1) + self.assertEqual((1, 2, 4, 'beta', 1), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~b1", semver.debian_string()) + self.assertEqual("1.2.4.0b1", semver.release_string()) + self.assertEqual("1.2.3.b1", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0b1")) + + def test_decrement_nonrelease(self): + # The prior version of any non-release is a release + semver = version.SemanticVersion(1, 2, 4, 'b', 1) + self.assertEqual( + version.SemanticVersion(1, 2, 3), semver.decrement()) + + def test_decrement_nonrelease_zero(self): + # We set an arbitrary max version of 9999 when decrementing versions + # - this is part of handling rpm support. + semver = version.SemanticVersion(1, 0, 0) + self.assertEqual( + version.SemanticVersion(0, 9999, 9999), semver.decrement()) + + def test_decrement_release(self): + # The next patch version of a release version requires a change to the + # patch level. + semver = version.SemanticVersion(2, 2, 5) + self.assertEqual( + version.SemanticVersion(2, 2, 4), semver.decrement()) + + def test_increment_nonrelease(self): + # The next patch version of a non-release version is another + # non-release version as the next release doesn't need to be + # incremented. + semver = version.SemanticVersion(1, 2, 4, 'b', 1) + self.assertEqual( + version.SemanticVersion(1, 2, 4, 'b', 2), semver.increment()) + # Major and minor increments however need to bump things. + self.assertEqual( + version.SemanticVersion(1, 3, 0), semver.increment(minor=True)) + self.assertEqual( + version.SemanticVersion(2, 0, 0), semver.increment(major=True)) + + def test_increment_release(self): + # The next patch version of a release version requires a change to the + # patch level. + semver = version.SemanticVersion(1, 2, 5) + self.assertEqual( + version.SemanticVersion(1, 2, 6), semver.increment()) + self.assertEqual( + version.SemanticVersion(1, 3, 0), semver.increment(minor=True)) + self.assertEqual( + version.SemanticVersion(2, 0, 0), semver.increment(major=True)) + + def test_rc_dev_version(self): + semver = version.SemanticVersion(1, 2, 4, 'rc', 1, 12) + self.assertEqual((1, 2, 4, 'candidatedev', 12), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~rc1.dev12", semver.debian_string()) + self.assertEqual("1.2.4.0rc1.dev12", semver.release_string()) + self.assertEqual("1.2.3.rc1.dev12", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0rc1.dev12")) + + def test_rc_version(self): + semver = version.SemanticVersion(1, 2, 4, 'rc', 1) + self.assertEqual((1, 2, 4, 'candidate', 1), semver.version_tuple()) + self.assertEqual("1.2.4", semver.brief_string()) + self.assertEqual("1.2.4~rc1", semver.debian_string()) + self.assertEqual("1.2.4.0rc1", semver.release_string()) + self.assertEqual("1.2.3.rc1", semver.rpm_string()) + self.assertEqual(semver, from_pip_string("1.2.4.0rc1")) + + def test_to_dev(self): + self.assertEqual( + version.SemanticVersion(1, 2, 3, dev_count=1), + version.SemanticVersion(1, 2, 3).to_dev(1)) + self.assertEqual( + version.SemanticVersion(1, 2, 3, 'rc', 1, dev_count=1), + version.SemanticVersion(1, 2, 3, 'rc', 1).to_dev(1)) diff --git a/venv/Lib/site-packages/pbr/tests/test_wsgi.py b/venv/Lib/site-packages/pbr/tests/test_wsgi.py new file mode 100644 index 00000000..a42fe785 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/test_wsgi.py @@ -0,0 +1,163 @@ +# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. (HP) +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os +import re +import subprocess +import sys +try: + # python 2 + from urllib2 import urlopen +except ImportError: + # python 3 + from urllib.request import urlopen + +from pbr.tests import base + + +class TestWsgiScripts(base.BaseTestCase): + + cmd_names = ('pbr_test_wsgi', 'pbr_test_wsgi_with_class') + + def _get_path(self): + if os.path.isdir("%s/lib64" % self.temp_dir): + path = "%s/lib64" % self.temp_dir + elif os.path.isdir("%s/lib" % self.temp_dir): + path = "%s/lib" % self.temp_dir + elif os.path.isdir("%s/site-packages" % self.temp_dir): + return ".:%s/site-packages" % self.temp_dir + else: + raise Exception("Could not determine path for test") + return ".:%s/python%s.%s/site-packages" % ( + path, + sys.version_info[0], + sys.version_info[1]) + + def test_wsgi_script_install(self): + """Test that we install a non-pkg-resources wsgi script.""" + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + stdout, _, return_code = self.run_setup( + 'install', '--prefix=%s' % self.temp_dir) + + self._check_wsgi_install_content(stdout) + + def test_wsgi_script_run(self): + """Test that we install a runnable wsgi script. + + This test actually attempts to start and interact with the + wsgi script in question to demonstrate that it's a working + wsgi script using simple server. + + """ + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + stdout, _, return_code = self.run_setup( + 'install', '--prefix=%s' % self.temp_dir) + + self._check_wsgi_install_content(stdout) + + # Live test run the scripts and see that they respond to wsgi + # requests. + for cmd_name in self.cmd_names: + self._test_wsgi(cmd_name, b'Hello World') + + def _test_wsgi(self, cmd_name, output, extra_args=None): + cmd = os.path.join(self.temp_dir, 'bin', cmd_name) + print("Running %s -p 0 -b 127.0.0.1" % cmd) + popen_cmd = [cmd, '-p', '0', '-b', '127.0.0.1'] + if extra_args: + popen_cmd.extend(extra_args) + + env = {'PYTHONPATH': self._get_path()} + + p = subprocess.Popen(popen_cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, cwd=self.temp_dir, + env=env) + self.addCleanup(p.kill) + + stdoutdata = p.stdout.readline() # ****... + + stdoutdata = p.stdout.readline() # STARTING test server... + self.assertIn( + b"STARTING test server pbr_testpackage.wsgi", + stdoutdata) + + stdoutdata = p.stdout.readline() # Available at ... + print(stdoutdata) + m = re.search(br'(http://[^:]+:\d+)/', stdoutdata) + self.assertIsNotNone(m, "Regex failed to match on %s" % stdoutdata) + + stdoutdata = p.stdout.readline() # DANGER! ... + self.assertIn( + b"DANGER! For testing only, do not use in production", + stdoutdata) + + stdoutdata = p.stdout.readline() # ***... + + f = urlopen(m.group(1).decode('utf-8')) + self.assertEqual(output, f.read()) + + # Request again so that the application can force stderr.flush(), + # otherwise the log is buffered and the next readline() will hang. + urlopen(m.group(1).decode('utf-8')) + + stdoutdata = p.stderr.readline() + # we should have logged an HTTP request, return code 200, that + # returned the right amount of bytes + status = '"GET / HTTP/1.1" 200 %d' % len(output) + self.assertIn(status.encode('utf-8'), stdoutdata) + + def _check_wsgi_install_content(self, install_stdout): + for cmd_name in self.cmd_names: + install_txt = 'Installing %s script to %s' % (cmd_name, + self.temp_dir) + self.assertIn(install_txt, install_stdout) + + cmd_filename = os.path.join(self.temp_dir, 'bin', cmd_name) + + script_txt = open(cmd_filename, 'r').read() + self.assertNotIn('pkg_resources', script_txt) + + main_block = """if __name__ == "__main__": + import argparse + import socket + import sys + import wsgiref.simple_server as wss""" + + if cmd_name == 'pbr_test_wsgi': + app_name = "main" + else: + app_name = "WSGI.app" + + starting_block = ("STARTING test server pbr_testpackage.wsgi." + "%s" % app_name) + + else_block = """else: + application = None""" + + self.assertIn(main_block, script_txt) + self.assertIn(starting_block, script_txt) + self.assertIn(else_block, script_txt) + + def test_with_argument(self): + if os.name == 'nt': + self.skipTest('Windows support is passthrough') + + stdout, _, return_code = self.run_setup( + 'install', '--prefix=%s' % self.temp_dir) + + self._test_wsgi('pbr_test_wsgi', b'Foo Bar', ["--", "-c", "Foo Bar"]) diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/CHANGES.txt b/venv/Lib/site-packages/pbr/tests/testpackage/CHANGES.txt new file mode 100644 index 00000000..709b9d4c --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/CHANGES.txt @@ -0,0 +1,86 @@ +Changelog +=========== + +0.3 (unreleased) +------------------ + +- The ``glob_data_files`` hook became a pre-command hook for the install_data + command instead of being a setup-hook. This is to support the additional + functionality of requiring data_files with relative destination paths to be + install relative to the package's install path (i.e. site-packages). + +- Dropped support for and deprecated the easier_install custom command. + Although it should still work, it probably won't be used anymore for + stsci_python packages. + +- Added support for the ``build_optional_ext`` command, which replaces/extends + the default ``build_ext`` command. See the README for more details. + +- Added the ``tag_svn_revision`` setup_hook as a replacement for the + setuptools-specific tag_svn_revision option to the egg_info command. This + new hook is easier to use than the old tag_svn_revision option: It's + automatically enabled by the presence of ``.dev`` in the version string, and + disabled otherwise. + +- The ``svn_info_pre_hook`` and ``svn_info_post_hook`` have been replaced with + ``version_pre_command_hook`` and ``version_post_command_hook`` respectively. + However, a new ``version_setup_hook``, which has the same purpose, has been + added. It is generally easier to use and will give more consistent results + in that it will run every time setup.py is run, regardless of which command + is used. ``stsci.distutils`` itself uses this hook--see the `setup.cfg` file + and `stsci/distutils/__init__.py` for example usage. + +- Instead of creating an `svninfo.py` module, the new ``version_`` hooks create + a file called `version.py`. In addition to the SVN info that was included + in `svninfo.py`, it includes a ``__version__`` variable to be used by the + package's `__init__.py`. This allows there to be a hard-coded + ``__version__`` variable included in the source code, rather than using + pkg_resources to get the version. + +- In `version.py`, the variables previously named ``__svn_version__`` and + ``__full_svn_info__`` are now named ``__svn_revision__`` and + ``__svn_full_info__``. + +- Fixed a bug when using stsci.distutils in the installation of other packages + in the ``stsci.*`` namespace package. If stsci.distutils was not already + installed, and was downloaded automatically by distribute through the + setup_requires option, then ``stsci.distutils`` would fail to import. This + is because the way the namespace package (nspkg) mechanism currently works, + all packages belonging to the nspkg *must* be on the import path at initial + import time. + + So when installing stsci.tools, for example, if ``stsci.tools`` is imported + from within the source code at install time, but before ``stsci.distutils`` + is downloaded and added to the path, the ``stsci`` package is already + imported and can't be extended to include the path of ``stsci.distutils`` + after the fact. The easiest way of dealing with this, it seems, is to + delete ``stsci`` from ``sys.modules``, which forces it to be reimported, now + the its ``__path__`` extended to include ``stsci.distutil``'s path. + + +0.2.2 (2011-11-09) +------------------ + +- Fixed check for the issue205 bug on actual setuptools installs; before it + only worked on distribute. setuptools has the issue205 bug prior to version + 0.6c10. + +- Improved the fix for the issue205 bug, especially on setuptools. + setuptools, prior to 0.6c10, did not back of sys.modules either before + sandboxing, which causes serious problems. In fact, it's so bad that it's + not enough to add a sys.modules backup to the current sandbox: It's in fact + necessary to monkeypatch setuptools.sandbox.run_setup so that any subsequent + calls to it also back up sys.modules. + + +0.2.1 (2011-09-02) +------------------ + +- Fixed the dependencies so that setuptools is requirement but 'distribute' + specifically. Previously installation could fail if users had plain + setuptools installed and not distribute + +0.2 (2011-08-23) +------------------ + +- Initial public release diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/LICENSE.txt b/venv/Lib/site-packages/pbr/tests/testpackage/LICENSE.txt new file mode 100644 index 00000000..7e8019a8 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/LICENSE.txt @@ -0,0 +1,29 @@ +Copyright (C) 2005 Association of Universities for Research in Astronomy (AURA) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. The name of AURA and its representatives may not be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/MANIFEST.in b/venv/Lib/site-packages/pbr/tests/testpackage/MANIFEST.in new file mode 100644 index 00000000..2e35f3ed --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/MANIFEST.in @@ -0,0 +1,2 @@ +include data_files/* +exclude pbr_testpackage/extra.py diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/README.txt b/venv/Lib/site-packages/pbr/tests/testpackage/README.txt new file mode 100644 index 00000000..b6d84a7b --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/README.txt @@ -0,0 +1,148 @@ +Introduction +============ +This package contains utilities used to package some of STScI's Python +projects; specifically those projects that comprise stsci_python_ and +Astrolib_. + +It currently consists mostly of some setup_hook scripts meant for use with +`distutils2/packaging`_ and/or pbr_, and a customized easy_install command +meant for use with distribute_. + +This package is not meant for general consumption, though it might be worth +looking at for examples of how to do certain things with your own packages, but +YMMV. + +Features +======== + +Hook Scripts +------------ +Currently the main features of this package are a couple of setup_hook scripts. +In distutils2, a setup_hook is a script that runs at the beginning of any +pysetup command, and can modify the package configuration read from setup.cfg. +There are also pre- and post-command hooks that only run before/after a +specific setup command (eg. build_ext, install) is run. + +stsci.distutils.hooks.use_packages_root +''''''''''''''''''''''''''''''''''''''' +If using the ``packages_root`` option under the ``[files]`` section of +setup.cfg, this hook will add that path to ``sys.path`` so that modules in your +package can be imported and used in setup. This can be used even if +``packages_root`` is not specified--in this case it adds ``''`` to +``sys.path``. + +stsci.distutils.hooks.version_setup_hook +'''''''''''''''''''''''''''''''''''''''' +Creates a Python module called version.py which currently contains four +variables: + +* ``__version__`` (the release version) +* ``__svn_revision__`` (the SVN revision info as returned by the ``svnversion`` + command) +* ``__svn_full_info__`` (as returned by the ``svn info`` command) +* ``__setup_datetime__`` (the date and time that setup.py was last run). + +These variables can be imported in the package's `__init__.py` for degugging +purposes. The version.py module will *only* be created in a package that +imports from the version module in its `__init__.py`. It should be noted that +this is generally preferable to writing these variables directly into +`__init__.py`, since this provides more control and is less likely to +unexpectedly break things in `__init__.py`. + +stsci.distutils.hooks.version_pre_command_hook +'''''''''''''''''''''''''''''''''''''''''''''' +Identical to version_setup_hook, but designed to be used as a pre-command +hook. + +stsci.distutils.hooks.version_post_command_hook +''''''''''''''''''''''''''''''''''''''''''''''' +The complement to version_pre_command_hook. This will delete any version.py +files created during a build in order to prevent them from cluttering an SVN +working copy (note, however, that version.py is *not* deleted from the build/ +directory, so a copy of it is still preserved). It will also not be deleted +if the current directory is not an SVN working copy. For example, if source +code extracted from a source tarball it will be preserved. + +stsci.distutils.hooks.tag_svn_revision +'''''''''''''''''''''''''''''''''''''' +A setup_hook to add the SVN revision of the current working copy path to the +package version string, but only if the version ends in .dev. + +For example, ``mypackage-1.0.dev`` becomes ``mypackage-1.0.dev1234``. This is +in accordance with the version string format standardized by PEP 386. + +This should be used as a replacement for the ``tag_svn_revision`` option to +the egg_info command. This hook is more compatible with packaging/distutils2, +which does not include any VCS support. This hook is also more flexible in +that it turns the revision number on/off depending on the presence of ``.dev`` +in the version string, so that it's not automatically added to the version in +final releases. + +This hook does require the ``svnversion`` command to be available in order to +work. It does not examine the working copy metadata directly. + +stsci.distutils.hooks.numpy_extension_hook +'''''''''''''''''''''''''''''''''''''''''' +This is a pre-command hook for the build_ext command. To use it, add a +``[build_ext]`` section to your setup.cfg, and add to it:: + + pre-hook.numpy-extension-hook = stsci.distutils.hooks.numpy_extension_hook + +This hook must be used to build extension modules that use Numpy. The primary +side-effect of this hook is to add the correct numpy include directories to +`include_dirs`. To use it, add 'numpy' to the 'include-dirs' option of each +extension module that requires numpy to build. The value 'numpy' will be +replaced with the actual path to the numpy includes. + +stsci.distutils.hooks.is_display_option +''''''''''''''''''''''''''''''''''''''' +This is not actually a hook, but is a useful utility function that can be used +in writing other hooks. Basically, it returns ``True`` if setup.py was run +with a "display option" such as --version or --help. This can be used to +prevent your hook from running in such cases. + +stsci.distutils.hooks.glob_data_files +''''''''''''''''''''''''''''''''''''' +A pre-command hook for the install_data command. Allows filename wildcards as +understood by ``glob.glob()`` to be used in the data_files option. This hook +must be used in order to have this functionality since it does not normally +exist in distutils. + +This hook also ensures that data files are installed relative to the package +path. data_files shouldn't normally be installed this way, but the +functionality is required for a few special cases. + + +Commands +-------- +build_optional_ext +'''''''''''''''''' +This serves as an optional replacement for the default built_ext command, +which compiles C extension modules. Its purpose is to allow extension modules +to be *optional*, so that if their build fails the rest of the package is +still allowed to be built and installed. This can be used when an extension +module is not definitely required to use the package. + +To use this custom command, add:: + + commands = stsci.distutils.command.build_optional_ext.build_optional_ext + +under the ``[global]`` section of your package's setup.cfg. Then, to mark +an individual extension module as optional, under the setup.cfg section for +that extension add:: + + optional = True + +Optionally, you may also add a custom failure message by adding:: + + fail_message = The foobar extension module failed to compile. + This could be because you lack such and such headers. + This package will still work, but such and such features + will be disabled. + + +.. _stsci_python: http://www.stsci.edu/resources/software_hardware/pyraf/stsci_python +.. _Astrolib: http://www.scipy.org/AstroLib/ +.. _distutils2/packaging: http://distutils2.notmyidea.org/ +.. _d2to1: http://pypi.python.org/pypi/d2to1 +.. _distribute: http://pypi.python.org/pypi/distribute diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/data_files/a.txt b/venv/Lib/site-packages/pbr/tests/testpackage/data_files/a.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/data_files/b.txt b/venv/Lib/site-packages/pbr/tests/testpackage/data_files/b.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/data_files/c.rst b/venv/Lib/site-packages/pbr/tests/testpackage/data_files/c.rst new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/conf.py b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/conf.py new file mode 100644 index 00000000..6edbe8e3 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/conf.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +# -- General configuration ---------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [ + 'sphinx.ext.autodoc', +] + +# autodoc generation is a bit aggressive and a nuisance when doing heavy +# text edit cycles. +# execute "export SPHINX_DEBUG=1" in your terminal to disable + +# The suffix of source filenames. +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'testpackage' +copyright = u'2013, OpenStack Foundation' + +# If true, '()' will be appended to :func: etc. cross-reference text. +add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +add_module_names = True + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# -- Options for HTML output -------------------------------------------------- + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass +# [howto/manual]). +latex_documents = [ + ('index', + '%s.tex' % project, + u'%s Documentation' % project, + u'OpenStack Foundation', 'manual'), +] diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/index.rst b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/index.rst new file mode 100644 index 00000000..9ce317fd --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/index.rst @@ -0,0 +1,23 @@ +.. testpackage documentation master file, created by + sphinx-quickstart on Tue Jul 9 22:26:36 2013. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to testpackage's documentation! +======================================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + installation + usage + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/installation.rst b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/installation.rst new file mode 100644 index 00000000..9bc2bdea --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/installation.rst @@ -0,0 +1,12 @@ +============ +Installation +============ + +At the command line:: + +$ pip install testpackage + +Or, if you have virtualenvwrapper installed:: + +$ mkvirtualenv testpackage +$ pip install testpackage diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/usage.rst b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/usage.rst new file mode 100644 index 00000000..8f08a91b --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/doc/source/usage.rst @@ -0,0 +1,7 @@ +======== +Usage +======== + +To use testpackage in a project:: + +import testpackage diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/extra-file.txt b/venv/Lib/site-packages/pbr/tests/testpackage/extra-file.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/git-extra-file.txt b/venv/Lib/site-packages/pbr/tests/testpackage/git-extra-file.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/__init__.py b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/__init__.py new file mode 100644 index 00000000..aa56dc6f --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/__init__.py @@ -0,0 +1,3 @@ +import pbr.version + +__version__ = pbr.version.VersionInfo('pbr_testpackage').version_string() diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/_setup_hooks.py b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/_setup_hooks.py new file mode 100644 index 00000000..f8b30876 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/_setup_hooks.py @@ -0,0 +1,65 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +from distutils.command import build_py + + +def test_hook_1(config): + print('test_hook_1') + + +def test_hook_2(config): + print('test_hook_2') + + +class test_command(build_py.build_py): + command_name = 'build_py' + + def run(self): + print('Running custom build_py command.') + return build_py.build_py.run(self) + + +def test_pre_hook(cmdobj): + print('build_ext pre-hook') + + +def test_post_hook(cmdobj): + print('build_ext post-hook') diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/cmd.py b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/cmd.py new file mode 100644 index 00000000..4cc4522f --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/cmd.py @@ -0,0 +1,26 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import print_function + + +def main(): + print("PBR Test Command") + + +class Foo(object): + + @classmethod + def bar(self): + print("PBR Test Command - with class!") diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/extra.py b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/extra.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/package_data/1.txt b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/package_data/1.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/package_data/2.txt b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/package_data/2.txt new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/wsgi.py b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/wsgi.py new file mode 100644 index 00000000..1edd54d3 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/pbr_testpackage/wsgi.py @@ -0,0 +1,40 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import print_function + +import argparse +import functools +import sys + + +def application(env, start_response, data): + sys.stderr.flush() # Force the previous request log to be written. + start_response('200 OK', [('Content-Type', 'text/html')]) + return [data.encode('utf-8')] + + +def main(): + parser = argparse.ArgumentParser(description='Return a string.') + parser.add_argument('--content', '-c', help='String returned', + default='Hello World') + args = parser.parse_args() + return functools.partial(application, data=args.content) + + +class WSGI(object): + + @classmethod + def app(self): + return functools.partial(application, data='Hello World') diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/setup.cfg b/venv/Lib/site-packages/pbr/tests/testpackage/setup.cfg new file mode 100644 index 00000000..3929f0db --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/setup.cfg @@ -0,0 +1,58 @@ +[metadata] +name = pbr_testpackage +# TODO(lifeless) we should inject this as needed otherwise we're not truely +# testing postversioned codepaths. +version = 0.1.dev +author = OpenStack +author-email = openstack-discuss@lists.openstack.org +home-page = http://pypi.python.org/pypi/pbr +project_urls = + Bug Tracker = https://bugs.launchpad.net/pbr/ + Documentation = https://docs.openstack.org/pbr/ + Source Code = https://git.openstack.org/cgit/openstack-dev/pbr/ +summary = Test package for testing pbr +description-file = + README.txt + CHANGES.txt +description-content-type = text/plain; charset=UTF-8 +requires-python = >=2.5 + +requires-dist = + setuptools + +classifier = + Development Status :: 3 - Alpha + Intended Audience :: Developers + License :: OSI Approved :: BSD License + Programming Language :: Python + Topic :: Scientific/Engineering + Topic :: Software Development :: Build Tools + Topic :: Software Development :: Libraries :: Python Modules + Topic :: System :: Archiving :: Packaging + +keywords = packaging, distutils, setuptools + +[files] +packages = pbr_testpackage +package-data = testpackage = package_data/*.txt +data-files = testpackage/data_files = data_files/* +extra-files = extra-file.txt + +[entry_points] +console_scripts = + pbr_test_cmd = pbr_testpackage.cmd:main + pbr_test_cmd_with_class = pbr_testpackage.cmd:Foo.bar + +wsgi_scripts = + pbr_test_wsgi = pbr_testpackage.wsgi:main + pbr_test_wsgi_with_class = pbr_testpackage.wsgi:WSGI.app + +[extension=pbr_testpackage.testext] +sources = src/testext.c +optional = True + +[global] +#setup-hooks = +# pbr_testpackage._setup_hooks.test_hook_1 +# pbr_testpackage._setup_hooks.test_hook_2 +commands = pbr_testpackage._setup_hooks.test_command diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/setup.py b/venv/Lib/site-packages/pbr/tests/testpackage/setup.py new file mode 100644 index 00000000..2d9f685b --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/setup.py @@ -0,0 +1,21 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import setuptools + +setuptools.setup( + setup_requires=['pbr'], + pbr=True, +) diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/src/testext.c b/venv/Lib/site-packages/pbr/tests/testpackage/src/testext.c new file mode 100644 index 00000000..1b366e9b --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/src/testext.c @@ -0,0 +1,29 @@ +#include + + +static PyMethodDef TestextMethods[] = { + {NULL, NULL, 0, NULL} +}; + + +#if PY_MAJOR_VERSION >=3 +static struct PyModuleDef testextmodule = { + PyModuleDef_HEAD_INIT, /* This should correspond to a PyModuleDef_Base type */ + "testext", /* This is the module name */ + "Test extension module", /* This is the module docstring */ + -1, /* This defines the size of the module and says everything is global */ + TestextMethods /* This is the method definition */ +}; + +PyObject* +PyInit_testext(void) +{ + return PyModule_Create(&testextmodule); +} +#else +PyMODINIT_FUNC +inittestext(void) +{ + Py_InitModule("testext", TestextMethods); +} +#endif diff --git a/venv/Lib/site-packages/pbr/tests/testpackage/test-requirements.txt b/venv/Lib/site-packages/pbr/tests/testpackage/test-requirements.txt new file mode 100644 index 00000000..8755eb4c --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/testpackage/test-requirements.txt @@ -0,0 +1,2 @@ +ordereddict;python_version=='2.6' +requests-mock diff --git a/venv/Lib/site-packages/pbr/tests/util.py b/venv/Lib/site-packages/pbr/tests/util.py new file mode 100644 index 00000000..8a00c840 --- /dev/null +++ b/venv/Lib/site-packages/pbr/tests/util.py @@ -0,0 +1,78 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + +import contextlib +import os +import shutil +import stat +import sys + +try: + import ConfigParser as configparser +except ImportError: + import configparser + + +@contextlib.contextmanager +def open_config(filename): + if sys.version_info >= (3, 2): + cfg = configparser.ConfigParser() + else: + cfg = configparser.SafeConfigParser() + cfg.read(filename) + yield cfg + with open(filename, 'w') as fp: + cfg.write(fp) + + +def rmtree(path): + """shutil.rmtree() with error handler. + + Handle 'access denied' from trying to delete read-only files. + """ + + def onerror(func, path, exc_info): + if not os.access(path, os.W_OK): + os.chmod(path, stat.S_IWUSR) + func(path) + else: + raise + + return shutil.rmtree(path, onerror=onerror) diff --git a/venv/Lib/site-packages/pbr/util.py b/venv/Lib/site-packages/pbr/util.py new file mode 100644 index 00000000..1e9fdc49 --- /dev/null +++ b/venv/Lib/site-packages/pbr/util.py @@ -0,0 +1,627 @@ +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Copyright (C) 2013 Association of Universities for Research in Astronomy +# (AURA) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of AURA and its representatives may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +"""The code in this module is mostly copy/pasted out of the distutils2 source +code, as recommended by Tarek Ziade. As such, it may be subject to some change +as distutils2 development continues, and will have to be kept up to date. + +I didn't want to use it directly from distutils2 itself, since I do not want it +to be an installation dependency for our packages yet--it is still too unstable +(the latest version on PyPI doesn't even install). +""" + +# These first two imports are not used, but are needed to get around an +# irritating Python bug that can crop up when using ./setup.py test. +# See: http://www.eby-sarna.com/pipermail/peak/2010-May/003355.html +try: + import multiprocessing # noqa +except ImportError: + pass +import logging # noqa + +from collections import defaultdict +import io +import os +import re +import shlex +import sys +import traceback + +import distutils.ccompiler +from distutils import errors +from distutils import log +import pkg_resources +from setuptools import dist as st_dist +from setuptools import extension + +try: + import ConfigParser as configparser +except ImportError: + import configparser + +from pbr import extra_files +import pbr.hooks + +# A simplified RE for this; just checks that the line ends with version +# predicates in () +_VERSION_SPEC_RE = re.compile(r'\s*(.*?)\s*\((.*)\)\s*$') + + +# Mappings from setup() keyword arguments to setup.cfg options; +# The values are (section, option) tuples, or simply (section,) tuples if +# the option has the same name as the setup() argument +D1_D2_SETUP_ARGS = { + "name": ("metadata",), + "version": ("metadata",), + "author": ("metadata",), + "author_email": ("metadata",), + "maintainer": ("metadata",), + "maintainer_email": ("metadata",), + "url": ("metadata", "home_page"), + "project_urls": ("metadata",), + "description": ("metadata", "summary"), + "keywords": ("metadata",), + "long_description": ("metadata", "description"), + "long_description_content_type": ("metadata", "description_content_type"), + "download_url": ("metadata",), + "classifiers": ("metadata", "classifier"), + "platforms": ("metadata", "platform"), # ** + "license": ("metadata",), + # Use setuptools install_requires, not + # broken distutils requires + "install_requires": ("metadata", "requires_dist"), + "setup_requires": ("metadata", "setup_requires_dist"), + "python_requires": ("metadata",), + "provides": ("metadata", "provides_dist"), # ** + "provides_extras": ("metadata",), + "obsoletes": ("metadata", "obsoletes_dist"), # ** + "package_dir": ("files", 'packages_root'), + "packages": ("files",), + "package_data": ("files",), + "namespace_packages": ("files",), + "data_files": ("files",), + "scripts": ("files",), + "py_modules": ("files", "modules"), # ** + "cmdclass": ("global", "commands"), + # Not supported in distutils2, but provided for + # backwards compatibility with setuptools + "use_2to3": ("backwards_compat", "use_2to3"), + "zip_safe": ("backwards_compat", "zip_safe"), + "tests_require": ("backwards_compat", "tests_require"), + "dependency_links": ("backwards_compat",), + "include_package_data": ("backwards_compat",), +} + +# setup() arguments that can have multiple values in setup.cfg +MULTI_FIELDS = ("classifiers", + "platforms", + "install_requires", + "provides", + "obsoletes", + "namespace_packages", + "packages", + "package_data", + "data_files", + "scripts", + "py_modules", + "dependency_links", + "setup_requires", + "tests_require", + "keywords", + "cmdclass", + "provides_extras") + +# setup() arguments that can have mapping values in setup.cfg +MAP_FIELDS = ("project_urls",) + +# setup() arguments that contain boolean values +BOOL_FIELDS = ("use_2to3", "zip_safe", "include_package_data") + +CSV_FIELDS = () + + +def shlex_split(path): + if os.name == 'nt': + # shlex cannot handle paths that contain backslashes, treating those + # as escape characters. + path = path.replace("\\", "/") + return [x.replace("/", "\\") for x in shlex.split(path)] + + return shlex.split(path) + + +def resolve_name(name): + """Resolve a name like ``module.object`` to an object and return it. + + Raise ImportError if the module or name is not found. + """ + + parts = name.split('.') + cursor = len(parts) - 1 + module_name = parts[:cursor] + attr_name = parts[-1] + + while cursor > 0: + try: + ret = __import__('.'.join(module_name), fromlist=[attr_name]) + break + except ImportError: + if cursor == 0: + raise + cursor -= 1 + module_name = parts[:cursor] + attr_name = parts[cursor] + ret = '' + + for part in parts[cursor:]: + try: + ret = getattr(ret, part) + except AttributeError: + raise ImportError(name) + + return ret + + +def cfg_to_args(path='setup.cfg', script_args=()): + """Distutils2 to distutils1 compatibility util. + + This method uses an existing setup.cfg to generate a dictionary of + keywords that can be used by distutils.core.setup(kwargs**). + + :param path: + The setup.cfg path. + :param script_args: + List of commands setup.py was called with. + :raises DistutilsFileError: + When the setup.cfg file is not found. + """ + + # The method source code really starts here. + if sys.version_info >= (3, 0): + parser = configparser.ConfigParser() + else: + parser = configparser.SafeConfigParser() + + if not os.path.exists(path): + raise errors.DistutilsFileError("file '%s' does not exist" % + os.path.abspath(path)) + try: + parser.read(path, encoding='utf-8') + except TypeError: + # Python 2 doesn't accept the encoding kwarg + parser.read(path) + config = {} + for section in parser.sections(): + config[section] = dict() + for k, value in parser.items(section): + config[section][k.replace('-', '_')] = value + + # Run setup_hooks, if configured + setup_hooks = has_get_option(config, 'global', 'setup_hooks') + package_dir = has_get_option(config, 'files', 'packages_root') + + # Add the source package directory to sys.path in case it contains + # additional hooks, and to make sure it's on the path before any existing + # installations of the package + if package_dir: + package_dir = os.path.abspath(package_dir) + sys.path.insert(0, package_dir) + + try: + if setup_hooks: + setup_hooks = [ + hook for hook in split_multiline(setup_hooks) + if hook != 'pbr.hooks.setup_hook'] + for hook in setup_hooks: + hook_fn = resolve_name(hook) + try: + hook_fn(config) + except SystemExit: + log.error('setup hook %s terminated the installation') + except Exception: + e = sys.exc_info()[1] + log.error('setup hook %s raised exception: %s\n' % + (hook, e)) + log.error(traceback.format_exc()) + sys.exit(1) + + # Run the pbr hook + pbr.hooks.setup_hook(config) + + kwargs = setup_cfg_to_setup_kwargs(config, script_args) + + # Set default config overrides + kwargs['include_package_data'] = True + kwargs['zip_safe'] = False + + register_custom_compilers(config) + + ext_modules = get_extension_modules(config) + if ext_modules: + kwargs['ext_modules'] = ext_modules + + entry_points = get_entry_points(config) + if entry_points: + kwargs['entry_points'] = entry_points + + # Handle the [files]/extra_files option + files_extra_files = has_get_option(config, 'files', 'extra_files') + if files_extra_files: + extra_files.set_extra_files(split_multiline(files_extra_files)) + + finally: + # Perform cleanup if any paths were added to sys.path + if package_dir: + sys.path.pop(0) + + return kwargs + + +def setup_cfg_to_setup_kwargs(config, script_args=()): + """Convert config options to kwargs. + + Processes the setup.cfg options and converts them to arguments accepted + by setuptools' setup() function. + """ + + kwargs = {} + + # Temporarily holds install_requires and extra_requires while we + # parse env_markers. + all_requirements = {} + + for arg in D1_D2_SETUP_ARGS: + if len(D1_D2_SETUP_ARGS[arg]) == 2: + # The distutils field name is different than distutils2's. + section, option = D1_D2_SETUP_ARGS[arg] + + elif len(D1_D2_SETUP_ARGS[arg]) == 1: + # The distutils field name is the same thant distutils2's. + section = D1_D2_SETUP_ARGS[arg][0] + option = arg + + in_cfg_value = has_get_option(config, section, option) + if not in_cfg_value: + # There is no such option in the setup.cfg + if arg == "long_description": + in_cfg_value = has_get_option(config, section, + "description_file") + if in_cfg_value: + in_cfg_value = split_multiline(in_cfg_value) + value = '' + for filename in in_cfg_value: + description_file = io.open(filename, encoding='utf-8') + try: + value += description_file.read().strip() + '\n\n' + finally: + description_file.close() + in_cfg_value = value + else: + continue + + if arg in CSV_FIELDS: + in_cfg_value = split_csv(in_cfg_value) + if arg in MULTI_FIELDS: + in_cfg_value = split_multiline(in_cfg_value) + elif arg in MAP_FIELDS: + in_cfg_map = {} + for i in split_multiline(in_cfg_value): + k, v = i.split('=', 1) + in_cfg_map[k.strip()] = v.strip() + in_cfg_value = in_cfg_map + elif arg in BOOL_FIELDS: + # Provide some flexibility here... + if in_cfg_value.lower() in ('true', 't', '1', 'yes', 'y'): + in_cfg_value = True + else: + in_cfg_value = False + + if in_cfg_value: + if arg in ('install_requires', 'tests_require'): + # Replaces PEP345-style version specs with the sort expected by + # setuptools + in_cfg_value = [_VERSION_SPEC_RE.sub(r'\1\2', pred) + for pred in in_cfg_value] + if arg == 'install_requires': + # Split install_requires into package,env_marker tuples + # These will be re-assembled later + install_requires = [] + requirement_pattern = ( + r'(?P[^;]*);?(?P[^#]*?)(?:\s*#.*)?$') + for requirement in in_cfg_value: + m = re.match(requirement_pattern, requirement) + requirement_package = m.group('package').strip() + env_marker = m.group('env_marker').strip() + install_requires.append((requirement_package, env_marker)) + all_requirements[''] = install_requires + elif arg == 'package_dir': + in_cfg_value = {'': in_cfg_value} + elif arg in ('package_data', 'data_files'): + data_files = {} + firstline = True + prev = None + for line in in_cfg_value: + if '=' in line: + key, value = line.split('=', 1) + key_unquoted = shlex_split(key.strip())[0] + key, value = (key_unquoted, value.strip()) + if key in data_files: + # Multiple duplicates of the same package name; + # this is for backwards compatibility of the old + # format prior to d2to1 0.2.6. + prev = data_files[key] + prev.extend(shlex_split(value)) + else: + prev = data_files[key.strip()] = shlex_split(value) + elif firstline: + raise errors.DistutilsOptionError( + 'malformed package_data first line %r (misses ' + '"=")' % line) + else: + prev.extend(shlex_split(line.strip())) + firstline = False + if arg == 'data_files': + # the data_files value is a pointlessly different structure + # from the package_data value + data_files = data_files.items() + in_cfg_value = data_files + elif arg == 'cmdclass': + cmdclass = {} + dist = st_dist.Distribution() + for cls_name in in_cfg_value: + cls = resolve_name(cls_name) + cmd = cls(dist) + cmdclass[cmd.get_command_name()] = cls + in_cfg_value = cmdclass + + kwargs[arg] = in_cfg_value + + # Transform requirements with embedded environment markers to + # setuptools' supported marker-per-requirement format. + # + # install_requires are treated as a special case of extras, before + # being put back in the expected place + # + # fred = + # foo:marker + # bar + # -> {'fred': ['bar'], 'fred:marker':['foo']} + + if 'extras' in config: + requirement_pattern = ( + r'(?P[^:]*):?(?P[^#]*?)(?:\s*#.*)?$') + extras = config['extras'] + # Add contents of test-requirements, if any, into an extra named + # 'test' if one does not already exist. + if 'test' not in extras: + from pbr import packaging + extras['test'] = "\n".join(packaging.parse_requirements( + packaging.TEST_REQUIREMENTS_FILES)).replace(';', ':') + + for extra in extras: + extra_requirements = [] + requirements = split_multiline(extras[extra]) + for requirement in requirements: + m = re.match(requirement_pattern, requirement) + extras_value = m.group('package').strip() + env_marker = m.group('env_marker') + extra_requirements.append((extras_value, env_marker)) + all_requirements[extra] = extra_requirements + + # Transform the full list of requirements into: + # - install_requires, for those that have no extra and no + # env_marker + # - named extras, for those with an extra name (which may include + # an env_marker) + # - and as a special case, install_requires with an env_marker are + # treated as named extras where the name is the empty string + + extras_require = {} + for req_group in all_requirements: + for requirement, env_marker in all_requirements[req_group]: + if env_marker: + extras_key = '%s:(%s)' % (req_group, env_marker) + # We do not want to poison wheel creation with locally + # evaluated markers. sdists always re-create the egg_info + # and as such do not need guarded, and pip will never call + # multiple setup.py commands at once. + if 'bdist_wheel' not in script_args: + try: + if pkg_resources.evaluate_marker('(%s)' % env_marker): + extras_key = req_group + except SyntaxError: + log.error( + "Marker evaluation failed, see the following " + "error. For more information see: " + "http://docs.openstack.org/" + "pbr/latest/user/using.html#environment-markers" + ) + raise + else: + extras_key = req_group + extras_require.setdefault(extras_key, []).append(requirement) + + kwargs['install_requires'] = extras_require.pop('', []) + kwargs['extras_require'] = extras_require + + return kwargs + + +def register_custom_compilers(config): + """Handle custom compilers. + + This has no real equivalent in distutils, where additional compilers could + only be added programmatically, so we have to hack it in somehow. + """ + + compilers = has_get_option(config, 'global', 'compilers') + if compilers: + compilers = split_multiline(compilers) + for compiler in compilers: + compiler = resolve_name(compiler) + + # In distutils2 compilers these class attributes exist; for + # distutils1 we just have to make something up + if hasattr(compiler, 'name'): + name = compiler.name + else: + name = compiler.__name__ + if hasattr(compiler, 'description'): + desc = compiler.description + else: + desc = 'custom compiler %s' % name + + module_name = compiler.__module__ + # Note; this *will* override built in compilers with the same name + # TODO(embray): Maybe display a warning about this? + cc = distutils.ccompiler.compiler_class + cc[name] = (module_name, compiler.__name__, desc) + + # HACK!!!! Distutils assumes all compiler modules are in the + # distutils package + sys.modules['distutils.' + module_name] = sys.modules[module_name] + + +def get_extension_modules(config): + """Handle extension modules""" + + EXTENSION_FIELDS = ("sources", + "include_dirs", + "define_macros", + "undef_macros", + "library_dirs", + "libraries", + "runtime_library_dirs", + "extra_objects", + "extra_compile_args", + "extra_link_args", + "export_symbols", + "swig_opts", + "depends") + + ext_modules = [] + for section in config: + if ':' in section: + labels = section.split(':', 1) + else: + # Backwards compatibility for old syntax; don't use this though + labels = section.split('=', 1) + labels = [l.strip() for l in labels] + if (len(labels) == 2) and (labels[0] == 'extension'): + ext_args = {} + for field in EXTENSION_FIELDS: + value = has_get_option(config, section, field) + # All extension module options besides name can have multiple + # values + if not value: + continue + value = split_multiline(value) + if field == 'define_macros': + macros = [] + for macro in value: + macro = macro.split('=', 1) + if len(macro) == 1: + macro = (macro[0].strip(), None) + else: + macro = (macro[0].strip(), macro[1].strip()) + macros.append(macro) + value = macros + ext_args[field] = value + if ext_args: + if 'name' not in ext_args: + ext_args['name'] = labels[1] + ext_modules.append(extension.Extension(ext_args.pop('name'), + **ext_args)) + return ext_modules + + +def get_entry_points(config): + """Process the [entry_points] section of setup.cfg. + + Processes setup.cfg to handle setuptools entry points. This is, of course, + not a standard feature of distutils2/packaging, but as there is not + currently a standard alternative in packaging, we provide support for them. + """ + + if 'entry_points' not in config: + return {} + + return dict((option, split_multiline(value)) + for option, value in config['entry_points'].items()) + + +def has_get_option(config, section, option): + if section in config and option in config[section]: + return config[section][option] + else: + return False + + +def split_multiline(value): + """Special behaviour when we have a multi line options""" + + value = [element for element in + (line.strip() for line in value.split('\n')) + if element and not element.startswith('#')] + return value + + +def split_csv(value): + """Special behaviour when we have a comma separated options""" + + value = [element for element in + (chunk.strip() for chunk in value.split(',')) + if element] + return value + + +# The following classes are used to hack Distribution.command_options a bit +class DefaultGetDict(defaultdict): + """Like defaultdict, but get() also sets and returns the default value.""" + + def get(self, key, default=None): + if default is None: + default = self.default_factory() + return super(DefaultGetDict, self).setdefault(key, default) diff --git a/venv/Lib/site-packages/pbr/version.py b/venv/Lib/site-packages/pbr/version.py new file mode 100644 index 00000000..46c60207 --- /dev/null +++ b/venv/Lib/site-packages/pbr/version.py @@ -0,0 +1,483 @@ + +# Copyright 2012 OpenStack Foundation +# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +Utilities for consuming the version from pkg_resources. +""" + +import itertools +import operator +import sys + + +def _is_int(string): + try: + int(string) + return True + except ValueError: + return False + + +class SemanticVersion(object): + """A pure semantic version independent of serialisation. + + See the pbr doc 'semver' for details on the semantics. + """ + + def __init__( + self, major, minor=0, patch=0, prerelease_type=None, + prerelease=None, dev_count=None): + """Create a SemanticVersion. + + :param major: Major component of the version. + :param minor: Minor component of the version. Defaults to 0. + :param patch: Patch level component. Defaults to 0. + :param prerelease_type: What sort of prerelease version this is - + one of a(alpha), b(beta) or rc(release candidate). + :param prerelease: For prerelease versions, what number prerelease. + Defaults to 0. + :param dev_count: How many commits since the last release. + """ + self._major = major + self._minor = minor + self._patch = patch + self._prerelease_type = prerelease_type + self._prerelease = prerelease + if self._prerelease_type and not self._prerelease: + self._prerelease = 0 + self._dev_count = dev_count or 0 # Normalise 0 to None. + + def __eq__(self, other): + if not isinstance(other, SemanticVersion): + return False + return self.__dict__ == other.__dict__ + + def __hash__(self): + return sum(map(hash, self.__dict__.values())) + + def _sort_key(self): + """Return a key for sorting SemanticVersion's on.""" + # key things: + # - final is after rc's, so we make that a/b/rc/z + # - dev==None is after all other devs, so we use sys.maxsize there. + # - unqualified dev releases come before any pre-releases. + # So we do: + # (major, minor, patch) - gets the major grouping. + # (0|1) unqualified dev flag + # (a/b/rc/z) - release segment grouping + # pre-release level + # dev count, maxsize for releases. + rc_lookup = {'a': 'a', 'b': 'b', 'rc': 'rc', None: 'z'} + if self._dev_count and not self._prerelease_type: + uq_dev = 0 + else: + uq_dev = 1 + return ( + self._major, self._minor, self._patch, + uq_dev, + rc_lookup[self._prerelease_type], self._prerelease, + self._dev_count or sys.maxsize) + + def __lt__(self, other): + """Compare self and other, another Semantic Version.""" + # NB(lifeless) this could perhaps be rewritten as + # lt (tuple_of_one, tuple_of_other) with a single check for + # the typeerror corner cases - that would likely be faster + # if this ever becomes performance sensitive. + if not isinstance(other, SemanticVersion): + raise TypeError("ordering to non-SemanticVersion is undefined") + return self._sort_key() < other._sort_key() + + def __le__(self, other): + return self == other or self < other + + def __ge__(self, other): + return not self < other + + def __gt__(self, other): + return not self <= other + + def __ne__(self, other): + return not self == other + + def __repr__(self): + return "pbr.version.SemanticVersion(%s)" % self.release_string() + + @classmethod + def from_pip_string(klass, version_string): + """Create a SemanticVersion from a pip version string. + + This method will parse a version like 1.3.0 into a SemanticVersion. + + This method is responsible for accepting any version string that any + older version of pbr ever created. + + Therefore: versions like 1.3.0a1 versions are handled, parsed into a + canonical form and then output - resulting in 1.3.0.0a1. + Pre pbr-semver dev versions like 0.10.1.3.g83bef74 will be parsed but + output as 0.10.1.dev3.g83bef74. + + :raises ValueError: Never tagged versions sdisted by old pbr result in + just the git hash, e.g. '1234567' which poses a substantial problem + since they collide with the semver versions when all the digits are + numerals. Such versions will result in a ValueError being thrown if + any non-numeric digits are present. They are an exception to the + general case of accepting anything we ever output, since they were + never intended and would permanently mess up versions on PyPI if + ever released - we're treating that as a critical bug that we ever + made them and have stopped doing that. + """ + + try: + return klass._from_pip_string_unsafe(version_string) + except IndexError: + raise ValueError("Invalid version %r" % version_string) + + @classmethod + def _from_pip_string_unsafe(klass, version_string): + # Versions need to start numerically, ignore if not + version_string = version_string.lstrip('vV') + if not version_string[:1].isdigit(): + raise ValueError("Invalid version %r" % version_string) + input_components = version_string.split('.') + # decimals first (keep pre-release and dev/hashes to the right) + components = [c for c in input_components if c.isdigit()] + digit_len = len(components) + if digit_len == 0: + raise ValueError("Invalid version %r" % version_string) + elif digit_len < 3: + if (digit_len < len(input_components) and + input_components[digit_len][0].isdigit()): + # Handle X.YaZ - Y is a digit not a leadin to pre-release. + mixed_component = input_components[digit_len] + last_component = ''.join(itertools.takewhile( + lambda x: x.isdigit(), mixed_component)) + components.append(last_component) + input_components[digit_len:digit_len + 1] = [ + last_component, mixed_component[len(last_component):]] + digit_len += 1 + components.extend([0] * (3 - digit_len)) + components.extend(input_components[digit_len:]) + major = int(components[0]) + minor = int(components[1]) + dev_count = None + post_count = None + prerelease_type = None + prerelease = None + + def _parse_type(segment): + # Discard leading digits (the 0 in 0a1) + isdigit = operator.methodcaller('isdigit') + segment = ''.join(itertools.dropwhile(isdigit, segment)) + isalpha = operator.methodcaller('isalpha') + prerelease_type = ''.join(itertools.takewhile(isalpha, segment)) + prerelease = segment[len(prerelease_type)::] + return prerelease_type, int(prerelease) + if _is_int(components[2]): + patch = int(components[2]) + else: + # legacy version e.g. 1.2.0a1 (canonical is 1.2.0.0a1) + # or 1.2.dev4.g1234 or 1.2.b4 + patch = 0 + components[2:2] = [0] + remainder = components[3:] + remainder_starts_with_int = False + try: + if remainder and int(remainder[0]): + remainder_starts_with_int = True + except ValueError: + pass + if remainder_starts_with_int: + # old dev format - 0.1.2.3.g1234 + dev_count = int(remainder[0]) + else: + if remainder and (remainder[0][0] == '0' or + remainder[0][0] in ('a', 'b', 'r')): + # Current RC/beta layout + prerelease_type, prerelease = _parse_type(remainder[0]) + remainder = remainder[1:] + while remainder: + component = remainder[0] + if component.startswith('dev'): + dev_count = int(component[3:]) + elif component.startswith('post'): + dev_count = None + post_count = int(component[4:]) + else: + raise ValueError( + 'Unknown remainder %r in %r' + % (remainder, version_string)) + remainder = remainder[1:] + result = SemanticVersion( + major, minor, patch, prerelease_type=prerelease_type, + prerelease=prerelease, dev_count=dev_count) + if post_count: + if dev_count: + raise ValueError( + 'Cannot combine postN and devN - no mapping in %r' + % (version_string,)) + result = result.increment().to_dev(post_count) + return result + + def brief_string(self): + """Return the short version minus any alpha/beta tags.""" + return "%s.%s.%s" % (self._major, self._minor, self._patch) + + def debian_string(self): + """Return the version number to use when building a debian package. + + This translates the PEP440/semver precedence rules into Debian version + sorting operators. + """ + return self._long_version("~") + + def decrement(self): + """Return a decremented SemanticVersion. + + Decrementing versions doesn't make a lot of sense - this method only + exists to support rendering of pre-release versions strings into + serialisations (such as rpm) with no sort-before operator. + + The 9999 magic version component is from the spec on this - pbr-semver. + + :return: A new SemanticVersion object. + """ + if self._patch: + new_patch = self._patch - 1 + new_minor = self._minor + new_major = self._major + else: + new_patch = 9999 + if self._minor: + new_minor = self._minor - 1 + new_major = self._major + else: + new_minor = 9999 + if self._major: + new_major = self._major - 1 + else: + new_major = 0 + return SemanticVersion( + new_major, new_minor, new_patch) + + def increment(self, minor=False, major=False): + """Return an incremented SemanticVersion. + + The default behaviour is to perform a patch level increment. When + incrementing a prerelease version, the patch level is not changed + - the prerelease serial is changed (e.g. beta 0 -> beta 1). + + Incrementing non-pre-release versions will not introduce pre-release + versions - except when doing a patch incremental to a pre-release + version the new version will only consist of major/minor/patch. + + :param minor: Increment the minor version. + :param major: Increment the major version. + :return: A new SemanticVersion object. + """ + if self._prerelease_type: + new_prerelease_type = self._prerelease_type + new_prerelease = self._prerelease + 1 + new_patch = self._patch + else: + new_prerelease_type = None + new_prerelease = None + new_patch = self._patch + 1 + if minor: + new_minor = self._minor + 1 + new_patch = 0 + new_prerelease_type = None + new_prerelease = None + else: + new_minor = self._minor + if major: + new_major = self._major + 1 + new_minor = 0 + new_patch = 0 + new_prerelease_type = None + new_prerelease = None + else: + new_major = self._major + return SemanticVersion( + new_major, new_minor, new_patch, + new_prerelease_type, new_prerelease) + + def _long_version(self, pre_separator, rc_marker=""): + """Construct a long string version of this semver. + + :param pre_separator: What separator to use between components + that sort before rather than after. If None, use . and lower the + version number of the component to preserve sorting. (Used for + rpm support) + """ + if ((self._prerelease_type or self._dev_count) and + pre_separator is None): + segments = [self.decrement().brief_string()] + pre_separator = "." + else: + segments = [self.brief_string()] + if self._prerelease_type: + segments.append( + "%s%s%s%s" % (pre_separator, rc_marker, self._prerelease_type, + self._prerelease)) + if self._dev_count: + if not self._prerelease_type: + segments.append(pre_separator) + else: + segments.append('.') + segments.append('dev') + segments.append(self._dev_count) + return "".join(str(s) for s in segments) + + def release_string(self): + """Return the full version of the package. + + This including suffixes indicating VCS status. + """ + return self._long_version(".", "0") + + def rpm_string(self): + """Return the version number to use when building an RPM package. + + This translates the PEP440/semver precedence rules into RPM version + sorting operators. Because RPM has no sort-before operator (such as the + ~ operator in dpkg), we show all prerelease versions as being versions + of the release before. + """ + return self._long_version(None) + + def to_dev(self, dev_count): + """Return a development version of this semver. + + :param dev_count: The number of commits since the last release. + """ + return SemanticVersion( + self._major, self._minor, self._patch, self._prerelease_type, + self._prerelease, dev_count=dev_count) + + def version_tuple(self): + """Present the version as a version_info tuple. + + For documentation on version_info tuples see the Python + documentation for sys.version_info. + + Since semver and PEP-440 represent overlapping but not subsets of + versions, we have to have some heuristic / mapping rules, and have + extended the releaselevel field to have alphadev, betadev and + candidatedev values. When they are present the dev count is used + to provide the serial. + - a/b/rc take precedence. + - if there is no pre-release version the dev version is used. + - serial is taken from the dev/a/b/c component. + - final non-dev versions never get serials. + """ + segments = [self._major, self._minor, self._patch] + if self._prerelease_type: + type_map = {('a', False): 'alpha', + ('b', False): 'beta', + ('rc', False): 'candidate', + ('a', True): 'alphadev', + ('b', True): 'betadev', + ('rc', True): 'candidatedev', + } + segments.append( + type_map[(self._prerelease_type, bool(self._dev_count))]) + segments.append(self._dev_count or self._prerelease) + elif self._dev_count: + segments.append('dev') + segments.append(self._dev_count - 1) + else: + segments.append('final') + segments.append(0) + return tuple(segments) + + +class VersionInfo(object): + + def __init__(self, package): + """Object that understands versioning for a package + + :param package: name of the python package, such as glance, or + python-glanceclient + """ + self.package = package + self.version = None + self._cached_version = None + self._semantic = None + + def __str__(self): + """Make the VersionInfo object behave like a string.""" + return self.version_string() + + def __repr__(self): + """Include the name.""" + return "pbr.version.VersionInfo(%s:%s)" % ( + self.package, self.version_string()) + + def _get_version_from_pkg_resources(self): + """Obtain a version from pkg_resources or setup-time logic if missing. + + This will try to get the version of the package from the pkg_resources + record associated with the package, and if there is no such record + falls back to the logic sdist would use. + """ + # Lazy import because pkg_resources is costly to import so defer until + # we absolutely need it. + import pkg_resources + try: + requirement = pkg_resources.Requirement.parse(self.package) + provider = pkg_resources.get_provider(requirement) + result_string = provider.version + except pkg_resources.DistributionNotFound: + # The most likely cause for this is running tests in a tree + # produced from a tarball where the package itself has not been + # installed into anything. Revert to setup-time logic. + from pbr import packaging + result_string = packaging.get_version(self.package) + return SemanticVersion.from_pip_string(result_string) + + def release_string(self): + """Return the full version of the package. + + This including suffixes indicating VCS status. + """ + return self.semantic_version().release_string() + + def semantic_version(self): + """Return the SemanticVersion object for this version.""" + if self._semantic is None: + self._semantic = self._get_version_from_pkg_resources() + return self._semantic + + def version_string(self): + """Return the short version minus any alpha/beta tags.""" + return self.semantic_version().brief_string() + + # Compatibility functions + canonical_version_string = version_string + version_string_with_vcs = release_string + + def cached_version_string(self, prefix=""): + """Return a cached version string. + + This will return a cached version string if one is already cached, + irrespective of prefix. If none is cached, one will be created with + prefix and then cached and returned. + """ + if not self._cached_version: + self._cached_version = "%s%s" % (prefix, + self.version_string()) + return self._cached_version diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/DESCRIPTION.rst b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/DESCRIPTION.rst new file mode 100644 index 00000000..126f066f --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/DESCRIPTION.rst @@ -0,0 +1,30 @@ +=========================================================== +stevedore -- Manage dynamic plugins for Python applications +=========================================================== + +.. image:: https://img.shields.io/pypi/v/stevedore.svg + :target: https://pypi.org/project/stevedore/ + :alt: Latest Version + +.. image:: https://governance.openstack.org/tc/badges/stevedore.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + +Python makes loading code dynamically easy, allowing you to configure +and extend your application by discovering and loading extensions +("*plugins*") at runtime. Many applications implement their own +library for doing this, using ``__import__`` or ``importlib``. +stevedore avoids creating yet another extension +mechanism by building on top of `setuptools entry points`_. The code +for managing entry points tends to be repetitive, though, so stevedore +provides manager classes for implementing common patterns for using +dynamically loaded extensions. + +.. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html?#entry-points + +* Free software: Apache license +* Documentation: https://docs.openstack.org/stevedore/latest +* Source: https://opendev.org/openstack/stevedore +* Bugs: https://bugs.launchpad.net/python-stevedore + + + diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/INSTALLER b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/METADATA b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/METADATA new file mode 100644 index 00000000..56d6ddaf --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/METADATA @@ -0,0 +1,53 @@ +Metadata-Version: 2.0 +Name: stevedore +Version: 3.2.0 +Summary: Manage dynamic plugins for Python applications +Home-page: https://docs.openstack.org/stevedore/latest/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Intended Audience :: Developers +Classifier: Environment :: Console +Requires-Python: >=3.6 +Requires-Dist: pbr (!=2.1.0,>=2.0.0) +Requires-Dist: importlib-metadata (>=1.7.0); (python_version<'3.8') + +=========================================================== +stevedore -- Manage dynamic plugins for Python applications +=========================================================== + +.. image:: https://img.shields.io/pypi/v/stevedore.svg + :target: https://pypi.org/project/stevedore/ + :alt: Latest Version + +.. image:: https://governance.openstack.org/tc/badges/stevedore.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + +Python makes loading code dynamically easy, allowing you to configure +and extend your application by discovering and loading extensions +("*plugins*") at runtime. Many applications implement their own +library for doing this, using ``__import__`` or ``importlib``. +stevedore avoids creating yet another extension +mechanism by building on top of `setuptools entry points`_. The code +for managing entry points tends to be repetitive, though, so stevedore +provides manager classes for implementing common patterns for using +dynamically loaded extensions. + +.. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html?#entry-points + +* Free software: Apache license +* Documentation: https://docs.openstack.org/stevedore/latest +* Source: https://opendev.org/openstack/stevedore +* Bugs: https://bugs.launchpad.net/python-stevedore + + + diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/RECORD b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/RECORD new file mode 100644 index 00000000..201f49cf --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/RECORD @@ -0,0 +1,77 @@ +stevedore-3.2.0.dist-info/DESCRIPTION.rst,sha256=nBjUeLr8UCyVj8lqPWllqt3PAUbsb8QNcob6g4DiFvw,1310 +stevedore-3.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +stevedore-3.2.0.dist-info/METADATA,sha256=wnY0Dr5S1wtZowsI4rwV12kWiQwXNH35q0z7ALNNrO8,2226 +stevedore-3.2.0.dist-info/RECORD,, +stevedore-3.2.0.dist-info/WHEEL,sha256=8Lm45v9gcYRm70DrgFGVe4WsUtUMi1_0Tso1hqPGMjA,92 +stevedore-3.2.0.dist-info/entry_points.txt,sha256=6cL05UCGjPy45yEg4flcYVvlbiSiaHTLnYvmvbNmnnM,388 +stevedore-3.2.0.dist-info/metadata.json,sha256=gmFp_eQFN9dWOZIwfhz8_93fmGO6ZjY17LlCwLrvwVQ,1618 +stevedore-3.2.0.dist-info/pbr.json,sha256=JBFv4tR5fKuecQTleWHumyAy5D06-p35attK26fQ5lU,46 +stevedore-3.2.0.dist-info/top_level.txt,sha256=rtOULIhauZOXFiAgHRCDBdnqb0wKxA-NqLlvo_b_SOM,10 +stevedore/__init__.py,sha256=lwsEP3iDFwk2lPJjgW3IbeQkhN6TeLM76tCl9V5BWYM,544 +stevedore/__pycache__/__init__.cpython-36.pyc,, +stevedore/__pycache__/_cache.cpython-36.pyc,, +stevedore/__pycache__/dispatch.cpython-36.pyc,, +stevedore/__pycache__/driver.cpython-36.pyc,, +stevedore/__pycache__/enabled.cpython-36.pyc,, +stevedore/__pycache__/exception.cpython-36.pyc,, +stevedore/__pycache__/extension.cpython-36.pyc,, +stevedore/__pycache__/hook.cpython-36.pyc,, +stevedore/__pycache__/named.cpython-36.pyc,, +stevedore/__pycache__/sphinxext.cpython-36.pyc,, +stevedore/_cache.py,sha256=XEa4GRzXL85ScuJln6_qJ3iXaowVzf64VrxEPx7XTrU,6005 +stevedore/dispatch.py,sha256=I5wiZfF9As7gNe5rZgfHV7dAZ9K7tePzoao121WzOmM,9560 +stevedore/driver.py,sha256=nkUv2CbvvVadthppsWZZArb0GyqUjoAMWjqgvJVyb2g,6210 +stevedore/enabled.py,sha256=vtWydytqC77rOUoPrjCjJyMtqAO-iGMfvJ5oKUi4Kto,3569 +stevedore/example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +stevedore/example/__pycache__/__init__.cpython-36.pyc,, +stevedore/example/__pycache__/base.cpython-36.pyc,, +stevedore/example/__pycache__/load_as_driver.cpython-36.pyc,, +stevedore/example/__pycache__/load_as_extension.cpython-36.pyc,, +stevedore/example/__pycache__/setup.cpython-36.pyc,, +stevedore/example/__pycache__/simple.cpython-36.pyc,, +stevedore/example/base.py,sha256=-_pdDBZUoI-KY7tAbZKyeRN_hdpFsfkeBZorrYgdOIk,505 +stevedore/example/load_as_driver.py,sha256=bQNxK4cJ5wVcE2ro2Pgt60Phlmp2KrD7DX83MPpUOys,763 +stevedore/example/load_as_extension.py,sha256=Qo3YYbTulSfLBR3eKMrZMtoqtWc6VLPr4S88fW_tcpk,822 +stevedore/example/setup.py,sha256=0ee44YR11wieurWOdzUM3booDmCgpocXEwM20hb7ie0,1168 +stevedore/example/simple.py,sha256=DgSwoMOBc3YnANLuUbVg_xunRo3z7eKwJK2pNz_YLLs,526 +stevedore/example2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +stevedore/example2/__pycache__/__init__.cpython-36.pyc,, +stevedore/example2/__pycache__/fields.cpython-36.pyc,, +stevedore/example2/__pycache__/setup.cpython-36.pyc,, +stevedore/example2/fields.py,sha256=2fm-vPcuC_I9WYFBz08IhLI0m-0wBfbvAa9Sg05YS9o,939 +stevedore/example2/setup.py,sha256=0F0C3AHwfFYvSM3jEZwBWcJwoLjvU23UuY1sJRN3rIU,1118 +stevedore/exception.py,sha256=D0oRCv7A_tLG3AKIOGGoKuj1dAqEkCwNa99qLcCxzBs,864 +stevedore/extension.py,sha256=OAafQ1SXojhVHFRLdmIWWZcKYl2T0J7lM_4aETTN8Sw,14202 +stevedore/hook.py,sha256=Ggi8wlBBVB0mQ_Le-BReFnpPdJ6mhhGfrvYyM6-AwhU,3972 +stevedore/named.py,sha256=Jr8ij43NUldHoJ9NTR9X9YM5GuWcGcIttSyviBeIZAk,7232 +stevedore/sphinxext.py,sha256=0-JaJEkUZaXRw_-zQlMg3fW02g2KpcUHvxO4LtXUgz8,3806 +stevedore/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +stevedore/tests/__pycache__/__init__.cpython-36.pyc,, +stevedore/tests/__pycache__/extension_unimportable.cpython-36.pyc,, +stevedore/tests/__pycache__/manager.cpython-36.pyc,, +stevedore/tests/__pycache__/test_callback.cpython-36.pyc,, +stevedore/tests/__pycache__/test_dispatch.cpython-36.pyc,, +stevedore/tests/__pycache__/test_driver.cpython-36.pyc,, +stevedore/tests/__pycache__/test_enabled.cpython-36.pyc,, +stevedore/tests/__pycache__/test_example_fields.cpython-36.pyc,, +stevedore/tests/__pycache__/test_example_simple.cpython-36.pyc,, +stevedore/tests/__pycache__/test_extension.cpython-36.pyc,, +stevedore/tests/__pycache__/test_hook.cpython-36.pyc,, +stevedore/tests/__pycache__/test_named.cpython-36.pyc,, +stevedore/tests/__pycache__/test_sphinxext.cpython-36.pyc,, +stevedore/tests/__pycache__/test_test_manager.cpython-36.pyc,, +stevedore/tests/__pycache__/utils.cpython-36.pyc,, +stevedore/tests/extension_unimportable.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +stevedore/tests/manager.py,sha256=sTcvrhZrhOKfOxmj7TEOX9jwl_ME_lG4F2GCdL8TPn4,2538 +stevedore/tests/test_callback.py,sha256=IX7rKVXev83v72XG6ys78UjHv5EKiHfY3BkecJnsvxw,2152 +stevedore/tests/test_dispatch.py,sha256=IhPb9TEvdyLuLnDBRBPfvLcjMrwPN2-iXhkb9EoYf0s,4145 +stevedore/tests/test_driver.py,sha256=t94x8NZV843tbZHcQgo6k949zS50opB73aKpGUMJkPs,3439 +stevedore/tests/test_enabled.py,sha256=2IAeQ_uI9d7TRs8q6V7OaZvk3cl7DlNXQUNFA4lCWRc,1504 +stevedore/tests/test_example_fields.py,sha256=-GSF2-mANuKcQDhuyDOUJYrTcWJkzCeY-tJ1KPULPfQ,1351 +stevedore/tests/test_example_simple.py,sha256=NDZA75boEd8jlzRQUgOb6x-ZkvjMrLy2uDrjBt0F0YM,972 +stevedore/tests/test_extension.py,sha256=OMpwjJ7ESWB2r3RF0p_xH8jghtNeQVR2kSnnwGriPEo,10578 +stevedore/tests/test_hook.py,sha256=4CMD7Bq_TCWEnTBFCwC6k2VV_5r34juh5epWpnkkoz4,1713 +stevedore/tests/test_named.py,sha256=GE3s0nx3hxMzGSkEWai1k9u4lfRJAENJoqLJxYZi9WE,3356 +stevedore/tests/test_sphinxext.py,sha256=C3WkQ2OkxfeRJxZNfOee7Um_GXWh6iN9GVOtkdKdA-0,4108 +stevedore/tests/test_test_manager.py,sha256=Wgwnw2QQ4wXfTMjXnMB4fBUCf5nr1lpYv9JjfEtjumg,9480 +stevedore/tests/utils.py,sha256=ClMCj0b9u1ZYVf2cc6Y4Gq_Sm0m7PRU0ynjZ4EAYifs,617 diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/WHEEL b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/WHEEL new file mode 100644 index 00000000..6261a26e --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.30.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/entry_points.txt b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/entry_points.txt new file mode 100644 index 00000000..20bd7fd1 --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/entry_points.txt @@ -0,0 +1,11 @@ +[stevedore.example.formatter] +field = stevedore.example2.fields:FieldList +plain = stevedore.example.simple:Simple +simple = stevedore.example.simple:Simple + +[stevedore.test.extension] +e1 = stevedore.tests.test_extension:BrokenExtension +e2 = stevedore.tests.notfound:UnimportableExtension +t1 = stevedore.tests.test_extension:FauxExtension +t2 = stevedore.tests.test_extension:FauxExtension + diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/metadata.json b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/metadata.json new file mode 100644 index 00000000..39e9bd47 --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/metadata.json @@ -0,0 +1 @@ +{"classifiers": ["Development Status :: 5 - Production/Stable", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Intended Audience :: Developers", "Environment :: Console"], "extensions": {"python.details": {"contacts": [{"email": "openstack-discuss@lists.openstack.org", "name": "OpenStack", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://docs.openstack.org/stevedore/latest/"}}, "python.exports": {"stevedore.example.formatter": {"field": "stevedore.example2.fields:FieldList", "plain": "stevedore.example.simple:Simple", "simple": "stevedore.example.simple:Simple"}, "stevedore.test.extension": {"e1": "stevedore.tests.test_extension:BrokenExtension", "e2": "stevedore.tests.notfound:UnimportableExtension", "t1": "stevedore.tests.test_extension:FauxExtension", "t2": "stevedore.tests.test_extension:FauxExtension"}}}, "extras": [], "generator": "bdist_wheel (0.30.0)", "metadata_version": "2.0", "name": "stevedore", "requires_python": ">=3.6", "run_requires": [{"requires": ["pbr (!=2.1.0,>=2.0.0)"]}, {"environment": "(python_version<'3.8')", "requires": ["importlib-metadata (>=1.7.0)"]}], "summary": "Manage dynamic plugins for Python applications", "test_requires": [{"requires": ["coverage (!=4.4,>=4.0)", "sphinx (!=2.1.0,>=2.0.0)", "stestr (>=2.0.0)"]}], "version": "3.2.0"} \ No newline at end of file diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/pbr.json b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/pbr.json new file mode 100644 index 00000000..a7d3559d --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/pbr.json @@ -0,0 +1 @@ +{"git_version": "e9204ee", "is_release": true} \ No newline at end of file diff --git a/venv/Lib/site-packages/stevedore-3.2.0.dist-info/top_level.txt b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/top_level.txt new file mode 100644 index 00000000..19c82760 --- /dev/null +++ b/venv/Lib/site-packages/stevedore-3.2.0.dist-info/top_level.txt @@ -0,0 +1 @@ +stevedore diff --git a/venv/Lib/site-packages/stevedore/__init__.py b/venv/Lib/site-packages/stevedore/__init__.py new file mode 100644 index 00000000..fdf37a99 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/__init__.py @@ -0,0 +1,23 @@ +# flake8: noqa + +__all__ = [ + 'ExtensionManager', + 'EnabledExtensionManager', + 'NamedExtensionManager', + 'HookManager', + 'DriverManager', +] + +from .extension import ExtensionManager +from .enabled import EnabledExtensionManager +from .named import NamedExtensionManager +from .hook import HookManager +from .driver import DriverManager + +import logging + +# Configure a NullHandler for our log messages in case +# the app we're used from does not set up logging. +LOG = logging.getLogger('stevedore') + +LOG.addHandler(logging.NullHandler()) diff --git a/venv/Lib/site-packages/stevedore/_cache.py b/venv/Lib/site-packages/stevedore/_cache.py new file mode 100644 index 00000000..28a45faa --- /dev/null +++ b/venv/Lib/site-packages/stevedore/_cache.py @@ -0,0 +1,195 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Use a cache layer in front of entry point scanning.""" + +import errno +import glob +import hashlib +import itertools +import json +import logging +import os +import os.path +import struct +import sys + +try: + # For python 3.8 and later + import importlib.metadata as importlib_metadata +except ImportError: + # For everyone else + import importlib_metadata + + +log = logging.getLogger('stevedore._cache') + + +def _get_cache_dir(): + """Locate a platform-appropriate cache directory to use. + + Does not ensure that the cache directory exists. + """ + # Linux, Unix, AIX, etc. + if os.name == 'posix' and sys.platform != 'darwin': + # use ~/.cache if empty OR not set + base_path = os.environ.get("XDG_CACHE_HOME", None) \ + or os.path.expanduser('~/.cache') + return os.path.join(base_path, 'python-entrypoints') + + # Mac OS + elif sys.platform == 'darwin': + return os.path.expanduser('~/Library/Caches/Python Entry Points') + + # Windows (hopefully) + else: + base_path = os.environ.get('LOCALAPPDATA', None) \ + or os.path.expanduser('~\\AppData\\Local') + return os.path.join(base_path, 'Python Entry Points') + + +def _get_mtime(name): + try: + s = os.stat(name) + return s.st_mtime + except OSError as err: + if err.errno != errno.ENOENT: + raise + return -1.0 + + +def _ftobytes(f): + return struct.Struct('f').pack(f) + + +def _hash_settings_for_path(path): + """Return a hash and the path settings that created it. + """ + paths = [] + h = hashlib.sha256() + + # Tie the cache to the python interpreter, in case it is part of a + # virtualenv. + h.update(sys.executable.encode('utf-8')) + h.update(sys.prefix.encode('utf-8')) + + for entry in path: + mtime = _get_mtime(entry) + h.update(entry.encode('utf-8')) + h.update(_ftobytes(mtime)) + paths.append((entry, mtime)) + + for ep_file in itertools.chain( + glob.iglob(os.path.join(entry, + '*.dist-info', + 'entry_points.txt')), + glob.iglob(os.path.join(entry, + '*.egg-info', + 'entry_points.txt')) + ): + mtime = _get_mtime(ep_file) + h.update(ep_file.encode('utf-8')) + h.update(_ftobytes(mtime)) + paths.append((ep_file, mtime)) + + return (h.hexdigest(), paths) + + +def _build_cacheable_data(path): + real_groups = importlib_metadata.entry_points() + # Convert the namedtuple values to regular tuples + groups = {} + for name, group_data in real_groups.items(): + existing = set() + members = [] + groups[name] = members + for ep in group_data: + # Filter out duplicates that can occur when testing a + # package that provides entry points using tox, where the + # package is installed in the virtualenv that tox builds + # and is present in the path as '.'. + item = ep[:] # convert namedtuple to tuple + if item in existing: + continue + existing.add(item) + members.append(item) + return { + 'groups': groups, + 'sys.executable': sys.executable, + 'sys.prefix': sys.prefix, + } + + +class Cache: + + def __init__(self, cache_dir=None): + if cache_dir is None: + cache_dir = _get_cache_dir() + self._dir = cache_dir + self._internal = {} + + def _get_data_for_path(self, path): + if path is None: + path = sys.path + + internal_key = tuple(path) + if internal_key in self._internal: + return self._internal[internal_key] + + digest, path_values = _hash_settings_for_path(path) + filename = os.path.join(self._dir, digest) + try: + log.debug('reading %s', filename) + with open(filename, 'r') as f: + data = json.load(f) + except (IOError, json.JSONDecodeError): + data = _build_cacheable_data(path) + data['path_values'] = path_values + try: + log.debug('writing to %s', filename) + os.makedirs(self._dir, exist_ok=True) + with open(filename, 'w') as f: + json.dump(data, f) + except (IOError, OSError): + # Could not create cache dir or write file. + pass + + self._internal[internal_key] = data + return data + + def get_group_all(self, group, path=None): + result = [] + data = self._get_data_for_path(path) + group_data = data.get('groups', {}).get(group, []) + for vals in group_data: + result.append(importlib_metadata.EntryPoint(*vals)) + return result + + def get_group_named(self, group, path=None): + result = {} + for ep in self.get_group_all(group, path=path): + if ep.name not in result: + result[ep.name] = ep + return result + + def get_single(self, group, name, path=None): + for name, ep in self.get_group_named(group, path=path).items(): + if name == name: + return ep + raise ValueError('No entrypoint {!r} in group {!r}'.format( + group, name)) + + +_c = Cache() +get_group_all = _c.get_group_all +get_group_named = _c.get_group_named +get_single = _c.get_single diff --git a/venv/Lib/site-packages/stevedore/dispatch.py b/venv/Lib/site-packages/stevedore/dispatch.py new file mode 100644 index 00000000..a1589673 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/dispatch.py @@ -0,0 +1,229 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import logging + +from .enabled import EnabledExtensionManager +from .exception import NoMatches + +LOG = logging.getLogger(__name__) + + +class DispatchExtensionManager(EnabledExtensionManager): + """Loads all plugins and filters on execution. + + This is useful for long-running processes that need to pass + different inputs to different extensions. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param check_func: Function to determine which extensions to load. + :type check_func: callable + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged and + then ignored + :type invoke_on_load: bool + """ + + def map(self, filter_func, func, *args, **kwds): + """Iterate over the extensions invoking func() for any where + filter_func() returns True. + + The signature of filter_func() should be:: + + def filter_func(ext, *args, **kwds): + pass + + The first argument to filter_func(), 'ext', is the + :class:`~stevedore.extension.Extension` + instance. filter_func() should return True if the extension + should be invoked for the input arguments. + + The signature for func() should be:: + + def func(ext, *args, **kwds): + pass + + The first argument to func(), 'ext', is the + :class:`~stevedore.extension.Extension` instance. + + Exceptions raised from within func() are propagated up and + processing stopped if self.propagate_map_exceptions is True, + otherwise they are logged and ignored. + + :param filter_func: Callable to test each extension. + :param func: Callable to invoke for each extension. + :param args: Variable arguments to pass to func() + :param kwds: Keyword arguments to pass to func() + :returns: List of values returned from func() + """ + if not self.extensions: + # FIXME: Use a more specific exception class here. + raise NoMatches('No %s extensions found' % self.namespace) + response = [] + for e in self.extensions: + if filter_func(e, *args, **kwds): + self._invoke_one_plugin(response.append, func, e, args, kwds) + return response + + def map_method(self, filter_func, method_name, *args, **kwds): + """Iterate over the extensions invoking each one's object method called + `method_name` for any where filter_func() returns True. + + This is equivalent of using :meth:`map` with func set to + `lambda x: x.obj.method_name()` + while being more convenient. + + Exceptions raised from within the called method are propagated up + and processing stopped if self.propagate_map_exceptions is True, + otherwise they are logged and ignored. + + .. versionadded:: 0.12 + + :param filter_func: Callable to test each extension. + :param method_name: The extension method name to call + for each extension. + :param args: Variable arguments to pass to method + :param kwds: Keyword arguments to pass to method + :returns: List of values returned from methods + """ + return self.map(filter_func, self._call_extension_method, + method_name, *args, **kwds) + + +class NameDispatchExtensionManager(DispatchExtensionManager): + """Loads all plugins and filters on execution. + + This is useful for long-running processes that need to pass + different inputs to different extensions and can predict the name + of the extensions before calling them. + + The check_func argument should return a boolean, with ``True`` + indicating that the extension should be loaded and made available + and ``False`` indicating that the extension should be ignored. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param check_func: Function to determine which extensions to load. + :type check_func: callable + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged and + then ignored + :type invoke_on_load: bool + :param on_load_failure_callback: Callback function that will be called when + a entrypoint can not be loaded. The arguments that will be provided + when this is called (when an entrypoint fails to load) are + (manager, entrypoint, exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + + """ + + def __init__(self, namespace, check_func, invoke_on_load=False, + invoke_args=(), invoke_kwds={}, + propagate_map_exceptions=False, + on_load_failure_callback=None, + verify_requirements=False): + super(NameDispatchExtensionManager, self).__init__( + namespace=namespace, + check_func=check_func, + invoke_on_load=invoke_on_load, + invoke_args=invoke_args, + invoke_kwds=invoke_kwds, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback, + verify_requirements=verify_requirements, + ) + + def _init_plugins(self, extensions): + super(NameDispatchExtensionManager, self)._init_plugins(extensions) + self.by_name = dict((e.name, e) for e in self.extensions) + + def map(self, names, func, *args, **kwds): + """Iterate over the extensions invoking func() for any where + the name is in the given list of names. + + The signature for func() should be:: + + def func(ext, *args, **kwds): + pass + + The first argument to func(), 'ext', is the + :class:`~stevedore.extension.Extension` instance. + + Exceptions raised from within func() are propagated up and + processing stopped if self.propagate_map_exceptions is True, + otherwise they are logged and ignored. + + :param names: List or set of name(s) of extension(s) to invoke. + :param func: Callable to invoke for each extension. + :param args: Variable arguments to pass to func() + :param kwds: Keyword arguments to pass to func() + :returns: List of values returned from func() + """ + response = [] + for name in names: + try: + e = self.by_name[name] + except KeyError: + LOG.debug('Missing extension %r being ignored', name) + else: + self._invoke_one_plugin(response.append, func, e, args, kwds) + return response + + def map_method(self, names, method_name, *args, **kwds): + """Iterate over the extensions invoking each one's object method called + `method_name` for any where the name is in the given list of names. + + This is equivalent of using :meth:`map` with func set to + `lambda x: x.obj.method_name()` + while being more convenient. + + Exceptions raised from within the called method are propagated up + and processing stopped if self.propagate_map_exceptions is True, + otherwise they are logged and ignored. + + .. versionadded:: 0.12 + + :param names: List or set of name(s) of extension(s) to invoke. + :param method_name: The extension method name + to call for each extension. + :param args: Variable arguments to pass to method + :param kwds: Keyword arguments to pass to method + :returns: List of values returned from methods + """ + return self.map(names, self._call_extension_method, + method_name, *args, **kwds) diff --git a/venv/Lib/site-packages/stevedore/driver.py b/venv/Lib/site-packages/stevedore/driver.py new file mode 100644 index 00000000..167dc671 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/driver.py @@ -0,0 +1,148 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from .exception import NoMatches, MultipleMatches +from .named import NamedExtensionManager + + +class DriverManager(NamedExtensionManager): + """Load a single plugin with a given name from the namespace. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param name: The name of the driver to load. + :type name: str + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param on_load_failure_callback: Callback function that will be called when + a entrypoint can not be loaded. The arguments that will be provided + when this is called (when an entrypoint fails to load) are + (manager, entrypoint, exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + :type warn_on_missing_entrypoint: bool + """ + + def __init__(self, namespace, name, + invoke_on_load=False, invoke_args=(), invoke_kwds={}, + on_load_failure_callback=None, + verify_requirements=False, + warn_on_missing_entrypoint=True): + on_load_failure_callback = on_load_failure_callback \ + or self._default_on_load_failure + super(DriverManager, self).__init__( + namespace=namespace, + names=[name], + invoke_on_load=invoke_on_load, + invoke_args=invoke_args, + invoke_kwds=invoke_kwds, + on_load_failure_callback=on_load_failure_callback, + verify_requirements=verify_requirements, + warn_on_missing_entrypoint=warn_on_missing_entrypoint + ) + + @staticmethod + def _default_on_load_failure(drivermanager, ep, err): + raise + + @classmethod + def make_test_instance(cls, extension, namespace='TESTING', + propagate_map_exceptions=False, + on_load_failure_callback=None, + verify_requirements=False): + """Construct a test DriverManager + + Test instances are passed a list of extensions to work from rather + than loading them from entry points. + + :param extension: Pre-configured Extension instance + :type extension: :class:`~stevedore.extension.Extension` + :param namespace: The namespace for the manager; used only for + identification since the extensions are passed in. + :type namespace: str + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged + and then ignored + :type propagate_map_exceptions: bool + :param on_load_failure_callback: Callback function that will + be called when a entrypoint can not be loaded. The + arguments that will be provided when this is called (when + an entrypoint fails to load) are (manager, entrypoint, + exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + :return: The manager instance, initialized for testing + + """ + + o = super(DriverManager, cls).make_test_instance( + [extension], namespace=namespace, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback, + verify_requirements=verify_requirements) + return o + + def _init_plugins(self, extensions): + super(DriverManager, self)._init_plugins(extensions) + + if not self.extensions: + name = self._names[0] + raise NoMatches('No %r driver found, looking for %r' % + (self.namespace, name)) + if len(self.extensions) > 1: + discovered_drivers = ','.join(e.entry_point_target + for e in self.extensions) + + raise MultipleMatches('Multiple %r drivers found: %s' % + (self.namespace, discovered_drivers)) + + def __call__(self, func, *args, **kwds): + """Invokes func() for the single loaded extension. + + The signature for func() should be:: + + def func(ext, *args, **kwds): + pass + + The first argument to func(), 'ext', is the + :class:`~stevedore.extension.Extension` instance. + + Exceptions raised from within func() are logged and ignored. + + :param func: Callable to invoke for each extension. + :param args: Variable arguments to pass to func() + :param kwds: Keyword arguments to pass to func() + :returns: List of values returned from func() + """ + results = self.map(func, *args, **kwds) + if results: + return results[0] + + @property + def driver(self): + """Returns the driver being used by this manager. + """ + ext = self.extensions[0] + return ext.obj if ext.obj else ext.plugin diff --git a/venv/Lib/site-packages/stevedore/enabled.py b/venv/Lib/site-packages/stevedore/enabled.py new file mode 100644 index 00000000..c2e0c03d --- /dev/null +++ b/venv/Lib/site-packages/stevedore/enabled.py @@ -0,0 +1,84 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import logging + +from .extension import ExtensionManager + + +LOG = logging.getLogger(__name__) + + +class EnabledExtensionManager(ExtensionManager): + """Loads only plugins that pass a check function. + + The check_func argument should return a boolean, with ``True`` + indicating that the extension should be loaded and made available + and ``False`` indicating that the extension should be ignored. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param check_func: Function to determine which extensions to load. + :type check_func: callable, taking an :class:`Extension` + instance as argument + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged and + then ignored + :type propagate_map_exceptions: bool + :param on_load_failure_callback: Callback function that will be called when + a entrypoint can not be loaded. The arguments that will be provided + when this is called (when an entrypoint fails to load) are + (manager, entrypoint, exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + + """ + + def __init__(self, namespace, check_func, invoke_on_load=False, + invoke_args=(), invoke_kwds={}, + propagate_map_exceptions=False, + on_load_failure_callback=None, + verify_requirements=False,): + self.check_func = check_func + super(EnabledExtensionManager, self).__init__( + namespace, + invoke_on_load=invoke_on_load, + invoke_args=invoke_args, + invoke_kwds=invoke_kwds, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback, + verify_requirements=verify_requirements, + ) + + def _load_one_plugin(self, ep, invoke_on_load, invoke_args, invoke_kwds, + verify_requirements): + ext = super(EnabledExtensionManager, self)._load_one_plugin( + ep, invoke_on_load, invoke_args, invoke_kwds, + verify_requirements, + ) + if ext and not self.check_func(ext): + LOG.debug('ignoring extension %r', ep.name) + return None + return ext diff --git a/venv/Lib/site-packages/stevedore/example/__init__.py b/venv/Lib/site-packages/stevedore/example/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/stevedore/example/base.py b/venv/Lib/site-packages/stevedore/example/base.py new file mode 100644 index 00000000..08f8a5c6 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example/base.py @@ -0,0 +1,19 @@ +import abc + + +class FormatterBase(metaclass=abc.ABCMeta): + """Base class for example plugin used in the tutorial. + """ + + def __init__(self, max_width=60): + self.max_width = max_width + + @abc.abstractmethod + def format(self, data): + """Format the data and return unicode text. + + :param data: A dictionary with string keys and simple types as + values. + :type data: dict(str:?) + :returns: Iterable producing the formatted text. + """ diff --git a/venv/Lib/site-packages/stevedore/example/load_as_driver.py b/venv/Lib/site-packages/stevedore/example/load_as_driver.py new file mode 100644 index 00000000..6838c9da --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example/load_as_driver.py @@ -0,0 +1,35 @@ +import argparse + +from stevedore import driver + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument( + 'format', + nargs='?', + default='simple', + help='the output format', + ) + parser.add_argument( + '--width', + default=60, + type=int, + help='maximum output width for text', + ) + parsed_args = parser.parse_args() + + data = { + 'a': 'A', + 'b': 'B', + 'long': 'word ' * 80, + } + + mgr = driver.DriverManager( + namespace='stevedore.example.formatter', + name=parsed_args.format, + invoke_on_load=True, + invoke_args=(parsed_args.width,), + ) + for chunk in mgr.driver.format(data): + print(chunk, end='') diff --git a/venv/Lib/site-packages/stevedore/example/load_as_extension.py b/venv/Lib/site-packages/stevedore/example/load_as_extension.py new file mode 100644 index 00000000..f7518529 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example/load_as_extension.py @@ -0,0 +1,37 @@ +import argparse + +from stevedore import extension + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument( + '--width', + default=60, + type=int, + help='maximum output width for text', + ) + parsed_args = parser.parse_args() + + data = { + 'a': 'A', + 'b': 'B', + 'long': 'word ' * 80, + } + + mgr = extension.ExtensionManager( + namespace='stevedore.example.formatter', + invoke_on_load=True, + invoke_args=(parsed_args.width,), + ) + + def format_data(ext, data): + return (ext.name, ext.obj.format(data)) + + results = mgr.map(format_data, data) + + for name, result in results: + print('Formatter: {0}'.format(name)) + for chunk in result: + print(chunk, end='') + print('') diff --git a/venv/Lib/site-packages/stevedore/example/setup.py b/venv/Lib/site-packages/stevedore/example/setup.py new file mode 100644 index 00000000..33e2aeec --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example/setup.py @@ -0,0 +1,43 @@ +from setuptools import setup, find_packages + +setup( + name='stevedore-examples', + version='1.0', + + description='Demonstration package for stevedore', + + author='Doug Hellmann', + author_email='doug@doughellmann.com', + + url='http://opendev.org/openstack/stevedore', + + classifiers=['Development Status :: 3 - Alpha', + 'License :: OSI Approved :: Apache Software License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Intended Audience :: Developers', + 'Environment :: Console', + ], + + platforms=['Any'], + + scripts=[], + + provides=['stevedore.examples', + ], + + packages=find_packages(), + include_package_data=True, + + entry_points={ + 'stevedore.example.formatter': [ + 'simple = stevedore.example.simple:Simple', + 'plain = stevedore.example.simple:Simple', + ], + }, + + zip_safe=False, +) diff --git a/venv/Lib/site-packages/stevedore/example/simple.py b/venv/Lib/site-packages/stevedore/example/simple.py new file mode 100644 index 00000000..1cad96af --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example/simple.py @@ -0,0 +1,20 @@ +from stevedore.example import base + + +class Simple(base.FormatterBase): + """A very basic formatter. + """ + + def format(self, data): + """Format the data and return unicode text. + + :param data: A dictionary with string keys and simple types as + values. + :type data: dict(str:?) + """ + for name, value in sorted(data.items()): + line = '{name} = {value}\n'.format( + name=name, + value=value, + ) + yield line diff --git a/venv/Lib/site-packages/stevedore/example2/__init__.py b/venv/Lib/site-packages/stevedore/example2/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/stevedore/example2/fields.py b/venv/Lib/site-packages/stevedore/example2/fields.py new file mode 100644 index 00000000..f5c8e194 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example2/fields.py @@ -0,0 +1,36 @@ +import textwrap + +from stevedore.example import base + + +class FieldList(base.FormatterBase): + """Format values as a reStructuredText field list. + + For example:: + + : name1 : value + : name2 : value + : name3 : a long value + will be wrapped with + a hanging indent + """ + + def format(self, data): + """Format the data and return unicode text. + + :param data: A dictionary with string keys and simple types as + values. + :type data: dict(str:?) + """ + for name, value in sorted(data.items()): + full_text = ': {name} : {value}'.format( + name=name, + value=value, + ) + wrapped_text = textwrap.fill( + full_text, + initial_indent='', + subsequent_indent=' ', + width=self.max_width, + ) + yield wrapped_text + '\n' diff --git a/venv/Lib/site-packages/stevedore/example2/setup.py b/venv/Lib/site-packages/stevedore/example2/setup.py new file mode 100644 index 00000000..31d71454 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/example2/setup.py @@ -0,0 +1,42 @@ +from setuptools import setup, find_packages + +setup( + name='stevedore-examples2', + version='1.0', + + description='Demonstration package for stevedore', + + author='Doug Hellmann', + author_email='doug@doughellmann.com', + + url='http://opendev.org/openstack/stevedore', + + classifiers=['Development Status :: 3 - Alpha', + 'License :: OSI Approved :: Apache Software License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Intended Audience :: Developers', + 'Environment :: Console', + ], + + platforms=['Any'], + + scripts=[], + + provides=['stevedore.examples2', + ], + + packages=find_packages(), + include_package_data=True, + + entry_points={ + 'stevedore.example.formatter': [ + 'field = stevedore.example2.fields:FieldList', + ], + }, + + zip_safe=False, +) diff --git a/venv/Lib/site-packages/stevedore/exception.py b/venv/Lib/site-packages/stevedore/exception.py new file mode 100644 index 00000000..aa7f1451 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/exception.py @@ -0,0 +1,23 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +class NoUniqueMatch(RuntimeError): + """There was more than one extension, or none, that matched the query.""" + + +class NoMatches(NoUniqueMatch): + """There were no extensions with the driver name found.""" + + +class MultipleMatches(NoUniqueMatch): + """There were multiple matches for the given name.""" diff --git a/venv/Lib/site-packages/stevedore/extension.py b/venv/Lib/site-packages/stevedore/extension.py new file mode 100644 index 00000000..2ccdc279 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/extension.py @@ -0,0 +1,361 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""ExtensionManager +""" + +import operator +import logging + +from . import _cache +from .exception import NoMatches + +LOG = logging.getLogger(__name__) + + +class Extension(object): + """Book-keeping object for tracking extensions. + + The arguments passed to the constructor are saved as attributes of + the instance using the same names, and can be accessed by the + callables passed to :meth:`map` or when iterating over an + :class:`ExtensionManager` directly. + + :param name: The entry point name. + :type name: str + :param entry_point: The EntryPoint instance returned by + :mod:`entrypoints`. + :type entry_point: EntryPoint + :param plugin: The value returned by entry_point.load() + :param obj: The object returned by ``plugin(*args, **kwds)`` if the + manager invoked the extension on load. + + """ + + def __init__(self, name, entry_point, plugin, obj): + self.name = name + self.entry_point = entry_point + self.plugin = plugin + self.obj = obj + + @property + def module_name(self): + """The name of the module from which the entry point is loaded. + + :return: A string in 'dotted.module' format. + """ + # NOTE: importlib_metadata from PyPI includes this but the + # Python 3.8 standard library does not. + match = self.entry_point.pattern.match(self.entry_point.value) + return match.group('module') + + @property + def extras(self): + """The 'extras' settings for the plugin.""" + # NOTE: The underlying package returns re.Match objects for + # some reason. Translate those to the matched strings, which + # seem more useful. + return [ + # Python 3.6 returns _sre.SRE_Match objects. Later + # versions of python return re.Match objects. Both types + # have a 'string' attribute containing the text that + # matched the pattern. + getattr(e, 'string', e) + for e in self.entry_point.extras + ] + + @property + def attr(self): + """The attribute of the module to be loaded.""" + match = self.entry_point.pattern.match(self.entry_point.value) + return match.group('attr') + + @property + def entry_point_target(self): + """The module and attribute referenced by this extension's entry_point. + + :return: A string representation of the target of the entry point in + 'dotted.module:object' format. + """ + return self.entry_point.value + + +class ExtensionManager(object): + """Base class for all of the other managers. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged and + then ignored + :type propagate_map_exceptions: bool + :param on_load_failure_callback: Callback function that will be called when + a entrypoint can not be loaded. The arguments that will be provided + when this is called (when an entrypoint fails to load) are + (manager, entrypoint, exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + """ + + def __init__(self, namespace, + invoke_on_load=False, + invoke_args=(), + invoke_kwds={}, + propagate_map_exceptions=False, + on_load_failure_callback=None, + verify_requirements=False): + self._init_attributes( + namespace, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback) + extensions = self._load_plugins(invoke_on_load, + invoke_args, + invoke_kwds, + verify_requirements) + self._init_plugins(extensions) + + @classmethod + def make_test_instance(cls, extensions, namespace='TESTING', + propagate_map_exceptions=False, + on_load_failure_callback=None, + verify_requirements=False): + """Construct a test ExtensionManager + + Test instances are passed a list of extensions to work from rather + than loading them from entry points. + + :param extensions: Pre-configured Extension instances to use + :type extensions: list of :class:`~stevedore.extension.Extension` + :param namespace: The namespace for the manager; used only for + identification since the extensions are passed in. + :type namespace: str + :param propagate_map_exceptions: When calling map, controls whether + exceptions are propagated up through the map call or whether they + are logged and then ignored + :type propagate_map_exceptions: bool + :param on_load_failure_callback: Callback function that will + be called when a entrypoint can not be loaded. The + arguments that will be provided when this is called (when + an entrypoint fails to load) are (manager, entrypoint, + exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + :return: The manager instance, initialized for testing + + """ + + o = cls.__new__(cls) + o._init_attributes(namespace, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback) + o._init_plugins(extensions) + return o + + def _init_attributes(self, namespace, propagate_map_exceptions=False, + on_load_failure_callback=None): + self.namespace = namespace + self.propagate_map_exceptions = propagate_map_exceptions + self._on_load_failure_callback = on_load_failure_callback + + def _init_plugins(self, extensions): + self.extensions = extensions + self._extensions_by_name_cache = None + + @property + def _extensions_by_name(self): + if self._extensions_by_name_cache is None: + d = {} + for e in self.extensions: + d[e.name] = e + self._extensions_by_name_cache = d + return self._extensions_by_name_cache + + ENTRY_POINT_CACHE = {} + + def list_entry_points(self): + """Return the list of entry points for this namespace. + + The entry points are not actually loaded, their list is just read and + returned. + + """ + if self.namespace not in self.ENTRY_POINT_CACHE: + eps = list(_cache.get_group_all(self.namespace)) + self.ENTRY_POINT_CACHE[self.namespace] = eps + return self.ENTRY_POINT_CACHE[self.namespace] + + def entry_points_names(self): + """Return the list of entry points names for this namespace.""" + return list(map(operator.attrgetter("name"), self.list_entry_points())) + + def _load_plugins(self, invoke_on_load, invoke_args, invoke_kwds, + verify_requirements): + extensions = [] + for ep in self.list_entry_points(): + LOG.debug('found extension %r', ep) + try: + ext = self._load_one_plugin(ep, + invoke_on_load, + invoke_args, + invoke_kwds, + verify_requirements, + ) + if ext: + extensions.append(ext) + except (KeyboardInterrupt, AssertionError): + raise + except Exception as err: + if self._on_load_failure_callback is not None: + self._on_load_failure_callback(self, ep, err) + else: + # Log the reason we couldn't import the module, + # usually without a traceback. The most common + # reason is an ImportError due to a missing + # dependency, and the error message should be + # enough to debug that. If debug logging is + # enabled for our logger, provide the full + # traceback. + LOG.error('Could not load %r: %s', ep.name, err, + exc_info=LOG.isEnabledFor(logging.DEBUG)) + return extensions + + def _load_one_plugin(self, ep, invoke_on_load, invoke_args, invoke_kwds, + verify_requirements): + # NOTE(dhellmann): Using require=False is deprecated in + # setuptools 11.3. + if hasattr(ep, 'resolve') and hasattr(ep, 'require'): + if verify_requirements: + ep.require() + plugin = ep.resolve() + else: + plugin = ep.load() + if invoke_on_load: + obj = plugin(*invoke_args, **invoke_kwds) + else: + obj = None + return Extension(ep.name, ep, plugin, obj) + + def names(self): + "Returns the names of the discovered extensions" + # We want to return the names of the extensions in the order + # they would be used by map(), since some subclasses change + # that order. + return [e.name for e in self.extensions] + + def map(self, func, *args, **kwds): + """Iterate over the extensions invoking func() for each. + + The signature for func() should be:: + + def func(ext, *args, **kwds): + pass + + The first argument to func(), 'ext', is the + :class:`~stevedore.extension.Extension` instance. + + Exceptions raised from within func() are propagated up and + processing stopped if self.propagate_map_exceptions is True, + otherwise they are logged and ignored. + + :param func: Callable to invoke for each extension. + :param args: Variable arguments to pass to func() + :param kwds: Keyword arguments to pass to func() + :returns: List of values returned from func() + """ + if not self.extensions: + # FIXME: Use a more specific exception class here. + raise NoMatches('No %s extensions found' % self.namespace) + response = [] + for e in self.extensions: + self._invoke_one_plugin(response.append, func, e, args, kwds) + return response + + @staticmethod + def _call_extension_method(extension, method_name, *args, **kwds): + return getattr(extension.obj, method_name)(*args, **kwds) + + def map_method(self, method_name, *args, **kwds): + """Iterate over the extensions invoking a method by name. + + This is equivalent of using :meth:`map` with func set to + `lambda x: x.obj.method_name()` + while being more convenient. + + Exceptions raised from within the called method are propagated up + and processing stopped if self.propagate_map_exceptions is True, + otherwise they are logged and ignored. + + .. versionadded:: 0.12 + + :param method_name: The extension method name + to call for each extension. + :param args: Variable arguments to pass to method + :param kwds: Keyword arguments to pass to method + :returns: List of values returned from methods + """ + return self.map(self._call_extension_method, + method_name, *args, **kwds) + + def _invoke_one_plugin(self, response_callback, func, e, args, kwds): + try: + response_callback(func(e, *args, **kwds)) + except Exception as err: + if self.propagate_map_exceptions: + raise + else: + LOG.error('error calling %r: %s', e.name, err) + LOG.exception(err) + + def items(self): + """ + Return an iterator of tuples of the form (name, extension). + + This is analogous to the Mapping.items() method. + """ + return self._extensions_by_name.items() + + def __iter__(self): + """Produce iterator for the manager. + + Iterating over an ExtensionManager produces the :class:`Extension` + instances in the order they would be invoked. + """ + return iter(self.extensions) + + def __getitem__(self, name): + """Return the named extension. + + Accessing an ExtensionManager as a dictionary (``em['name']``) + produces the :class:`Extension` instance with the + specified name. + """ + return self._extensions_by_name[name] + + def __contains__(self, name): + """Return true if name is in list of enabled extensions. + """ + return any(extension.name == name for extension in self.extensions) diff --git a/venv/Lib/site-packages/stevedore/hook.py b/venv/Lib/site-packages/stevedore/hook.py new file mode 100644 index 00000000..4df2b0f7 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/hook.py @@ -0,0 +1,89 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from .named import NamedExtensionManager + + +class HookManager(NamedExtensionManager): + """Coordinate execution of multiple extensions using a common name. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param name: The name of the hooks to load. + :type name: str + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param on_load_failure_callback: Callback function that will be called when + a entrypoint can not be loaded. The arguments that will be provided + when this is called (when an entrypoint fails to load) are + (manager, entrypoint, exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + :type on_missing_entrypoints_callback: function + :param warn_on_missing_entrypoint: Flag to control whether failing + to load a plugin is reported via a log mess. Only applies if + on_missing_entrypoints_callback is None. + :type warn_on_missing_entrypoint: bool + + """ + + def __init__(self, namespace, name, + invoke_on_load=False, invoke_args=(), invoke_kwds={}, + on_load_failure_callback=None, + verify_requirements=False, + on_missing_entrypoints_callback=None, + # NOTE(dhellmann): This default is different from the + # base class because for hooks it is less likely to + # be an error to have no entry points present. + warn_on_missing_entrypoint=False): + super(HookManager, self).__init__( + namespace, + [name], + invoke_on_load=invoke_on_load, + invoke_args=invoke_args, + invoke_kwds=invoke_kwds, + on_load_failure_callback=on_load_failure_callback, + on_missing_entrypoints_callback=on_missing_entrypoints_callback, + verify_requirements=verify_requirements, + warn_on_missing_entrypoint=warn_on_missing_entrypoint, + ) + + def _init_attributes(self, namespace, names, name_order=False, + propagate_map_exceptions=False, + on_load_failure_callback=None): + super(HookManager, self)._init_attributes( + namespace, names, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback) + self._name = names[0] + + def __getitem__(self, name): + """Return the named extensions. + + Accessing a HookManager as a dictionary (``em['name']``) + produces a list of the :class:`Extension` instance(s) with the + specified name, in the order they would be invoked by map(). + """ + if name != self._name: + raise KeyError(name) + return self.extensions diff --git a/venv/Lib/site-packages/stevedore/named.py b/venv/Lib/site-packages/stevedore/named.py new file mode 100644 index 00000000..3b47dfd3 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/named.py @@ -0,0 +1,159 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import logging + +from .extension import ExtensionManager + +LOG = logging.getLogger(__name__) + + +class NamedExtensionManager(ExtensionManager): + """Loads only the named extensions. + + This is useful for explicitly enabling extensions in a + configuration file, for example. + + :param namespace: The namespace for the entry points. + :type namespace: str + :param names: The names of the extensions to load. + :type names: list(str) + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + :param name_order: If true, sort the loaded extensions to match the + order used in ``names``. + :type name_order: bool + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged and + then ignored + :type propagate_map_exceptions: bool + :param on_load_failure_callback: Callback function that will be called when + a entrypoint can not be loaded. The arguments that will be provided + when this is called (when an entrypoint fails to load) are + (manager, entrypoint, exception) + :type on_load_failure_callback: function + :param on_missing_entrypoints_callback: Callback function that will be + called when one or more names cannot be found. The provided argument + will be a subset of the 'names' parameter. + :type on_missing_entrypoints_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + :param warn_on_missing_entrypoint: Flag to control whether failing + to load a plugin is reported via a log mess. Only applies if + on_missing_entrypoints_callback is None. + :type warn_on_missing_entrypoint: bool + + """ + + def __init__(self, namespace, names, + invoke_on_load=False, invoke_args=(), invoke_kwds={}, + name_order=False, propagate_map_exceptions=False, + on_load_failure_callback=None, + on_missing_entrypoints_callback=None, + verify_requirements=False, + warn_on_missing_entrypoint=True): + self._init_attributes( + namespace, names, name_order=name_order, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback) + extensions = self._load_plugins(invoke_on_load, + invoke_args, + invoke_kwds, + verify_requirements) + self._missing_names = set(names) - set([e.name for e in extensions]) + if self._missing_names: + if on_missing_entrypoints_callback: + on_missing_entrypoints_callback(self._missing_names) + elif warn_on_missing_entrypoint: + LOG.warning('Could not load %s' % + ', '.join(self._missing_names)) + self._init_plugins(extensions) + + @classmethod + def make_test_instance(cls, extensions, namespace='TESTING', + propagate_map_exceptions=False, + on_load_failure_callback=None, + verify_requirements=False): + """Construct a test NamedExtensionManager + + Test instances are passed a list of extensions to use rather than + loading them from entry points. + + :param extensions: Pre-configured Extension instances + :type extensions: list of :class:`~stevedore.extension.Extension` + :param namespace: The namespace for the manager; used only for + identification since the extensions are passed in. + :type namespace: str + :param propagate_map_exceptions: Boolean controlling whether exceptions + are propagated up through the map call or whether they are logged + and then ignored + :type propagate_map_exceptions: bool + :param on_load_failure_callback: Callback function that will + be called when a entrypoint can not be loaded. The + arguments that will be provided when this is called (when + an entrypoint fails to load) are (manager, entrypoint, + exception) + :type on_load_failure_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :type verify_requirements: bool + :return: The manager instance, initialized for testing + + """ + + o = cls.__new__(cls) + names = [e.name for e in extensions] + o._init_attributes(namespace, names, + propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback) + o._init_plugins(extensions) + return o + + def _init_attributes(self, namespace, names, name_order=False, + propagate_map_exceptions=False, + on_load_failure_callback=None): + super(NamedExtensionManager, self)._init_attributes( + namespace, propagate_map_exceptions=propagate_map_exceptions, + on_load_failure_callback=on_load_failure_callback) + + self._names = names + self._missing_names = set() + self._name_order = name_order + + def _init_plugins(self, extensions): + super(NamedExtensionManager, self)._init_plugins(extensions) + + if self._name_order: + self.extensions = [self[n] for n in self._names + if n not in self._missing_names] + + def _load_one_plugin(self, ep, invoke_on_load, invoke_args, invoke_kwds, + verify_requirements): + # Check the name before going any further to prevent + # undesirable code from being loaded at all if we are not + # going to use it. + if ep.name not in self._names: + return None + return super(NamedExtensionManager, self)._load_one_plugin( + ep, invoke_on_load, invoke_args, invoke_kwds, + verify_requirements, + ) diff --git a/venv/Lib/site-packages/stevedore/sphinxext.py b/venv/Lib/site-packages/stevedore/sphinxext.py new file mode 100644 index 00000000..250122ea --- /dev/null +++ b/venv/Lib/site-packages/stevedore/sphinxext.py @@ -0,0 +1,120 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import inspect + +from docutils import nodes +from docutils.parsers import rst +from docutils.parsers.rst import directives +from docutils.statemachine import ViewList +from sphinx.util import logging +from sphinx.util.nodes import nested_parse_with_titles + +from stevedore import extension + +LOG = logging.getLogger(__name__) + + +def _get_docstring(plugin): + return inspect.getdoc(plugin) or '' + + +def _simple_list(mgr): + for name in sorted(mgr.names()): + ext = mgr[name] + doc = _get_docstring(ext.plugin) or '\n' + summary = doc.splitlines()[0].strip() + yield('* %s -- %s' % (ext.name, summary), + ext.module_name) + + +def _detailed_list(mgr, over='', under='-', titlecase=False): + for name in sorted(mgr.names()): + ext = mgr[name] + if over: + yield (over * len(ext.name), ext.module_name) + if titlecase: + yield (ext.name.title(), ext.module_name) + else: + yield (ext.name, ext.module_name) + if under: + yield (under * len(ext.name), ext.module_name) + yield ('\n', ext.module_name) + doc = _get_docstring(ext.plugin) + if doc: + yield (doc, ext.module_name) + else: + yield ( + '.. warning:: No documentation found for {} in {}'.format( + ext.name, ext.entry_point_target, + ), + ext.module_name, + ) + yield ('\n', ext.module_name) + + +class ListPluginsDirective(rst.Directive): + """Present a simple list of the plugins in a namespace.""" + + option_spec = { + 'class': directives.class_option, + 'detailed': directives.flag, + 'titlecase': directives.flag, + 'overline-style': directives.single_char_or_unicode, + 'underline-style': directives.single_char_or_unicode, + } + + has_content = True + + def run(self): + namespace = ' '.join(self.content).strip() + LOG.info('documenting plugins from %r' % namespace) + overline_style = self.options.get('overline-style', '') + underline_style = self.options.get('underline-style', '=') + + def report_load_failure(mgr, ep, err): + LOG.warning(u'Failed to load %s: %s' % (ep.module, err)) + + mgr = extension.ExtensionManager( + namespace, + on_load_failure_callback=report_load_failure, + ) + + result = ViewList() + + titlecase = 'titlecase' in self.options + + if 'detailed' in self.options: + data = _detailed_list( + mgr, over=overline_style, under=underline_style, + titlecase=titlecase) + else: + data = _simple_list(mgr) + for text, source in data: + for line in text.splitlines(): + result.append(line, source) + + # Parse what we have into a new section. + node = nodes.section() + node.document = self.state.document + nested_parse_with_titles(self.state, result, node) + + return node.children + + +def setup(app): + LOG.info('loading stevedore.sphinxext') + app.add_directive('list-plugins', ListPluginsDirective) + return { + 'parallel_read_safe': True, + 'parallel_write_safe': True, + } diff --git a/venv/Lib/site-packages/stevedore/tests/__init__.py b/venv/Lib/site-packages/stevedore/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/stevedore/tests/extension_unimportable.py b/venv/Lib/site-packages/stevedore/tests/extension_unimportable.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/stevedore/tests/manager.py b/venv/Lib/site-packages/stevedore/tests/manager.py new file mode 100644 index 00000000..8c97a680 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/manager.py @@ -0,0 +1,67 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""TestExtensionManager + +Extension manager used only for testing. +""" + +import warnings + +from stevedore import extension + + +class TestExtensionManager(extension.ExtensionManager): + """ExtensionManager that is explicitly initialized for tests. + + .. deprecated:: 0.13 + + Use the :func:`make_test_instance` class method of the class + being replaced by the test instance instead of using this class + directly. + + :param extensions: Pre-configured Extension instances to use + instead of loading them from entry points. + :type extensions: list of :class:`~stevedore.extension.Extension` + :param namespace: The namespace for the entry points. + :type namespace: str + :param invoke_on_load: Boolean controlling whether to invoke the + object returned by the entry point after the driver is loaded. + :type invoke_on_load: bool + :param invoke_args: Positional arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_args: tuple + :param invoke_kwds: Named arguments to pass when invoking + the object returned by the entry point. Only used if invoke_on_load + is True. + :type invoke_kwds: dict + + """ + + def __init__(self, extensions, + namespace='test', + invoke_on_load=False, + invoke_args=(), + invoke_kwds={}): + super(TestExtensionManager, self).__init__(namespace, + invoke_on_load, + invoke_args, + invoke_kwds, + ) + self.extensions = extensions + warnings.warn( + 'TestExtesionManager has been replaced by make_test_instance()', + DeprecationWarning) + + def _load_plugins(self, *args, **kwds): + return [] diff --git a/venv/Lib/site-packages/stevedore/tests/test_callback.py b/venv/Lib/site-packages/stevedore/tests/test_callback.py new file mode 100644 index 00000000..75026f75 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_callback.py @@ -0,0 +1,56 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Tests for failure loading callback +""" +from unittest import mock + +from testtools.matchers import GreaterThan + +from stevedore import extension +from stevedore import named +from stevedore.tests import utils + + +class TestCallback(utils.TestCase): + def test_extension_failure_custom_callback(self): + errors = [] + + def failure_callback(manager, entrypoint, error): + errors.append((manager, entrypoint, error)) + + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + on_load_failure_callback= + failure_callback) + extensions = list(em.extensions) + self.assertTrue(len(extensions), GreaterThan(0)) + self.assertEqual(len(errors), 2) + for manager, entrypoint, error in errors: + self.assertIs(manager, em) + self.assertIsInstance(error, (IOError, ImportError)) + + @mock.patch('stevedore.named.NamedExtensionManager._load_plugins') + def test_missing_entrypoints_callback(self, load_fn): + errors = set() + + def callback(names): + errors.update(names) + + load_fn.return_value = [ + extension.Extension('foo', None, None, None) + ] + named.NamedExtensionManager('stevedore.test.extension', + names=['foo', 'bar'], + invoke_on_load=True, + on_missing_entrypoints_callback=callback) + self.assertEqual(errors, {'bar'}) diff --git a/venv/Lib/site-packages/stevedore/tests/test_dispatch.py b/venv/Lib/site-packages/stevedore/tests/test_dispatch.py new file mode 100644 index 00000000..f1c305ab --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_dispatch.py @@ -0,0 +1,103 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from stevedore.tests import utils +from stevedore import dispatch + + +def check_dispatch(ep, *args, **kwds): + return ep.name == 't2' + + +class TestDispatch(utils.TestCase): + def check_dispatch(ep, *args, **kwds): + return ep.name == 't2' + + def test_dispatch(self): + + def invoke(ep, *args, **kwds): + return (ep.name, args, kwds) + + em = dispatch.DispatchExtensionManager('stevedore.test.extension', + lambda *args, **kwds: True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + self.assertEqual(len(em.extensions), 2) + self.assertEqual(set(em.names()), set(['t1', 't2'])) + + results = em.map(check_dispatch, + invoke, + 'first', + named='named value', + ) + expected = [('t2', ('first',), {'named': 'named value'})] + self.assertEqual(results, expected) + + def test_dispatch_map_method(self): + em = dispatch.DispatchExtensionManager('stevedore.test.extension', + lambda *args, **kwds: True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + + results = em.map_method(check_dispatch, 'get_args_and_data', 'first') + self.assertEqual(results, [(('a',), {'b': 'B'}, 'first')]) + + def test_name_dispatch(self): + + def invoke(ep, *args, **kwds): + return (ep.name, args, kwds) + + em = dispatch.NameDispatchExtensionManager('stevedore.test.extension', + lambda *args, **kwds: True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + self.assertEqual(len(em.extensions), 2) + self.assertEqual(set(em.names()), set(['t1', 't2'])) + + results = em.map(['t2'], invoke, 'first', named='named value',) + expected = [('t2', ('first',), {'named': 'named value'})] + self.assertEqual(results, expected) + + def test_name_dispatch_ignore_missing(self): + + def invoke(ep, *args, **kwds): + return (ep.name, args, kwds) + + em = dispatch.NameDispatchExtensionManager( + 'stevedore.test.extension', + lambda *args, **kwds: True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + + results = em.map(['t3', 't1'], invoke, 'first', named='named value',) + expected = [('t1', ('first',), {'named': 'named value'})] + self.assertEqual(results, expected) + + def test_name_dispatch_map_method(self): + em = dispatch.NameDispatchExtensionManager( + 'stevedore.test.extension', + lambda *args, **kwds: True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + + results = em.map_method(['t3', 't1'], 'get_args_and_data', 'first') + self.assertEqual(results, [(('a',), {'b': 'B'}, 'first')]) diff --git a/venv/Lib/site-packages/stevedore/tests/test_driver.py b/venv/Lib/site-packages/stevedore/tests/test_driver.py new file mode 100644 index 00000000..92308359 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_driver.py @@ -0,0 +1,96 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Tests for stevedore.extension +""" + +try: + # For python 3.8 and later + import importlib.metadata as importlib_metadata +except ImportError: + # For everyone else + import importlib_metadata + +from stevedore import driver +from stevedore import exception +from stevedore import extension +from stevedore.tests import test_extension +from stevedore.tests import utils + + +class TestCallback(utils.TestCase): + def test_detect_plugins(self): + em = driver.DriverManager('stevedore.test.extension', 't1') + names = sorted(em.names()) + self.assertEqual(names, ['t1']) + + def test_call(self): + def invoke(ext, *args, **kwds): + return (ext.name, args, kwds) + em = driver.DriverManager('stevedore.test.extension', 't1') + result = em(invoke, 'a', b='C') + self.assertEqual(result, ('t1', ('a',), {'b': 'C'})) + + def test_driver_property_not_invoked_on_load(self): + em = driver.DriverManager('stevedore.test.extension', 't1', + invoke_on_load=False) + d = em.driver + self.assertIs(d, test_extension.FauxExtension) + + def test_driver_property_invoked_on_load(self): + em = driver.DriverManager('stevedore.test.extension', 't1', + invoke_on_load=True) + d = em.driver + self.assertIsInstance(d, test_extension.FauxExtension) + + def test_no_drivers(self): + try: + driver.DriverManager('stevedore.test.extension.none', 't1') + except exception.NoMatches as err: + self.assertIn("No 'stevedore.test.extension.none' driver found", + str(err)) + + def test_bad_driver(self): + try: + driver.DriverManager('stevedore.test.extension', 'e2') + except ImportError: + pass + else: + self.assertEqual(False, "No error raised") + + def test_multiple_drivers(self): + # The idea for this test was contributed by clayg: + # https://gist.github.com/clayg/6311348 + extensions = [ + extension.Extension( + 'backend', + importlib_metadata.EntryPoint( + 'backend', 'pkg1:driver', 'backend'), + 'pkg backend', + None, + ), + extension.Extension( + 'backend', + importlib_metadata.EntryPoint( + 'backend', 'pkg2:driver', 'backend'), + 'pkg backend', + None, + ), + ] + try: + dm = driver.DriverManager.make_test_instance(extensions[0]) + # Call the initialization code that verifies the extension + dm._init_plugins(extensions) + except exception.MultipleMatches as err: + self.assertIn("Multiple", str(err)) + else: + self.fail('Should have had an error') diff --git a/venv/Lib/site-packages/stevedore/tests/test_enabled.py b/venv/Lib/site-packages/stevedore/tests/test_enabled.py new file mode 100644 index 00000000..32cd1992 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_enabled.py @@ -0,0 +1,42 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from stevedore import enabled +from stevedore.tests import utils + + +class TestEnabled(utils.TestCase): + def test_enabled(self): + def check_enabled(ep): + return ep.name == 't2' + em = enabled.EnabledExtensionManager( + 'stevedore.test.extension', + check_enabled, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + self.assertEqual(len(em.extensions), 1) + self.assertEqual(em.names(), ['t2']) + + def test_enabled_after_load(self): + def check_enabled(ext): + return ext.obj and ext.name == 't2' + em = enabled.EnabledExtensionManager( + 'stevedore.test.extension', + check_enabled, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + self.assertEqual(len(em.extensions), 1) + self.assertEqual(em.names(), ['t2']) diff --git a/venv/Lib/site-packages/stevedore/tests/test_example_fields.py b/venv/Lib/site-packages/stevedore/tests/test_example_fields.py new file mode 100644 index 00000000..757917c9 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_example_fields.py @@ -0,0 +1,41 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Tests for stevedore.example2.fields +""" + +from stevedore.example2 import fields +from stevedore.tests import utils + + +class TestExampleFields(utils.TestCase): + def test_simple_items(self): + f = fields.FieldList(100) + text = ''.join(f.format({'a': 'A', 'b': 'B'})) + expected = '\n'.join([ + ': a : A', + ': b : B', + '', + ]) + self.assertEqual(text, expected) + + def test_long_item(self): + f = fields.FieldList(25) + text = ''.join(f.format({'name': + 'a value longer than the allowed width'})) + expected = '\n'.join([ + ': name : a value longer', + ' than the allowed', + ' width', + '', + ]) + self.assertEqual(text, expected) diff --git a/venv/Lib/site-packages/stevedore/tests/test_example_simple.py b/venv/Lib/site-packages/stevedore/tests/test_example_simple.py new file mode 100644 index 00000000..382ed899 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_example_simple.py @@ -0,0 +1,29 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Tests for stevedore.example.simple +""" + +from stevedore.example import simple +from stevedore.tests import utils + + +class TestExampleSimple(utils.TestCase): + def test_simple_items(self): + f = simple.Simple(100) + text = ''.join(f.format({'a': 'A', 'b': 'B'})) + expected = '\n'.join([ + 'a = A', + 'b = B', + '', + ]) + self.assertEqual(text, expected) diff --git a/venv/Lib/site-packages/stevedore/tests/test_extension.py b/venv/Lib/site-packages/stevedore/tests/test_extension.py new file mode 100644 index 00000000..405fb88b --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_extension.py @@ -0,0 +1,289 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Tests for stevedore.extension +""" + +import operator +from unittest import mock + +try: + # For python 3.8 and later + import importlib.metadata as importlib_metadata +except ImportError: + # For everyone else + import importlib_metadata + +from stevedore import exception +from stevedore import extension +from stevedore.tests import utils + + +ALL_NAMES = ['e1', 't1', 't2'] +WORKING_NAMES = ['t1', 't2'] + + +class FauxExtension(object): + def __init__(self, *args, **kwds): + self.args = args + self.kwds = kwds + + def get_args_and_data(self, data): + return self.args, self.kwds, data + + +class BrokenExtension(object): + def __init__(self, *args, **kwds): + raise IOError("Did not create") + + +class TestCallback(utils.TestCase): + def test_detect_plugins(self): + em = extension.ExtensionManager('stevedore.test.extension') + names = sorted(em.names()) + self.assertEqual(names, ALL_NAMES) + + def test_get_by_name(self): + em = extension.ExtensionManager('stevedore.test.extension') + e = em['t1'] + self.assertEqual(e.name, 't1') + + def test_list_entry_points(self): + em = extension.ExtensionManager('stevedore.test.extension') + n = em.list_entry_points() + self.assertEqual(set(['e1', 'e2', 't1', 't2']), + set(map(operator.attrgetter("name"), n))) + self.assertEqual(4, len(n)) + + def test_list_entry_points_names(self): + em = extension.ExtensionManager('stevedore.test.extension') + names = em.entry_points_names() + self.assertEqual(set(['e1', 'e2', 't1', 't2']), set(names)) + self.assertEqual(4, len(names)) + + def test_contains_by_name(self): + em = extension.ExtensionManager('stevedore.test.extension') + self.assertEqual('t1' in em, True) + + def test_get_by_name_missing(self): + em = extension.ExtensionManager('stevedore.test.extension') + try: + em['t3'] + except KeyError: + pass + else: + assert False, 'Failed to raise KeyError' + + def test_load_multiple_times_entry_points(self): + # We expect to get the same EntryPoint object because we save them + # in the cache. + em1 = extension.ExtensionManager('stevedore.test.extension') + eps1 = [ext.entry_point for ext in em1] + em2 = extension.ExtensionManager('stevedore.test.extension') + eps2 = [ext.entry_point for ext in em2] + self.assertIs(eps1[0], eps2[0]) + + def test_load_multiple_times_plugins(self): + # We expect to get the same plugin object (module or class) + # because the underlying import machinery will cache the values. + em1 = extension.ExtensionManager('stevedore.test.extension') + plugins1 = [ext.plugin for ext in em1] + em2 = extension.ExtensionManager('stevedore.test.extension') + plugins2 = [ext.plugin for ext in em2] + self.assertIs(plugins1[0], plugins2[0]) + + def test_use_cache(self): + # If we insert something into the cache of entry points, + # the manager should not have to call into entrypoints + # to find the plugins. + cache = extension.ExtensionManager.ENTRY_POINT_CACHE + cache['stevedore.test.faux'] = [] + with mock.patch('stevedore._cache.get_group_all', + side_effect= + AssertionError('called get_group_all')): + em = extension.ExtensionManager('stevedore.test.faux') + names = em.names() + self.assertEqual(names, []) + + def test_iterable(self): + em = extension.ExtensionManager('stevedore.test.extension') + names = sorted(e.name for e in em) + self.assertEqual(names, ALL_NAMES) + + def test_invoke_on_load(self): + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + self.assertEqual(len(em.extensions), 2) + for e in em.extensions: + self.assertEqual(e.obj.args, ('a',)) + self.assertEqual(e.obj.kwds, {'b': 'B'}) + + def test_map_return_values(self): + def mapped(ext, *args, **kwds): + return ext.name + + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + ) + results = em.map(mapped) + self.assertEqual(sorted(results), WORKING_NAMES) + + def test_map_arguments(self): + objs = [] + + def mapped(ext, *args, **kwds): + objs.append((ext, args, kwds)) + + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + ) + em.map(mapped, 1, 2, a='A', b='B') + self.assertEqual(len(objs), 2) + names = sorted([o[0].name for o in objs]) + self.assertEqual(names, WORKING_NAMES) + for o in objs: + self.assertEqual(o[1], (1, 2)) + self.assertEqual(o[2], {'a': 'A', 'b': 'B'}) + + def test_map_eats_errors(self): + def mapped(ext, *args, **kwds): + raise RuntimeError('hard coded error') + + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + ) + results = em.map(mapped, 1, 2, a='A', b='B') + self.assertEqual(results, []) + + def test_map_propagate_exceptions(self): + def mapped(ext, *args, **kwds): + raise RuntimeError('hard coded error') + + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + propagate_map_exceptions=True + ) + + try: + em.map(mapped, 1, 2, a='A', b='B') + assert False + except RuntimeError: + pass + + def test_map_errors_when_no_plugins(self): + expected_str = 'No stevedore.test.extension.none extensions found' + + def mapped(ext, *args, **kwds): + pass + + em = extension.ExtensionManager('stevedore.test.extension.none', + invoke_on_load=True, + ) + try: + em.map(mapped, 1, 2, a='A', b='B') + except exception.NoMatches as err: + self.assertEqual(expected_str, str(err)) + + def test_map_method(self): + em = extension.ExtensionManager('stevedore.test.extension', + invoke_on_load=True, + ) + + result = em.map_method('get_args_and_data', 42) + self.assertEqual(set(r[2] for r in result), set([42])) + + def test_items(self): + em = extension.ExtensionManager('stevedore.test.extension') + expected_output = set([(name, em[name]) for name in ALL_NAMES]) + self.assertEqual(expected_output, set(em.items())) + + +class TestLoadRequirementsNewSetuptools(utils.TestCase): + # setuptools 11.3 and later + + def setUp(self): + super(TestLoadRequirementsNewSetuptools, self).setUp() + self.mock_ep = mock.Mock(spec=['require', 'resolve', 'load', 'name']) + self.em = extension.ExtensionManager.make_test_instance([]) + + def test_verify_requirements(self): + self.em._load_one_plugin(self.mock_ep, False, (), {}, + verify_requirements=True) + self.mock_ep.require.assert_called_once_with() + self.mock_ep.resolve.assert_called_once_with() + + def test_no_verify_requirements(self): + self.em._load_one_plugin(self.mock_ep, False, (), {}, + verify_requirements=False) + self.assertEqual(0, self.mock_ep.require.call_count) + self.mock_ep.resolve.assert_called_once_with() + + +class TestLoadRequirementsOldSetuptools(utils.TestCase): + # Before setuptools 11.3 + + def setUp(self): + super(TestLoadRequirementsOldSetuptools, self).setUp() + self.mock_ep = mock.Mock(spec=['load', 'name']) + self.em = extension.ExtensionManager.make_test_instance([]) + + def test_verify_requirements(self): + self.em._load_one_plugin(self.mock_ep, False, (), {}, + verify_requirements=True) + self.mock_ep.load.assert_called_once_with() + + def test_no_verify_requirements(self): + self.em._load_one_plugin(self.mock_ep, False, (), {}, + verify_requirements=False) + self.mock_ep.load.assert_called_once_with() + + +class TestExtensionProperties(utils.TestCase): + + def setUp(self): + self.ext1 = extension.Extension( + 'name', + importlib_metadata.EntryPoint( + 'name', 'module.name:attribute.name [extra]', 'group_name', + ), + mock.Mock(), + None, + ) + self.ext2 = extension.Extension( + 'name', + importlib_metadata.EntryPoint( + 'name', 'module:attribute', 'group_name', + ), + mock.Mock(), + None, + ) + + def test_module_name(self): + self.assertEqual('module.name', self.ext1.module_name) + self.assertEqual('module', self.ext2.module_name) + + def test_extras(self): + self.assertEqual(['[extra]'], self.ext1.extras) + self.assertEqual([], self.ext2.extras) + + def test_attr(self): + self.assertEqual('attribute.name', self.ext1.attr) + self.assertEqual('attribute', self.ext2.attr) + + def test_entry_point_target(self): + self.assertEqual('module.name:attribute.name [extra]', + self.ext1.entry_point_target) + self.assertEqual('module:attribute', + self.ext2.entry_point_target) diff --git a/venv/Lib/site-packages/stevedore/tests/test_hook.py b/venv/Lib/site-packages/stevedore/tests/test_hook.py new file mode 100644 index 00000000..5741bb9f --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_hook.py @@ -0,0 +1,55 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from stevedore import hook +from stevedore.tests import utils + + +class TestHook(utils.TestCase): + def test_hook(self): + em = hook.HookManager( + 'stevedore.test.extension', + 't1', + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + self.assertEqual(len(em.extensions), 1) + self.assertEqual(em.names(), ['t1']) + + def test_get_by_name(self): + em = hook.HookManager( + 'stevedore.test.extension', + 't1', + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + e_list = em['t1'] + self.assertEqual(len(e_list), 1) + e = e_list[0] + self.assertEqual(e.name, 't1') + + def test_get_by_name_missing(self): + em = hook.HookManager( + 'stevedore.test.extension', + 't1', + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + try: + em['t2'] + except KeyError: + pass + else: + assert False, 'Failed to raise KeyError' diff --git a/venv/Lib/site-packages/stevedore/tests/test_named.py b/venv/Lib/site-packages/stevedore/tests/test_named.py new file mode 100644 index 00000000..d41dc2e5 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_named.py @@ -0,0 +1,93 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from unittest import mock + +from stevedore import named +from stevedore.tests import utils + + +class TestNamed(utils.TestCase): + def test_named(self): + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['t1'], + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + actual = em.names() + self.assertEqual(actual, ['t1']) + + def test_enabled_before_load(self): + # Set up the constructor for the FauxExtension to cause an + # AssertionError so the test fails if the class is instantiated, + # which should only happen if it is loaded before the name of the + # extension is compared against the names that should be loaded by + # the manager. + init_name = 'stevedore.tests.test_extension.FauxExtension.__init__' + with mock.patch(init_name) as m: + m.side_effect = AssertionError + em = named.NamedExtensionManager( + 'stevedore.test.extension', + # Look for an extension that does not exist so the + # __init__ we mocked should never be invoked. + names=['no-such-extension'], + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + actual = em.names() + self.assertEqual(actual, []) + + def test_extensions_listed_in_name_order(self): + # Since we don't know the "natural" order of the extensions, run + # the test both ways: if the sorting is broken, one of them will + # fail + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['t1', 't2'], + name_order=True + ) + actual = em.names() + self.assertEqual(actual, ['t1', 't2']) + + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['t2', 't1'], + name_order=True + ) + actual = em.names() + self.assertEqual(actual, ['t2', 't1']) + + def test_load_fail_ignored_when_sorted(self): + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['e1', 't2', 'e2', 't1'], + name_order=True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + actual = em.names() + self.assertEqual(['t2', 't1'], actual) + + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['e1', 't1'], + name_order=False, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + actual = em.names() + self.assertEqual(['t1'], actual) diff --git a/venv/Lib/site-packages/stevedore/tests/test_sphinxext.py b/venv/Lib/site-packages/stevedore/tests/test_sphinxext.py new file mode 100644 index 00000000..e90bd679 --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_sphinxext.py @@ -0,0 +1,122 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +"""Tests for the sphinx extension +""" + +try: + # For python 3.8 and later + import importlib.metadata as importlib_metadata +except ImportError: + # For everyone else + import importlib_metadata + +from stevedore import extension +from stevedore import sphinxext +from stevedore.tests import utils + + +def _make_ext(name, docstring): + def inner(): + pass + + inner.__doc__ = docstring + m1 = importlib_metadata.EntryPoint( + name, '{}_module:{}'.format(name, name), 'group', + ) + return extension.Extension(name, m1, inner, None) + + +class TestSphinxExt(utils.TestCase): + + def setUp(self): + super(TestSphinxExt, self).setUp() + self.exts = [ + _make_ext('test1', 'One-line docstring'), + _make_ext('test2', 'Multi-line docstring\n\nAnother para'), + ] + self.em = extension.ExtensionManager.make_test_instance(self.exts) + + def test_simple_list(self): + results = list(sphinxext._simple_list(self.em)) + self.assertEqual( + [ + ('* test1 -- One-line docstring', 'test1_module'), + ('* test2 -- Multi-line docstring', 'test2_module'), + ], + results, + ) + + def test_simple_list_no_docstring(self): + ext = [_make_ext('nodoc', None)] + em = extension.ExtensionManager.make_test_instance(ext) + results = list(sphinxext._simple_list(em)) + self.assertEqual( + [ + ('* nodoc -- ', 'nodoc_module'), + ], + results, + ) + + def test_detailed_list(self): + results = list(sphinxext._detailed_list(self.em)) + self.assertEqual( + [ + ('test1', 'test1_module'), + ('-----', 'test1_module'), + ('\n', 'test1_module'), + ('One-line docstring', 'test1_module'), + ('\n', 'test1_module'), + ('test2', 'test2_module'), + ('-----', 'test2_module'), + ('\n', 'test2_module'), + ('Multi-line docstring\n\nAnother para', 'test2_module'), + ('\n', 'test2_module'), + ], + results, + ) + + def test_detailed_list_format(self): + results = list(sphinxext._detailed_list(self.em, over='+', under='+')) + self.assertEqual( + [ + ('+++++', 'test1_module'), + ('test1', 'test1_module'), + ('+++++', 'test1_module'), + ('\n', 'test1_module'), + ('One-line docstring', 'test1_module'), + ('\n', 'test1_module'), + ('+++++', 'test2_module'), + ('test2', 'test2_module'), + ('+++++', 'test2_module'), + ('\n', 'test2_module'), + ('Multi-line docstring\n\nAnother para', 'test2_module'), + ('\n', 'test2_module'), + ], + results, + ) + + def test_detailed_list_no_docstring(self): + ext = [_make_ext('nodoc', None)] + em = extension.ExtensionManager.make_test_instance(ext) + results = list(sphinxext._detailed_list(em)) + self.assertEqual( + [ + ('nodoc', 'nodoc_module'), + ('-----', 'nodoc_module'), + ('\n', 'nodoc_module'), + (('.. warning:: No documentation found for ' + 'nodoc in nodoc_module:nodoc'), + 'nodoc_module'), + ('\n', 'nodoc_module'), + ], + results, + ) diff --git a/venv/Lib/site-packages/stevedore/tests/test_test_manager.py b/venv/Lib/site-packages/stevedore/tests/test_test_manager.py new file mode 100644 index 00000000..54bb454f --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/test_test_manager.py @@ -0,0 +1,217 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from unittest.mock import Mock, sentinel + +from stevedore import (ExtensionManager, NamedExtensionManager, HookManager, + DriverManager, EnabledExtensionManager) +from stevedore.dispatch import (DispatchExtensionManager, + NameDispatchExtensionManager) +from stevedore.extension import Extension +from stevedore.tests import utils + + +test_extension = Extension('test_extension', None, None, None) +test_extension2 = Extension('another_one', None, None, None) + +mock_entry_point = Mock(module_name='test.extension', attrs=['obj']) +a_driver = Extension('test_driver', mock_entry_point, sentinel.driver_plugin, + sentinel.driver_obj) + + +# base ExtensionManager +class TestTestManager(utils.TestCase): + def test_instance_should_use_supplied_extensions(self): + extensions = [test_extension, test_extension2] + em = ExtensionManager.make_test_instance(extensions) + self.assertEqual(extensions, em.extensions) + + def test_instance_should_have_default_namespace(self): + em = ExtensionManager.make_test_instance([]) + self.assertEqual(em.namespace, 'TESTING') + + def test_instance_should_use_supplied_namespace(self): + namespace = 'testing.1.2.3' + em = ExtensionManager.make_test_instance([], namespace=namespace) + self.assertEqual(namespace, em.namespace) + + def test_extension_name_should_be_listed(self): + em = ExtensionManager.make_test_instance([test_extension]) + self.assertIn(test_extension.name, em.names()) + + def test_iterator_should_yield_extension(self): + em = ExtensionManager.make_test_instance([test_extension]) + self.assertEqual(test_extension, next(iter(em))) + + def test_manager_should_allow_name_access(self): + em = ExtensionManager.make_test_instance([test_extension]) + self.assertEqual(test_extension, em[test_extension.name]) + + def test_manager_should_call(self): + em = ExtensionManager.make_test_instance([test_extension]) + func = Mock() + em.map(func) + func.assert_called_once_with(test_extension) + + def test_manager_should_call_all(self): + em = ExtensionManager.make_test_instance([test_extension2, + test_extension]) + func = Mock() + em.map(func) + func.assert_any_call(test_extension2) + func.assert_any_call(test_extension) + + def test_manager_return_values(self): + def mapped(ext, *args, **kwds): + return ext.name + + em = ExtensionManager.make_test_instance([test_extension2, + test_extension]) + results = em.map(mapped) + self.assertEqual(sorted(results), ['another_one', 'test_extension']) + + def test_manager_should_eat_exceptions(self): + em = ExtensionManager.make_test_instance([test_extension]) + + func = Mock(side_effect=RuntimeError('hard coded error')) + + results = em.map(func, 1, 2, a='A', b='B') + self.assertEqual(results, []) + + def test_manager_should_propagate_exceptions(self): + em = ExtensionManager.make_test_instance([test_extension], + propagate_map_exceptions=True) + self.skipTest('Skipping temporarily') + func = Mock(side_effect=RuntimeError('hard coded error')) + em.map(func, 1, 2, a='A', b='B') + + # NamedExtensionManager + def test_named_manager_should_use_supplied_extensions(self): + extensions = [test_extension, test_extension2] + em = NamedExtensionManager.make_test_instance(extensions) + self.assertEqual(extensions, em.extensions) + + def test_named_manager_should_have_default_namespace(self): + em = NamedExtensionManager.make_test_instance([]) + self.assertEqual(em.namespace, 'TESTING') + + def test_named_manager_should_use_supplied_namespace(self): + namespace = 'testing.1.2.3' + em = NamedExtensionManager.make_test_instance([], namespace=namespace) + self.assertEqual(namespace, em.namespace) + + def test_named_manager_should_populate_names(self): + extensions = [test_extension, test_extension2] + em = NamedExtensionManager.make_test_instance(extensions) + self.assertEqual(em.names(), ['test_extension', 'another_one']) + + # HookManager + def test_hook_manager_should_use_supplied_extensions(self): + extensions = [test_extension, test_extension2] + em = HookManager.make_test_instance(extensions) + self.assertEqual(extensions, em.extensions) + + def test_hook_manager_should_be_first_extension_name(self): + extensions = [test_extension, test_extension2] + em = HookManager.make_test_instance(extensions) + # This will raise KeyError if the names don't match + assert(em[test_extension.name]) + + def test_hook_manager_should_have_default_namespace(self): + em = HookManager.make_test_instance([test_extension]) + self.assertEqual(em.namespace, 'TESTING') + + def test_hook_manager_should_use_supplied_namespace(self): + namespace = 'testing.1.2.3' + em = HookManager.make_test_instance([test_extension], + namespace=namespace) + self.assertEqual(namespace, em.namespace) + + def test_hook_manager_should_return_named_extensions(self): + hook1 = Extension('captain', None, None, None) + hook2 = Extension('captain', None, None, None) + em = HookManager.make_test_instance([hook1, hook2]) + self.assertEqual([hook1, hook2], em['captain']) + + # DriverManager + def test_driver_manager_should_use_supplied_extension(self): + em = DriverManager.make_test_instance(a_driver) + self.assertEqual([a_driver], em.extensions) + + def test_driver_manager_should_have_default_namespace(self): + em = DriverManager.make_test_instance(a_driver) + self.assertEqual(em.namespace, 'TESTING') + + def test_driver_manager_should_use_supplied_namespace(self): + namespace = 'testing.1.2.3' + em = DriverManager.make_test_instance(a_driver, namespace=namespace) + self.assertEqual(namespace, em.namespace) + + def test_instance_should_use_driver_name(self): + em = DriverManager.make_test_instance(a_driver) + self.assertEqual(['test_driver'], em.names()) + + def test_instance_call(self): + def invoke(ext, *args, **kwds): + return ext.name, args, kwds + + em = DriverManager.make_test_instance(a_driver) + result = em(invoke, 'a', b='C') + self.assertEqual(result, ('test_driver', ('a',), {'b': 'C'})) + + def test_instance_driver_property(self): + em = DriverManager.make_test_instance(a_driver) + self.assertEqual(sentinel.driver_obj, em.driver) + + # EnabledExtensionManager + def test_enabled_instance_should_use_supplied_extensions(self): + extensions = [test_extension, test_extension2] + em = EnabledExtensionManager.make_test_instance(extensions) + self.assertEqual(extensions, em.extensions) + + # DispatchExtensionManager + def test_dispatch_instance_should_use_supplied_extensions(self): + extensions = [test_extension, test_extension2] + em = DispatchExtensionManager.make_test_instance(extensions) + self.assertEqual(extensions, em.extensions) + + def test_dispatch_map_should_invoke_filter_for_extensions(self): + em = DispatchExtensionManager.make_test_instance([test_extension, + test_extension2]) + filter_func = Mock(return_value=False) + args = ('A',) + kw = {'big': 'Cheese'} + em.map(filter_func, None, *args, **kw) + filter_func.assert_any_call(test_extension, *args, **kw) + filter_func.assert_any_call(test_extension2, *args, **kw) + + # NameDispatchExtensionManager + def test_name_dispatch_instance_should_use_supplied_extensions(self): + extensions = [test_extension, test_extension2] + em = NameDispatchExtensionManager.make_test_instance(extensions) + + self.assertEqual(extensions, em.extensions) + + def test_name_dispatch_instance_should_build_extension_name_map(self): + extensions = [test_extension, test_extension2] + em = NameDispatchExtensionManager.make_test_instance(extensions) + self.assertEqual(test_extension, em.by_name[test_extension.name]) + self.assertEqual(test_extension2, em.by_name[test_extension2.name]) + + def test_named_dispatch_map_should_invoke_filter_for_extensions(self): + em = NameDispatchExtensionManager.make_test_instance([test_extension, + test_extension2]) + func = Mock() + args = ('A',) + kw = {'BIGGER': 'Cheese'} + em.map(['test_extension'], func, *args, **kw) + func.assert_called_once_with(test_extension, *args, **kw) diff --git a/venv/Lib/site-packages/stevedore/tests/utils.py b/venv/Lib/site-packages/stevedore/tests/utils.py new file mode 100644 index 00000000..f452959c --- /dev/null +++ b/venv/Lib/site-packages/stevedore/tests/utils.py @@ -0,0 +1,17 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import unittest + + +class TestCase(unittest.TestCase): + pass diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/INSTALLER b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/LICENSE b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/LICENSE new file mode 100644 index 00000000..be9700d6 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2020-202x The virtualenv developers + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/METADATA b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/METADATA new file mode 100644 index 00000000..e905abe5 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/METADATA @@ -0,0 +1,93 @@ +Metadata-Version: 2.1 +Name: virtualenv +Version: 20.0.27 +Summary: Virtual Python Environment builder +Home-page: https://virtualenv.pypa.io/ +Author: Bernat Gabor +Author-email: gaborjbernat@gmail.com +Maintainer: Bernat Gabor +Maintainer-email: gaborjbernat@gmail.com +License: MIT +Project-URL: Source, https://github.com/pypa/virtualenv +Project-URL: Tracker, https://github.com/pypa/virtualenv/issues +Keywords: virtual,environments,isolated +Platform: any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Software Development :: Testing +Classifier: Topic :: Utilities +Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7 +Description-Content-Type: text/markdown +Requires-Dist: appdirs (<2,>=1.4.3) +Requires-Dist: distlib (<1,>=0.3.1) +Requires-Dist: filelock (<4,>=3.0.0) +Requires-Dist: six (<2,>=1.9.0) +Requires-Dist: pathlib2 (<3,>=2.3.3) ; python_version < "3.4" and sys_platform != "win32" +Requires-Dist: importlib-resources (>=1.0) ; python_version < "3.7" +Requires-Dist: importlib-metadata (<2,>=0.12) ; python_version < "3.8" +Provides-Extra: docs +Requires-Dist: sphinx (>=3) ; extra == 'docs' +Requires-Dist: sphinx-argparse (>=0.2.5) ; extra == 'docs' +Requires-Dist: sphinx-rtd-theme (>=0.4.3) ; extra == 'docs' +Requires-Dist: towncrier (>=19.9.0rc1) ; extra == 'docs' +Requires-Dist: proselint (>=0.10.2) ; extra == 'docs' +Provides-Extra: testing +Requires-Dist: pytest (>=4) ; extra == 'testing' +Requires-Dist: coverage (>=5) ; extra == 'testing' +Requires-Dist: coverage-enable-subprocess (>=1) ; extra == 'testing' +Requires-Dist: pytest-xdist (>=1.31.0) ; extra == 'testing' +Requires-Dist: pytest-mock (>=2) ; extra == 'testing' +Requires-Dist: pytest-env (>=0.6.2) ; extra == 'testing' +Requires-Dist: pytest-randomly (>=1) ; extra == 'testing' +Requires-Dist: pytest-timeout (>=1) ; extra == 'testing' +Requires-Dist: pytest-freezegun (>=0.4.1) ; extra == 'testing' +Requires-Dist: flaky (>=3) ; extra == 'testing' +Requires-Dist: packaging (>=20.0) ; (python_version > "3.4") and extra == 'testing' +Requires-Dist: xonsh (>=0.9.16) ; (python_version > "3.4" and python_version != "3.9") and extra == 'testing' + +[![PyPI](https://img.shields.io/pypi/v/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv) +[![PyPI - Implementation](https://img.shields.io/pypi/implementation/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv) +[![Documentation](https://readthedocs.org/projects/virtualenv/badge/?version=latest&style=flat-square)](http://virtualenv.pypa.io) +[![Gitter Chat](https://img.shields.io/gitter/room/pypa/virtualenv?color=FF004F&style=flat-square)](https://gitter.im/pypa/virtualenv) +[![PyPI - Downloads](https://img.shields.io/pypi/dm/virtualenv?style=flat-square)](https://pypistats.org/packages/virtualenv) +[![PyPI - License](https://img.shields.io/pypi/l/virtualenv?style=flat-square)](https://opensource.org/licenses/MIT) +[![Build Status](https://github.com/pypa/virtualenv/workflows/check/badge.svg?branch=master&event=push)](https://github.com/pypa/virtualenv/actions?query=workflow%3Acheck) +[![codecov](https://codecov.io/gh/pypa/virtualenv/branch/master/graph/badge.svg)](https://codecov.io/gh/pypa/virtualenv) +[![Code style: +black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black) + +virtualenv +========== + +A tool for creating isolated ``virtual`` python environments. + +- [Installation](https://virtualenv.pypa.io/en/latest/installation.html) +- [Documentation](https://virtualenv.pypa.io) +- [Changelog](https://virtualenv.pypa.io/en/latest/changelog.html) +- [Issues](https://github.com/pypa/virtualenv/issues) +- [PyPI](https://pypi.org/project/virtualenv) +- [Github](https://github.com/pypa/virtualenv) + +Code of Conduct +--------------- + +Everyone interacting in the virtualenv project's codebases, issue trackers, chat rooms, and mailing lists is expected to +follow the [PyPA Code of Conduct](https://www.pypa.io/en/latest/code-of-conduct/). + + diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/RECORD b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/RECORD new file mode 100644 index 00000000..754c9245 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/RECORD @@ -0,0 +1,220 @@ +../../Scripts/virtualenv.exe,sha256=8bnYO4T19B3k1N3TzuNMD1pL8WSRgTlJpVNAmLd03X0,106390 +virtualenv-20.0.27.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +virtualenv-20.0.27.dist-info/LICENSE,sha256=XBWRk3jFsqqrexnOpw2M3HX3aHnjJFTkwDmfi3HRcek,1074 +virtualenv-20.0.27.dist-info/METADATA,sha256=M6Rv0LYZTpGOxxva7RcnHBQpjA8r7_zS958jR0dstP8,4934 +virtualenv-20.0.27.dist-info/RECORD,, +virtualenv-20.0.27.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +virtualenv-20.0.27.dist-info/entry_points.txt,sha256=1DALKzYOcffJa7Q15TQlMQu0yeFXEy5W124y0aJEfYU,1615 +virtualenv-20.0.27.dist-info/top_level.txt,sha256=JV-LVlC8YeIw1DgiYI0hEot7tgFy5IWdKVcSG7NyzaI,11 +virtualenv-20.0.27.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +virtualenv/__init__.py,sha256=aDrew9O-Yz0e738UwR7mYseLSNmBk3DIJociruvGkdU,165 +virtualenv/__main__.py,sha256=UGHwCkjrcPq0dBpJpZN4x4hB6fhv7s-GFb7QWhMcK7E,2786 +virtualenv/__pycache__/__init__.cpython-36.pyc,, +virtualenv/__pycache__/__main__.cpython-36.pyc,, +virtualenv/__pycache__/info.cpython-36.pyc,, +virtualenv/__pycache__/report.cpython-36.pyc,, +virtualenv/__pycache__/version.cpython-36.pyc,, +virtualenv/activation/__init__.py,sha256=jLIERxJXMnHq2fH49RdWqBoaiASres4CTKMdUJOeos0,480 +virtualenv/activation/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/__pycache__/activator.cpython-36.pyc,, +virtualenv/activation/__pycache__/via_template.cpython-36.pyc,, +virtualenv/activation/activator.py,sha256=CXomkRvhzcAeygYlDwQdDjfPyZQG85aBab5GIVQPv2M,1341 +virtualenv/activation/bash/__init__.py,sha256=7aC1WfvyzgFrIQs13jOuESuAbuiAnTsKkOe0iReRoaE,312 +virtualenv/activation/bash/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/bash/activate.sh,sha256=xkIDykLyI5CO3K7eeAujgPiBP2eleYDTFsqhaXsOUG4,2249 +virtualenv/activation/batch/__init__.py,sha256=K0gVfwuXV7uoaMDL7moWGCq7uTDzI64giZzQQ8s2qnU,733 +virtualenv/activation/batch/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/batch/activate.bat,sha256=PeQnWWsjvHT-jIWhYI7hbdzkDBZx5UOstnsCmq5PYtw,1031 +virtualenv/activation/batch/deactivate.bat,sha256=6OznnO-HC2wnWUN7YAT-bj815zeKMXEPC0keyBYwKUU,510 +virtualenv/activation/batch/pydoc.bat,sha256=pVuxn8mn9P_Rd0349fiBEiwIuMvfJQSfgJ2dljUT2fA,24 +virtualenv/activation/cshell/__init__.py,sha256=pw4s5idqQhaEccPxadETEvilBcoxW-UkVQ-RNqPyVCQ,344 +virtualenv/activation/cshell/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/cshell/activate.csh,sha256=jYwms8OTiVu9MJwXltuEm43HU09BJUqkrVqyj4sjpDA,1468 +virtualenv/activation/fish/__init__.py,sha256=hDkJq1P1wK2qm6BXydXWA9GMkBpj-TaejbKSceFnGZU,251 +virtualenv/activation/fish/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/fish/activate.fish,sha256=V7nVwSI_nsFEMlJjSQxCayNWkjubXi1KSgSw1bEakh8,3099 +virtualenv/activation/powershell/__init__.py,sha256=EA-73s5TUMkgxAhLwucFg3gsBwW5huNh7qB4I7uEU-U,256 +virtualenv/activation/powershell/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/powershell/activate.ps1,sha256=qXTD2IZIPXIr3HZbNahnym8l3FFwa1o_pyB8cSmxeg0,1867 +virtualenv/activation/python/__init__.py,sha256=Uv53LqOrIT_2dO1FXcUYAnwH1eypG8CJ2InhSx1GRI4,1323 +virtualenv/activation/python/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/python/__pycache__/activate_this.cpython-36.pyc,, +virtualenv/activation/python/activate_this.py,sha256=Xpz7exdGSjmWk0KfwHLofIpDPUtazNSNGrxT0-5ZG_s,1208 +virtualenv/activation/via_template.py,sha256=B88RGc0qoGc46DmKJmLJuzcCJU_iXWhdD93r6KLuYHQ,2204 +virtualenv/activation/xonsh/__init__.py,sha256=7NUevd5EpHRMZdSyR1KgFTe9QQBO94zZOwFH6MR6zjo,355 +virtualenv/activation/xonsh/__pycache__/__init__.cpython-36.pyc,, +virtualenv/activation/xonsh/activate.xsh,sha256=qkKgWfrUjYKrgrmhf45VuBz99EMadtiNU8GMfHZZ7AU,1172 +virtualenv/app_data/__init__.py,sha256=mOgHrNxZ320NcDvl2EU9Uhaq9XSwnJwkldKAWtrMCKo,1882 +virtualenv/app_data/__pycache__/__init__.cpython-36.pyc,, +virtualenv/app_data/__pycache__/base.cpython-36.pyc,, +virtualenv/app_data/__pycache__/na.cpython-36.pyc,, +virtualenv/app_data/__pycache__/via_disk_folder.cpython-36.pyc,, +virtualenv/app_data/__pycache__/via_tempdir.cpython-36.pyc,, +virtualenv/app_data/base.py,sha256=wtoduyV2lc020XNdOwt5gu1lkUJd0n_LMrgT8nifAwo,2054 +virtualenv/app_data/na.py,sha256=fCISMfJt3opkAqCmJBZTW9tody6ECfVPXtSrY5ZJueY,1321 +virtualenv/app_data/via_disk_folder.py,sha256=bJxZIXTAqQekwRZuoYgAE1fvwQ6w1dBR2IJFe09OIjE,5404 +virtualenv/app_data/via_tempdir.py,sha256=vt4I1wAaNouOeFSTFX5DPbA3zPZ1ikVGzXBDsNLNHRM,771 +virtualenv/config/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 +virtualenv/config/__pycache__/__init__.cpython-36.pyc,, +virtualenv/config/__pycache__/convert.cpython-36.pyc,, +virtualenv/config/__pycache__/env_var.cpython-36.pyc,, +virtualenv/config/__pycache__/ini.cpython-36.pyc,, +virtualenv/config/cli/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 +virtualenv/config/cli/__pycache__/__init__.cpython-36.pyc,, +virtualenv/config/cli/__pycache__/parser.cpython-36.pyc,, +virtualenv/config/cli/parser.py,sha256=y5IqHccLBqFpocpE75X611nVrP8v394VW94a9GAojvE,4524 +virtualenv/config/convert.py,sha256=msrkiG2Vq9gYQXf1C5W4n3b0ZTv6weFANV-mLUq6uMo,2091 +virtualenv/config/env_var.py,sha256=48XpOurSLLjMX-kXjvOpZuAoOUP-LvnbotTlmebhhFk,844 +virtualenv/config/ini.py,sha256=xA4a9OAgTPNMlTYcWTtw2C97FONoamukIJeCCczI7Do,2789 +virtualenv/create/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 +virtualenv/create/__pycache__/__init__.cpython-36.pyc,, +virtualenv/create/__pycache__/creator.cpython-36.pyc,, +virtualenv/create/__pycache__/debug.cpython-36.pyc,, +virtualenv/create/__pycache__/describe.cpython-36.pyc,, +virtualenv/create/__pycache__/pyenv_cfg.cpython-36.pyc,, +virtualenv/create/creator.py,sha256=D2YsK817anGhHxjh_ew7MlRCGjPPzW95lroRPlzblGk,8437 +virtualenv/create/debug.py,sha256=ETOke8w4Ib8fiufAHVeOkH3v0zrztljw3WjGvZyE0Mk,3342 +virtualenv/create/describe.py,sha256=bm0V2wpFOjdN_MkzZuJAEBSttmi5YGPVwxtwGYU5zQU,3561 +virtualenv/create/pyenv_cfg.py,sha256=VsOGfzUpaVCO3J29zrhIeip4jZ4b7llbe45iOQAIRGg,1717 +virtualenv/create/via_global_ref/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/create/via_global_ref/__pycache__/__init__.cpython-36.pyc,, +virtualenv/create/via_global_ref/__pycache__/_virtualenv.cpython-36.pyc,, +virtualenv/create/via_global_ref/__pycache__/api.cpython-36.pyc,, +virtualenv/create/via_global_ref/__pycache__/store.cpython-36.pyc,, +virtualenv/create/via_global_ref/__pycache__/venv.cpython-36.pyc,, +virtualenv/create/via_global_ref/_virtualenv.py,sha256=vZYz3j2BIkiNZvz6DH8MnNC1jpFHk43fH4-nbKEratU,5662 +virtualenv/create/via_global_ref/api.py,sha256=uAQjwBRJ-u4d6A24QuxeB-khIrSGiP7-W_SQxNdE-Sk,4277 +virtualenv/create/via_global_ref/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/create/via_global_ref/builtin/__pycache__/__init__.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/__pycache__/builtin_way.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/__pycache__/ref.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/__pycache__/via_global_self_do.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/builtin_way.py,sha256=hO22nT-itVoYiy8wXrXXYzHw86toCp_Uq-cURR7w6ck,546 +virtualenv/create/via_global_ref/builtin/cpython/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 +virtualenv/create/via_global_ref/builtin/cpython/__pycache__/__init__.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/cpython/__pycache__/common.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/cpython/__pycache__/cpython2.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/cpython/__pycache__/cpython3.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/cpython/__pycache__/mac_os.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/cpython/common.py,sha256=_ycHGl1I4Pr7RfsXlUP0otJw9VQ0L744lTpPTTxPo6w,1909 +virtualenv/create/via_global_ref/builtin/cpython/cpython2.py,sha256=p41H2g6wAqhJzeUU48nH3u05-yWEbwCzhyj4pn8rnm4,3757 +virtualenv/create/via_global_ref/builtin/cpython/cpython3.py,sha256=9sY098at5Wp1Fhu1Aux1y06wH2ecbGj3bRucl4CGSQY,2473 +virtualenv/create/via_global_ref/builtin/cpython/mac_os.py,sha256=Hc9FVoQPuf8IV5j17LVj49lH7nyCep2nh_lWlZm49YI,12318 +virtualenv/create/via_global_ref/builtin/pypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/create/via_global_ref/builtin/pypy/__pycache__/__init__.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/pypy/__pycache__/common.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/pypy/__pycache__/pypy2.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/pypy/__pycache__/pypy3.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/pypy/common.py,sha256=KagqBNEuysqqO-n-VCCpuMvBK8MiZFMJQRWbWW12c6g,1696 +virtualenv/create/via_global_ref/builtin/pypy/pypy2.py,sha256=bmMY_KJZ1iD_ifq-X9ZBOlOpJ1aN7839qigBgnWRIdA,3535 +virtualenv/create/via_global_ref/builtin/pypy/pypy3.py,sha256=ti6hmOIC4HiTBnEYKytO-d9wH-eLeMoQxQ0kZRhnNrw,1751 +virtualenv/create/via_global_ref/builtin/python2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/create/via_global_ref/builtin/python2/__pycache__/__init__.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/python2/__pycache__/python2.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/python2/__pycache__/site.cpython-36.pyc,, +virtualenv/create/via_global_ref/builtin/python2/python2.py,sha256=jkJwmkeJVTzwzo95eMIptTfdBA-qmyIqZcpt48iOitU,4276 +virtualenv/create/via_global_ref/builtin/python2/site.py,sha256=mp-Y1VLSXqhIeOojQefy8ffIylWqfq20jEfc2UwMTYU,6120 +virtualenv/create/via_global_ref/builtin/ref.py,sha256=-r9sJSW9X9rHxThk2yyJJRA5KkmJPW_axuffYBsFDIU,5501 +virtualenv/create/via_global_ref/builtin/via_global_self_do.py,sha256=9aH07lmA6SMvtynv7ZTO6Gh2aDDFdUiDQrlbtT9xze4,4057 +virtualenv/create/via_global_ref/store.py,sha256=cqLBEhQ979xHnlidqmxlDjsvj2Wr-mBo7shvGQSEBxU,685 +virtualenv/create/via_global_ref/venv.py,sha256=A6XrGu3oco_ZIHv0s-TybW7lErAomgLOYDMtgpdACc0,2919 +virtualenv/discovery/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 +virtualenv/discovery/__pycache__/__init__.cpython-36.pyc,, +virtualenv/discovery/__pycache__/builtin.cpython-36.pyc,, +virtualenv/discovery/__pycache__/cached_py_info.cpython-36.pyc,, +virtualenv/discovery/__pycache__/discover.cpython-36.pyc,, +virtualenv/discovery/__pycache__/py_info.cpython-36.pyc,, +virtualenv/discovery/__pycache__/py_spec.cpython-36.pyc,, +virtualenv/discovery/builtin.py,sha256=1c4Py9DnkiCLrbHp7bffvQtJI9HkxfVyFedt6IFMKEs,5079 +virtualenv/discovery/cached_py_info.py,sha256=vQiAFDoBjR13zrdmc5q97z4upBxWzUG6H6IHJZjqjeU,5007 +virtualenv/discovery/discover.py,sha256=evJYn4APkwjNmdolNeIBSHiOudkvN59c5oVYI2Zsjlg,1209 +virtualenv/discovery/py_info.py,sha256=PMbQIitL6ELOJpAZF3rrMxPxM8oOmTK9aDvb4YHTDEw,21783 +virtualenv/discovery/py_spec.py,sha256=wQhLzCfXoSPsAAO9nm5-I2lNolVDux4W2vPSUfJGjlc,4790 +virtualenv/discovery/windows/__init__.py,sha256=TPbnzCtRyw47pRVHTO8ikwljNcczxmSLDdWtwasxvQU,1036 +virtualenv/discovery/windows/__pycache__/__init__.cpython-36.pyc,, +virtualenv/discovery/windows/__pycache__/pep514.cpython-36.pyc,, +virtualenv/discovery/windows/pep514.py,sha256=YYiaJzo-XuMtO78BMFMAudqkeJiLQkFnUTOuQZ5lJz8,5451 +virtualenv/info.py,sha256=-2pI_kyC9fNj5OR8AQWkKjlpOk4_96Lmbco3atYYBdY,1921 +virtualenv/report.py,sha256=M2OHHCWdOHZsn74tj1MYYKmaI3QRJF8VA1FZIdkQTMQ,1594 +virtualenv/run/__init__.py,sha256=K-F_1t-y_I2GsmFZgrB6Ee1rNO-jS_7CDPu_DMB4iGQ,4908 +virtualenv/run/__pycache__/__init__.cpython-36.pyc,, +virtualenv/run/__pycache__/session.cpython-36.pyc,, +virtualenv/run/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/run/plugin/__pycache__/__init__.cpython-36.pyc,, +virtualenv/run/plugin/__pycache__/activators.cpython-36.pyc,, +virtualenv/run/plugin/__pycache__/base.cpython-36.pyc,, +virtualenv/run/plugin/__pycache__/creators.cpython-36.pyc,, +virtualenv/run/plugin/__pycache__/discovery.cpython-36.pyc,, +virtualenv/run/plugin/__pycache__/seeders.cpython-36.pyc,, +virtualenv/run/plugin/activators.py,sha256=kmHShj36eHfbnsiAJzX0U5LYvGhe0WkRYjbuKDz6gVM,2117 +virtualenv/run/plugin/base.py,sha256=-2185C01PaxOG7gnMbWWyZlo24n_FYo5J5_naeNZw8s,1934 +virtualenv/run/plugin/creators.py,sha256=5L7G5mk2GIOIaZVvDZszd2VVBSUM3jkAR4aBO0OkOXY,3517 +virtualenv/run/plugin/discovery.py,sha256=ba9szD21er0-AkuMXrdFOjFEDsIekRWljXdXkj_-8EM,994 +virtualenv/run/plugin/seeders.py,sha256=XVKaikuOC4JUO4lirHzowEJ6d0pI1pFfywCx3heE70g,1026 +virtualenv/run/session.py,sha256=mzXJyVQlXXgj_kO9IJDor44Co7WKiyFGnZ0mCTIy5x0,2547 +virtualenv/seed/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 +virtualenv/seed/__pycache__/__init__.cpython-36.pyc,, +virtualenv/seed/__pycache__/seeder.cpython-36.pyc,, +virtualenv/seed/embed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/seed/embed/__pycache__/__init__.cpython-36.pyc,, +virtualenv/seed/embed/__pycache__/base_embed.cpython-36.pyc,, +virtualenv/seed/embed/__pycache__/pip_invoke.cpython-36.pyc,, +virtualenv/seed/embed/base_embed.py,sha256=j4qcALcc-ylU0bKjVxiELPqk4MJ8f0pmbe_lVYVH_5Q,4166 +virtualenv/seed/embed/pip_invoke.py,sha256=EMVwIeoW15SuorJ8z_-vBxPXwQJLS0ILA0Va9zNoOLI,2127 +virtualenv/seed/embed/via_app_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/seed/embed/via_app_data/__pycache__/__init__.cpython-36.pyc,, +virtualenv/seed/embed/via_app_data/__pycache__/via_app_data.cpython-36.pyc,, +virtualenv/seed/embed/via_app_data/pip_install/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +virtualenv/seed/embed/via_app_data/pip_install/__pycache__/__init__.cpython-36.pyc,, +virtualenv/seed/embed/via_app_data/pip_install/__pycache__/base.cpython-36.pyc,, +virtualenv/seed/embed/via_app_data/pip_install/__pycache__/copy.cpython-36.pyc,, +virtualenv/seed/embed/via_app_data/pip_install/__pycache__/symlink.cpython-36.pyc,, +virtualenv/seed/embed/via_app_data/pip_install/base.py,sha256=rnR60JzM7G04cPDo2eH-aR8-iQuFXBgHJ2lQnSf0Gfs,6355 +virtualenv/seed/embed/via_app_data/pip_install/copy.py,sha256=gG2NePFHOYh-bsCf6TpsaQ_qrYhdBy67k0RWuwHSAwo,1307 +virtualenv/seed/embed/via_app_data/pip_install/symlink.py,sha256=wHCpfKobvjjaZLUSwM3FSCblZfiBFw4IQYsxwlfEEu0,2362 +virtualenv/seed/embed/via_app_data/via_app_data.py,sha256=quofMFCWc-OxvxdAJwZTWS5mOugnYB7wRqSJZxmkl-E,6053 +virtualenv/seed/seeder.py,sha256=DSGE_8Ycj01vj8mkppUBA9h7JG76XsVBMt-5MWlMF6k,1178 +virtualenv/seed/wheels/__init__.py,sha256=1J7el7lNjAwGxM4dmricrbVhSbYxs5sPzv9PTx2A6qA,226 +virtualenv/seed/wheels/__pycache__/__init__.cpython-36.pyc,, +virtualenv/seed/wheels/__pycache__/acquire.cpython-36.pyc,, +virtualenv/seed/wheels/__pycache__/bundle.cpython-36.pyc,, +virtualenv/seed/wheels/__pycache__/periodic_update.cpython-36.pyc,, +virtualenv/seed/wheels/__pycache__/util.cpython-36.pyc,, +virtualenv/seed/wheels/acquire.py,sha256=Iq_QPJgUPCyHfrS3t2EUUj8fieymfcKNve1JbJQ5Uyc,4420 +virtualenv/seed/wheels/bundle.py,sha256=xYbhh5nQEwec2vnqNJWNVtDL3VyjGkgDWVXSuXzXB-Y,1961 +virtualenv/seed/wheels/embed/__init__.py,sha256=UM6Z3KuzhGT8fILSfuHT4LN_W_rBMvc4NrGEfImSrXg,1995 +virtualenv/seed/wheels/embed/__pycache__/__init__.cpython-36.pyc,, +virtualenv/seed/wheels/embed/pip-19.1.1-py2.py3-none-any.whl,sha256=mTE08EdUcbkUUsoCnUOQ3I8pisY6cSgU8QHNG220ZnY,1360957 +virtualenv/seed/wheels/embed/pip-20.1.1-py2.py3-none-any.whl,sha256=snxN7a6MQapZEI8vo4v3jgiQ5ZBUW8js583OtLpg9uQ,1490666 +virtualenv/seed/wheels/embed/setuptools-43.0.0-py2.py3-none-any.whl,sha256=pn-qUVGe8ozYJhr_DiIbbkw3D4-4utqKo-etiUUZmWM,583228 +virtualenv/seed/wheels/embed/setuptools-44.1.1-py2.py3-none-any.whl,sha256=J6cUwJJTE05gpvpoEw94xwN-VWLE8h-PMY8q6QDRUtU,583493 +virtualenv/seed/wheels/embed/setuptools-49.2.0-py3-none-any.whl,sha256=Jyx_SPXN3Fr1kB9CZSdMQhx-7eXIvEVKwpA9P4_DZek,789833 +virtualenv/seed/wheels/embed/wheel-0.33.6-py2.py3-none-any.whl,sha256=9NoXY9O-zy4s2SoUp8kg8PAOyjD93p6pksg2aFufryg,21556 +virtualenv/seed/wheels/embed/wheel-0.34.2-py2.py3-none-any.whl,sha256=3yd8tR5hNZq6UCII1oD5DASTrexvDoSK-UlId4rtOG4,26502 +virtualenv/seed/wheels/periodic_update.py,sha256=A9l7ZpjtWzGrq2nh39y8g5OppUryHb7_W3bCR7TAnPc,12756 +virtualenv/seed/wheels/util.py,sha256=Zdo76KEDqbNmM5u9JTuyu5uzEN_fQ4oj6qHOt0h0o1M,3960 +virtualenv/util/__init__.py,sha256=om6Hs2lH5igf5lkcSmQFiU7iMZ0Wx4dmSlMc6XW_Llg,199 +virtualenv/util/__pycache__/__init__.cpython-36.pyc,, +virtualenv/util/__pycache__/error.cpython-36.pyc,, +virtualenv/util/__pycache__/lock.cpython-36.pyc,, +virtualenv/util/__pycache__/six.cpython-36.pyc,, +virtualenv/util/__pycache__/zipapp.cpython-36.pyc,, +virtualenv/util/error.py,sha256=SRSZlXvMYQuJwxoUfNhlAyo3VwrAnIsZemSwPOxpjns,352 +virtualenv/util/lock.py,sha256=AyYqRMsz5YnLNDLNTrutjLqS8m0lkLqNNDpxW565b44,3550 +virtualenv/util/path/__init__.py,sha256=YaBAxtzGBdMu0uUtppe0ZeCHw5HhO-5zjeb3-fzyMoI,336 +virtualenv/util/path/__pycache__/__init__.cpython-36.pyc,, +virtualenv/util/path/__pycache__/_permission.cpython-36.pyc,, +virtualenv/util/path/__pycache__/_sync.cpython-36.pyc,, +virtualenv/util/path/_pathlib/__init__.py,sha256=evaey395zOuDc3FlukUeJ8SzRqLx1xWOKmg-TEPsRd4,1446 +virtualenv/util/path/_pathlib/__pycache__/__init__.cpython-36.pyc,, +virtualenv/util/path/_pathlib/__pycache__/via_os_path.cpython-36.pyc,, +virtualenv/util/path/_pathlib/via_os_path.py,sha256=wlnf0MIktEP01kG9z8iKOI86levXmkX7UX1LMLK7A-E,3701 +virtualenv/util/path/_permission.py,sha256=XpO2vGAk_92_biD4MEQcAQq2Zc8_rpm3M3n_hMUA1rw,745 +virtualenv/util/path/_sync.py,sha256=7oEmxJB5fc7NIsVgPJTJ4mpVPjNaNHAdhqlgIFSDfm0,2370 +virtualenv/util/six.py,sha256=_8KWXUWi3-AaFmz4LkdyNra-uNuf70vlxwjN7oeRo8g,1463 +virtualenv/util/subprocess/__init__.py,sha256=2H-ZQ74OKq60eSpxfRWD-8gVUydczkrKSexl18DzOXI,753 +virtualenv/util/subprocess/__pycache__/__init__.cpython-36.pyc,, +virtualenv/util/subprocess/__pycache__/_win_subprocess.cpython-36.pyc,, +virtualenv/util/subprocess/_win_subprocess.py,sha256=0-eJVcxBs1Fe76OVTQnUVLaLzB4tlJxEZ-vZECQ4xL4,5576 +virtualenv/util/zipapp.py,sha256=jtf4Vn7XBnjPs_B_ObIQv_x4pFlIlPKAWHYLFV59h6U,1054 +virtualenv/version.py,sha256=I6DdBe5W48XpWVyauQA1RLTrczVHXqmm5ykMSnETFE8,66 diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/WHEEL b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/WHEEL new file mode 100644 index 00000000..ef99c6cf --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/entry_points.txt b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/entry_points.txt new file mode 100644 index 00000000..3effb4ba --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/entry_points.txt @@ -0,0 +1,32 @@ +[console_scripts] +virtualenv = virtualenv.__main__:run_with_catch + +[virtualenv.activate] +bash = virtualenv.activation.bash:BashActivator +batch = virtualenv.activation.batch:BatchActivator +cshell = virtualenv.activation.cshell:CShellActivator +fish = virtualenv.activation.fish:FishActivator +powershell = virtualenv.activation.powershell:PowerShellActivator +python = virtualenv.activation.python:PythonActivator +xonsh = virtualenv.activation.xonsh:XonshActivator + +[virtualenv.create] +cpython2-mac-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython2macOsFramework +cpython2-posix = virtualenv.create.via_global_ref.builtin.cpython.cpython2:CPython2Posix +cpython2-win = virtualenv.create.via_global_ref.builtin.cpython.cpython2:CPython2Windows +cpython3-mac-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython3macOsFramework +cpython3-posix = virtualenv.create.via_global_ref.builtin.cpython.cpython3:CPython3Posix +cpython3-win = virtualenv.create.via_global_ref.builtin.cpython.cpython3:CPython3Windows +pypy2-posix = virtualenv.create.via_global_ref.builtin.pypy.pypy2:PyPy2Posix +pypy2-win = virtualenv.create.via_global_ref.builtin.pypy.pypy2:Pypy2Windows +pypy3-posix = virtualenv.create.via_global_ref.builtin.pypy.pypy3:PyPy3Posix +pypy3-win = virtualenv.create.via_global_ref.builtin.pypy.pypy3:Pypy3Windows +venv = virtualenv.create.via_global_ref.venv:Venv + +[virtualenv.discovery] +builtin = virtualenv.discovery.builtin:Builtin + +[virtualenv.seed] +app-data = virtualenv.seed.embed.via_app_data.via_app_data:FromAppData +pip = virtualenv.seed.embed.pip_invoke:PipInvoke + diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/top_level.txt b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/top_level.txt new file mode 100644 index 00000000..66072c76 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/top_level.txt @@ -0,0 +1 @@ +virtualenv diff --git a/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/zip-safe b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv-20.0.27.dist-info/zip-safe @@ -0,0 +1 @@ + diff --git a/venv/Lib/site-packages/virtualenv/__init__.py b/venv/Lib/site-packages/virtualenv/__init__.py new file mode 100644 index 00000000..c72643f0 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/__init__.py @@ -0,0 +1,9 @@ +from __future__ import absolute_import, unicode_literals + +from .run import cli_run +from .version import __version__ + +__all__ = ( + "__version__", + "cli_run", +) diff --git a/venv/Lib/site-packages/virtualenv/__main__.py b/venv/Lib/site-packages/virtualenv/__main__.py new file mode 100644 index 00000000..16f12bff --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/__main__.py @@ -0,0 +1,78 @@ +from __future__ import absolute_import, print_function, unicode_literals + +import logging +import os +import sys +from datetime import datetime + + +def run(args=None, options=None): + start = datetime.now() + from virtualenv.util.error import ProcessCallFailed + from virtualenv.run import cli_run + + if args is None: + args = sys.argv[1:] + try: + session = cli_run(args, options) + logging.warning(LogSession(session, start)) + except ProcessCallFailed as exception: + print("subprocess call failed for {} with code {}".format(exception.cmd, exception.code)) + print(exception.out, file=sys.stdout, end="") + print(exception.err, file=sys.stderr, end="") + raise SystemExit(exception.code) + + +class LogSession(object): + def __init__(self, session, start): + self.session = session + self.start = start + + def __str__(self): + from virtualenv.util.six import ensure_text + + spec = self.session.creator.interpreter.spec + elapsed = (datetime.now() - self.start).total_seconds() * 1000 + lines = [ + "created virtual environment {} in {:.0f}ms".format(spec, elapsed), + " creator {}".format(ensure_text(str(self.session.creator))), + ] + if self.session.seeder.enabled: + lines += ( + " seeder {}".format(ensure_text(str(self.session.seeder))), + " added seed packages: {}".format( + ", ".join( + sorted( + "==".join(i.stem.split("-")) + for i in self.session.creator.purelib.iterdir() + if i.suffix == ".dist-info" + ), + ), + ), + ) + if self.session.activators: + lines.append(" activators {}".format(",".join(i.__class__.__name__ for i in self.session.activators))) + return os.linesep.join(lines) + + +def run_with_catch(args=None): + from virtualenv.config.cli.parser import VirtualEnvOptions + + options = VirtualEnvOptions() + try: + run(args, options) + except (KeyboardInterrupt, SystemExit, Exception) as exception: + try: + if getattr(options, "with_traceback", False): + raise + else: + if not (isinstance(exception, SystemExit) and exception.code == 0): + logging.error("%s: %s", type(exception).__name__, exception) + code = exception.code if isinstance(exception, SystemExit) else 1 + sys.exit(code) + finally: + logging.shutdown() # force flush of log messages before the trace is printed + + +if __name__ == "__main__": # pragma: no cov + run_with_catch() # pragma: no cov diff --git a/venv/Lib/site-packages/virtualenv/activation/__init__.py b/venv/Lib/site-packages/virtualenv/activation/__init__.py new file mode 100644 index 00000000..fa2f0b4a --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/__init__.py @@ -0,0 +1,19 @@ +from __future__ import absolute_import, unicode_literals + +from .bash import BashActivator +from .batch import BatchActivator +from .cshell import CShellActivator +from .fish import FishActivator +from .powershell import PowerShellActivator +from .python import PythonActivator +from .xonsh import XonshActivator + +__all__ = [ + "BashActivator", + "PowerShellActivator", + "XonshActivator", + "CShellActivator", + "PythonActivator", + "BatchActivator", + "FishActivator", +] diff --git a/venv/Lib/site-packages/virtualenv/activation/activator.py b/venv/Lib/site-packages/virtualenv/activation/activator.py new file mode 100644 index 00000000..587ac105 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/activator.py @@ -0,0 +1,44 @@ +from __future__ import absolute_import, unicode_literals + +from abc import ABCMeta, abstractmethod + +from six import add_metaclass + + +@add_metaclass(ABCMeta) +class Activator(object): + """Generates an activate script for the virtual environment""" + + def __init__(self, options): + """Create a new activator generator. + + :param options: the parsed options as defined within :meth:`add_parser_arguments` + """ + self.flag_prompt = options.prompt + + @classmethod + def supports(cls, interpreter): + """Check if the activation script is supported in the given interpreter. + + :param interpreter: the interpreter we need to support + :return: ``True`` if supported, ``False`` otherwise + """ + return True + + @classmethod + def add_parser_arguments(cls, parser, interpreter): + """ + Add CLI arguments for this activation script. + + :param parser: the CLI parser + :param interpreter: the interpreter this virtual environment is based of + """ + + @abstractmethod + def generate(self, creator): + """Generate the activate script for the given creator. + + :param creator: the creator (based of :class:`virtualenv.create.creator.Creator`) we used to create this \ + virtual environment + """ + raise NotImplementedError diff --git a/venv/Lib/site-packages/virtualenv/activation/bash/__init__.py b/venv/Lib/site-packages/virtualenv/activation/bash/__init__.py new file mode 100644 index 00000000..22c90c38 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/bash/__init__.py @@ -0,0 +1,13 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.util.path import Path + +from ..via_template import ViaTemplateActivator + + +class BashActivator(ViaTemplateActivator): + def templates(self): + yield Path("activate.sh") + + def as_name(self, template): + return template.stem diff --git a/venv/Lib/site-packages/virtualenv/activation/bash/activate.sh b/venv/Lib/site-packages/virtualenv/activation/bash/activate.sh new file mode 100644 index 00000000..19bf552b --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/bash/activate.sh @@ -0,0 +1,84 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + + +if [ "${BASH_SOURCE-}" = "$0" ]; then + echo "You must source this script: \$ source $0" >&2 + exit 33 +fi + +deactivate () { + unset -f pydoc >/dev/null 2>&1 + + # reset old environment variables + # ! [ -z ${VAR+_} ] returns true if VAR is declared at all + if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then + PATH="$_OLD_VIRTUAL_PATH" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then + PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then + hash -r 2>/dev/null + fi + + if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then + PS1="$_OLD_VIRTUAL_PS1" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "${1-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV='__VIRTUAL_ENV__' +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/__BIN_NAME__:$PATH" +export PATH + +# unset PYTHONHOME if set +if ! [ -z "${PYTHONHOME+_}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1-}" + if [ "x__VIRTUAL_PROMPT__" != x ] ; then + PS1="__VIRTUAL_PROMPT__${PS1-}" + else + PS1="(`basename \"$VIRTUAL_ENV\"`) ${PS1-}" + fi + export PS1 +fi + +# Make sure to unalias pydoc if it's already there +alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true + +pydoc () { + python -m pydoc "$@" +} + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then + hash -r 2>/dev/null +fi diff --git a/venv/Lib/site-packages/virtualenv/activation/batch/__init__.py b/venv/Lib/site-packages/virtualenv/activation/batch/__init__.py new file mode 100644 index 00000000..4149712d --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/batch/__init__.py @@ -0,0 +1,23 @@ +from __future__ import absolute_import, unicode_literals + +import os + +from virtualenv.util.path import Path + +from ..via_template import ViaTemplateActivator + + +class BatchActivator(ViaTemplateActivator): + @classmethod + def supports(cls, interpreter): + return interpreter.os == "nt" + + def templates(self): + yield Path("activate.bat") + yield Path("deactivate.bat") + yield Path("pydoc.bat") + + def instantiate_template(self, replacements, template, creator): + # ensure the text has all newlines as \r\n - required by batch + base = super(BatchActivator, self).instantiate_template(replacements, template, creator) + return base.replace(os.linesep, "\n").replace("\n", os.linesep) diff --git a/venv/Lib/site-packages/virtualenv/activation/batch/activate.bat b/venv/Lib/site-packages/virtualenv/activation/batch/activate.bat new file mode 100644 index 00000000..c0949ba8 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/batch/activate.bat @@ -0,0 +1,40 @@ +@echo off + +set "VIRTUAL_ENV=__VIRTUAL_ENV__" + +if defined _OLD_VIRTUAL_PROMPT ( + set "PROMPT=%_OLD_VIRTUAL_PROMPT%" +) else ( + if not defined PROMPT ( + set "PROMPT=$P$G" + ) + if not defined VIRTUAL_ENV_DISABLE_PROMPT ( + set "_OLD_VIRTUAL_PROMPT=%PROMPT%" + ) +) +if not defined VIRTUAL_ENV_DISABLE_PROMPT ( + set "ENV_PROMPT=__VIRTUAL_PROMPT__" + if NOT DEFINED ENV_PROMPT ( + for %%d in ("%VIRTUAL_ENV%") do set "ENV_PROMPT=(%%~nxd) " + ) + ) + set "PROMPT=%ENV_PROMPT%%PROMPT%" +) + +REM Don't use () to avoid problems with them in %PATH% +if defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME + set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%" +:ENDIFVHOME + +set PYTHONHOME= + +REM if defined _OLD_VIRTUAL_PATH ( +if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH1 + set "PATH=%_OLD_VIRTUAL_PATH%" +:ENDIFVPATH1 +REM ) else ( +if defined _OLD_VIRTUAL_PATH goto ENDIFVPATH2 + set "_OLD_VIRTUAL_PATH=%PATH%" +:ENDIFVPATH2 + +set "PATH=%VIRTUAL_ENV%\__BIN_NAME__;%PATH%" diff --git a/venv/Lib/site-packages/virtualenv/activation/batch/deactivate.bat b/venv/Lib/site-packages/virtualenv/activation/batch/deactivate.bat new file mode 100644 index 00000000..7bbc5688 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/batch/deactivate.bat @@ -0,0 +1,19 @@ +@echo off + +set VIRTUAL_ENV= + +REM Don't use () to avoid problems with them in %PATH% +if not defined _OLD_VIRTUAL_PROMPT goto ENDIFVPROMPT + set "PROMPT=%_OLD_VIRTUAL_PROMPT%" + set _OLD_VIRTUAL_PROMPT= +:ENDIFVPROMPT + +if not defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME + set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" + set _OLD_VIRTUAL_PYTHONHOME= +:ENDIFVHOME + +if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH + set "PATH=%_OLD_VIRTUAL_PATH%" + set _OLD_VIRTUAL_PATH= +:ENDIFVPATH diff --git a/venv/Lib/site-packages/virtualenv/activation/batch/pydoc.bat b/venv/Lib/site-packages/virtualenv/activation/batch/pydoc.bat new file mode 100644 index 00000000..3d46a231 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/batch/pydoc.bat @@ -0,0 +1 @@ +python.exe -m pydoc %* diff --git a/venv/Lib/site-packages/virtualenv/activation/cshell/__init__.py b/venv/Lib/site-packages/virtualenv/activation/cshell/__init__.py new file mode 100644 index 00000000..b25c602a --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/cshell/__init__.py @@ -0,0 +1,14 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.util.path import Path + +from ..via_template import ViaTemplateActivator + + +class CShellActivator(ViaTemplateActivator): + @classmethod + def supports(cls, interpreter): + return interpreter.os != "nt" + + def templates(self): + yield Path("activate.csh") diff --git a/venv/Lib/site-packages/virtualenv/activation/cshell/activate.csh b/venv/Lib/site-packages/virtualenv/activation/cshell/activate.csh new file mode 100644 index 00000000..72b2cf8e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/cshell/activate.csh @@ -0,0 +1,55 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . + +set newline='\ +' + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV '__VIRTUAL_ENV__' + +set _OLD_VIRTUAL_PATH="$PATH:q" +setenv PATH "$VIRTUAL_ENV:q/__BIN_NAME__:$PATH:q" + + + +if ('__VIRTUAL_PROMPT__' != "") then + set env_name = '__VIRTUAL_PROMPT__' +else + set env_name = '('"$VIRTUAL_ENV:t:q"') ' +endif + +if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then + if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then + set do_prompt = "1" + else + set do_prompt = "0" + endif +else + set do_prompt = "1" +endif + +if ( $do_prompt == "1" ) then + # Could be in a non-interactive environment, + # in which case, $prompt is undefined and we wouldn't + # care about the prompt anyway. + if ( $?prompt ) then + set _OLD_VIRTUAL_PROMPT="$prompt:q" + if ( "$prompt:q" =~ *"$newline:q"* ) then + : + else + set prompt = "$env_name:q$prompt:q" + endif + endif +endif + +unset env_name +unset do_prompt + +alias pydoc python -m pydoc + +rehash diff --git a/venv/Lib/site-packages/virtualenv/activation/fish/__init__.py b/venv/Lib/site-packages/virtualenv/activation/fish/__init__.py new file mode 100644 index 00000000..8d0e19c2 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/fish/__init__.py @@ -0,0 +1,10 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.util.path import Path + +from ..via_template import ViaTemplateActivator + + +class FishActivator(ViaTemplateActivator): + def templates(self): + yield Path("activate.fish") diff --git a/venv/Lib/site-packages/virtualenv/activation/fish/activate.fish b/venv/Lib/site-packages/virtualenv/activation/fish/activate.fish new file mode 100644 index 00000000..faa26227 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/fish/activate.fish @@ -0,0 +1,100 @@ +# This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*. +# Do not run it directly. + +function _bashify_path -d "Converts a fish path to something bash can recognize" + set fishy_path $argv + set bashy_path $fishy_path[1] + for path_part in $fishy_path[2..-1] + set bashy_path "$bashy_path:$path_part" + end + echo $bashy_path +end + +function _fishify_path -d "Converts a bash path to something fish can recognize" + echo $argv | tr ':' '\n' +end + +function deactivate -d 'Exit virtualenv mode and return to the normal environment.' + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling + if test (echo $FISH_VERSION | head -c 1) -lt 3 + set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH") + else + set -gx PATH "$_OLD_VIRTUAL_PATH" + end + set -e _OLD_VIRTUAL_PATH + end + + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME" + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + and functions -q _old_fish_prompt + # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`. + set -l fish_function_path + + # Erase virtualenv's `fish_prompt` and restore the original. + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + end + + set -e VIRTUAL_ENV + + if test "$argv[1]" != 'nondestructive' + # Self-destruct! + functions -e pydoc + functions -e deactivate + functions -e _bashify_path + functions -e _fishify_path + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV '__VIRTUAL_ENV__' + +# https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling +if test (echo $FISH_VERSION | head -c 1) -lt 3 + set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH) +else + set -gx _OLD_VIRTUAL_PATH "$PATH" +end +set -gx PATH "$VIRTUAL_ENV"'/__BIN_NAME__' $PATH + +# Unset `$PYTHONHOME` if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +function pydoc + python -m pydoc $argv +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # Copy the current `fish_prompt` function as `_old_fish_prompt`. + functions -c fish_prompt _old_fish_prompt + + function fish_prompt + # Run the user's prompt first; it might depend on (pipe)status. + set -l prompt (_old_fish_prompt) + + # Prompt override provided? + # If not, just prepend the environment name. + if test -n '__VIRTUAL_PROMPT__' + printf '%s%s' '__VIRTUAL_PROMPT__' (set_color normal) + else + printf '%s(%s) ' (set_color normal) (basename "$VIRTUAL_ENV") + end + + string join -- \n $prompt # handle multi-line prompts + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" +end diff --git a/venv/Lib/site-packages/virtualenv/activation/powershell/__init__.py b/venv/Lib/site-packages/virtualenv/activation/powershell/__init__.py new file mode 100644 index 00000000..4fadc63b --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/powershell/__init__.py @@ -0,0 +1,10 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.util.path import Path + +from ..via_template import ViaTemplateActivator + + +class PowerShellActivator(ViaTemplateActivator): + def templates(self): + yield Path("activate.ps1") diff --git a/venv/Lib/site-packages/virtualenv/activation/powershell/activate.ps1 b/venv/Lib/site-packages/virtualenv/activation/powershell/activate.ps1 new file mode 100644 index 00000000..a370a63f --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/powershell/activate.ps1 @@ -0,0 +1,60 @@ +$script:THIS_PATH = $myinvocation.mycommand.path +$script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent + +function global:deactivate([switch] $NonDestructive) { + if (Test-Path variable:_OLD_VIRTUAL_PATH) { + $env:PATH = $variable:_OLD_VIRTUAL_PATH + Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global + } + + if (Test-Path function:_old_virtual_prompt) { + $function:prompt = $function:_old_virtual_prompt + Remove-Item function:\_old_virtual_prompt + } + + if ($env:VIRTUAL_ENV) { + Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue + } + + if (!$NonDestructive) { + # Self destruct! + Remove-Item function:deactivate + Remove-Item function:pydoc + } +} + +function global:pydoc { + python -m pydoc $args +} + +# unset irrelevant variables +deactivate -nondestructive + +$VIRTUAL_ENV = $BASE_DIR +$env:VIRTUAL_ENV = $VIRTUAL_ENV + +New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH + +$env:PATH = "$env:VIRTUAL_ENV/__BIN_NAME____PATH_SEP__" + $env:PATH +if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) { + function global:_old_virtual_prompt { + "" + } + $function:_old_virtual_prompt = $function:prompt + + if ("__VIRTUAL_PROMPT__" -ne "") { + function global:prompt { + # Add the custom prefix to the existing prompt + $previous_prompt_value = & $function:_old_virtual_prompt + ("__VIRTUAL_PROMPT__" + $previous_prompt_value) + } + } + else { + function global:prompt { + # Add a prefix to the current prompt, but don't discard it. + $previous_prompt_value = & $function:_old_virtual_prompt + $new_prompt_value = "($( Split-Path $env:VIRTUAL_ENV -Leaf )) " + ($new_prompt_value + $previous_prompt_value) + } + } +} diff --git a/venv/Lib/site-packages/virtualenv/activation/python/__init__.py b/venv/Lib/site-packages/virtualenv/activation/python/__init__.py new file mode 100644 index 00000000..9e579124 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/python/__init__.py @@ -0,0 +1,35 @@ +from __future__ import absolute_import, unicode_literals + +import os +import sys +from collections import OrderedDict + +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_text + +from ..via_template import ViaTemplateActivator + + +class PythonActivator(ViaTemplateActivator): + def templates(self): + yield Path("activate_this.py") + + def replacements(self, creator, dest_folder): + replacements = super(PythonActivator, self).replacements(creator, dest_folder) + lib_folders = OrderedDict((os.path.relpath(str(i), str(dest_folder)), None) for i in creator.libs) + win_py2 = creator.interpreter.platform == "win32" and creator.interpreter.version_info.major == 2 + replacements.update( + { + "__LIB_FOLDERS__": ensure_text(os.pathsep.join(lib_folders.keys())), + "__DECODE_PATH__": ("yes" if win_py2 else ""), + }, + ) + return replacements + + @staticmethod + def _repr_unicode(creator, value): + py2 = creator.interpreter.version_info.major == 2 + if py2: # on Python 2 we need to encode this into explicit utf-8, py3 supports unicode literals + start = 2 if sys.version_info[0] == 3 else 1 + value = ensure_text(repr(value.encode("utf-8"))[start:-1]) + return value diff --git a/venv/Lib/site-packages/virtualenv/activation/python/activate_this.py b/venv/Lib/site-packages/virtualenv/activation/python/activate_this.py new file mode 100644 index 00000000..29debe3e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/python/activate_this.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +"""Activate virtualenv for current interpreter: + +Use exec(open(this_file).read(), {'__file__': this_file}). + +This can be used when you must use an existing Python interpreter, not the virtualenv bin/python. +""" +import os +import site +import sys + +try: + abs_file = os.path.abspath(__file__) +except NameError: + raise AssertionError("You must use exec(open(this_file).read(), {'__file__': this_file}))") + +bin_dir = os.path.dirname(abs_file) +base = bin_dir[: -len("__BIN_NAME__") - 1] # strip away the bin part from the __file__, plus the path separator + +# prepend bin to PATH (this file is inside the bin directory) +os.environ["PATH"] = os.pathsep.join([bin_dir] + os.environ.get("PATH", "").split(os.pathsep)) +os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory + +# add the virtual environments libraries to the host python import mechanism +prev_length = len(sys.path) +for lib in "__LIB_FOLDERS__".split(os.pathsep): + path = os.path.realpath(os.path.join(bin_dir, lib)) + site.addsitedir(path.decode("utf-8") if "__DECODE_PATH__" else path) +sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length] + +sys.real_prefix = sys.prefix +sys.prefix = base diff --git a/venv/Lib/site-packages/virtualenv/activation/via_template.py b/venv/Lib/site-packages/virtualenv/activation/via_template.py new file mode 100644 index 00000000..7a9d3c8e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/via_template.py @@ -0,0 +1,65 @@ +from __future__ import absolute_import, unicode_literals + +import os +import sys +from abc import ABCMeta, abstractmethod + +from six import add_metaclass + +from virtualenv.util.six import ensure_text + +from .activator import Activator + +if sys.version_info >= (3, 7): + from importlib.resources import read_text +else: + from importlib_resources import read_text + + +@add_metaclass(ABCMeta) +class ViaTemplateActivator(Activator): + @abstractmethod + def templates(self): + raise NotImplementedError + + def generate(self, creator): + dest_folder = creator.bin_dir + replacements = self.replacements(creator, dest_folder) + generated = self._generate(replacements, self.templates(), dest_folder, creator) + if self.flag_prompt is not None: + creator.pyenv_cfg["prompt"] = self.flag_prompt + return generated + + def replacements(self, creator, dest_folder): + return { + "__VIRTUAL_PROMPT__": "" if self.flag_prompt is None else self.flag_prompt, + "__VIRTUAL_ENV__": ensure_text(str(creator.dest)), + "__VIRTUAL_NAME__": creator.env_name, + "__BIN_NAME__": ensure_text(str(creator.bin_dir.relative_to(creator.dest))), + "__PATH_SEP__": ensure_text(os.pathsep), + } + + def _generate(self, replacements, templates, to_folder, creator): + generated = [] + for template in templates: + text = self.instantiate_template(replacements, template, creator) + dest = to_folder / self.as_name(template) + dest.write_text(text, encoding="utf-8") + generated.append(dest) + return generated + + def as_name(self, template): + return template.name + + def instantiate_template(self, replacements, template, creator): + # read text and do replacements + text = read_text(self.__module__, str(template), encoding="utf-8", errors="strict") + for key, value in replacements.items(): + value = self._repr_unicode(creator, value) + text = text.replace(key, value) + return text + + @staticmethod + def _repr_unicode(creator, value): + # by default we just let it be unicode + return value diff --git a/venv/Lib/site-packages/virtualenv/activation/xonsh/__init__.py b/venv/Lib/site-packages/virtualenv/activation/xonsh/__init__.py new file mode 100644 index 00000000..d92411c2 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/xonsh/__init__.py @@ -0,0 +1,14 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.util.path import Path + +from ..via_template import ViaTemplateActivator + + +class XonshActivator(ViaTemplateActivator): + def templates(self): + yield Path("activate.xsh") + + @classmethod + def supports(cls, interpreter): + return interpreter.version_info >= (3, 5) diff --git a/venv/Lib/site-packages/virtualenv/activation/xonsh/activate.xsh b/venv/Lib/site-packages/virtualenv/activation/xonsh/activate.xsh new file mode 100644 index 00000000..c77ea627 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/activation/xonsh/activate.xsh @@ -0,0 +1,46 @@ +"""Xonsh activate script for virtualenv""" +from xonsh.tools import get_sep as _get_sep + +def _deactivate(args): + if "pydoc" in aliases: + del aliases["pydoc"] + + if ${...}.get("_OLD_VIRTUAL_PATH", ""): + $PATH = $_OLD_VIRTUAL_PATH + del $_OLD_VIRTUAL_PATH + + if ${...}.get("_OLD_VIRTUAL_PYTHONHOME", ""): + $PYTHONHOME = $_OLD_VIRTUAL_PYTHONHOME + del $_OLD_VIRTUAL_PYTHONHOME + + if "VIRTUAL_ENV" in ${...}: + del $VIRTUAL_ENV + + if "VIRTUAL_ENV_PROMPT" in ${...}: + del $VIRTUAL_ENV_PROMPT + + if "nondestructive" not in args: + # Self destruct! + del aliases["deactivate"] + + +# unset irrelevant variables +_deactivate(["nondestructive"]) +aliases["deactivate"] = _deactivate + +$VIRTUAL_ENV = r"__VIRTUAL_ENV__" + +$_OLD_VIRTUAL_PATH = $PATH +$PATH = $PATH[:] +$PATH.add($VIRTUAL_ENV + _get_sep() + "__BIN_NAME__", front=True, replace=True) + +if ${...}.get("PYTHONHOME", ""): + # unset PYTHONHOME if set + $_OLD_VIRTUAL_PYTHONHOME = $PYTHONHOME + del $PYTHONHOME + +$VIRTUAL_ENV_PROMPT = "__VIRTUAL_PROMPT__" +if not $VIRTUAL_ENV_PROMPT: + del $VIRTUAL_ENV_PROMPT + +aliases["pydoc"] = ["python", "-m", "pydoc"] diff --git a/venv/Lib/site-packages/virtualenv/app_data/__init__.py b/venv/Lib/site-packages/virtualenv/app_data/__init__.py new file mode 100644 index 00000000..1d85745a --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/app_data/__init__.py @@ -0,0 +1,62 @@ +""" +Application data stored by virtualenv. +""" +from __future__ import absolute_import, unicode_literals + +import logging +import os +from argparse import Action, ArgumentError + +from appdirs import user_data_dir + +from .na import AppDataDisabled +from .via_disk_folder import AppDataDiskFolder +from .via_tempdir import TempAppData + + +class AppDataAction(Action): + def __call__(self, parser, namespace, values, option_string=None): + folder = self._check_folder(values) + if folder is None: + raise ArgumentError("app data path {} is not valid".format(values)) + setattr(namespace, self.dest, AppDataDiskFolder(folder)) + + @staticmethod + def _check_folder(folder): + folder = os.path.abspath(folder) + if not os.path.exists(folder): + try: + os.makedirs(folder) + logging.debug("created app data folder %s", folder) + except OSError as exception: + logging.info("could not create app data folder %s due to %r", folder, exception) + return None + write_enabled = os.access(folder, os.W_OK) + if write_enabled: + return folder + logging.debug("app data folder %s has no write access", folder) + return None + + @staticmethod + def default(): + for folder in AppDataAction._app_data_candidates(): + folder = AppDataAction._check_folder(folder) + if folder is not None: + return AppDataDiskFolder(folder) + return AppDataDisabled() + + @staticmethod + def _app_data_candidates(): + key = str("VIRTUALENV_OVERRIDE_APP_DATA") + if key in os.environ: + yield os.environ[key] + else: + yield user_data_dir(appname="virtualenv", appauthor="pypa") + + +__all__ = ( + "AppDataDiskFolder", + "TempAppData", + "AppDataAction", + "AppDataDisabled", +) diff --git a/venv/Lib/site-packages/virtualenv/app_data/base.py b/venv/Lib/site-packages/virtualenv/app_data/base.py new file mode 100644 index 00000000..d0da0fc1 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/app_data/base.py @@ -0,0 +1,91 @@ +""" +Application data stored by virtualenv. +""" +from __future__ import absolute_import, unicode_literals + +from abc import ABCMeta, abstractmethod +from contextlib import contextmanager + +import six + +from virtualenv.info import IS_ZIPAPP + + +@six.add_metaclass(ABCMeta) +class AppData(object): + """Abstract storage interface for the virtualenv application""" + + @abstractmethod + def close(self): + """called before virtualenv exits""" + + @abstractmethod + def reset(self): + """called when the user passes in the reset app data""" + + @abstractmethod + def py_info(self, path): + raise NotImplementedError + + @abstractmethod + def py_info_clear(self): + raise NotImplementedError + + @abstractmethod + def embed_update_log(self, distribution, for_py_version): + raise NotImplementedError + + @property + def house(self): + raise NotImplementedError + + @property + def transient(self): + raise NotImplementedError + + @abstractmethod + def wheel_image(self, for_py_version, name): + raise NotImplementedError + + @contextmanager + def ensure_extracted(self, path, to_folder=None): + """Some paths might be within the zipapp, unzip these to a path on the disk""" + if IS_ZIPAPP: + with self.extract(path, to_folder) as result: + yield result + else: + yield path + + @abstractmethod + @contextmanager + def extract(self, path, to_folder): + raise NotImplementedError + + @abstractmethod + @contextmanager + def locked(self, path): + raise NotImplementedError + + +@six.add_metaclass(ABCMeta) +class ContentStore(object): + @abstractmethod + def exists(self): + raise NotImplementedError + + @abstractmethod + def read(self): + raise NotImplementedError + + @abstractmethod + def write(self, content): + raise NotImplementedError + + @abstractmethod + def remove(self): + raise NotImplementedError + + @abstractmethod + @contextmanager + def locked(self): + pass diff --git a/venv/Lib/site-packages/virtualenv/app_data/na.py b/venv/Lib/site-packages/virtualenv/app_data/na.py new file mode 100644 index 00000000..937aa9a4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/app_data/na.py @@ -0,0 +1,67 @@ +from __future__ import absolute_import, unicode_literals + +from contextlib import contextmanager + +from .base import AppData, ContentStore + + +class AppDataDisabled(AppData): + """No application cache available (most likely as we don't have write permissions)""" + + def __init__(self): + pass + + error = RuntimeError("no app data folder available, probably no write access to the folder") + + def close(self): + """do nothing""" + + def reset(self): + """do nothing""" + + def py_info(self, path): + return ContentStoreNA() + + def embed_update_log(self, distribution, for_py_version): + return ContentStoreNA() + + def extract(self, path, to_folder): + raise self.error + + @contextmanager + def locked(self, path): + """do nothing""" + yield + + @property + def house(self): + raise self.error + + def wheel_image(self, for_py_version, name): + raise self.error + + @property + def transient(self): + return True + + def py_info_clear(self): + """""" + + +class ContentStoreNA(ContentStore): + def exists(self): + return False + + def read(self): + """""" + return None + + def write(self, content): + """""" + + def remove(self): + """""" + + @contextmanager + def locked(self): + yield diff --git a/venv/Lib/site-packages/virtualenv/app_data/via_disk_folder.py b/venv/Lib/site-packages/virtualenv/app_data/via_disk_folder.py new file mode 100644 index 00000000..6b12ef8b --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/app_data/via_disk_folder.py @@ -0,0 +1,172 @@ +# -*- coding: utf-8 -*- +""" +A rough layout of the current storage goes as: + +virtualenv-app-data +├── py - +│   └── *.json/lock +├── wheel +│   ├── house +│ │ └── *.whl +│ └── -> 3.9 +│ ├── img- +│ │ └── image +│ │ └── -> CopyPipInstall / SymlinkPipInstall +│ │ └── -> pip-20.1.1-py2.py3-none-any +│ └── embed +│ └── 1 +│ └── *.json -> for every distribution contains data about newer embed versions and releases +└─── unzip + └── + ├── py_info.py + ├── debug.py + └── _virtualenv.py +""" +from __future__ import absolute_import, unicode_literals + +import json +import logging +from abc import ABCMeta +from contextlib import contextmanager +from hashlib import sha256 + +import six + +from virtualenv.util.lock import ReentrantFileLock +from virtualenv.util.path import safe_delete +from virtualenv.util.six import ensure_text +from virtualenv.util.zipapp import extract +from virtualenv.version import __version__ + +from .base import AppData, ContentStore + + +class AppDataDiskFolder(AppData): + """ + Store the application data on the disk within a folder layout. + """ + + def __init__(self, folder): + self.lock = ReentrantFileLock(folder) + + def __repr__(self): + return "{}".format(self.lock.path) + + @property + def transient(self): + return False + + def reset(self): + logging.debug("reset app data folder %s", self.lock.path) + safe_delete(self.lock.path) + + def close(self): + """do nothing""" + + @contextmanager + def locked(self, path): + path_lock = self.lock / path + with path_lock: + yield path_lock.path + + @contextmanager + def extract(self, path, to_folder): + if to_folder is not None: + root = ReentrantFileLock(to_folder()) + else: + root = self.lock / "unzip" / __version__ + with root.lock_for_key(path.name): + dest = root.path / path.name + if not dest.exists(): + extract(path, dest) + yield dest + + @property + def py_info_at(self): + return self.lock / "py_info" / "1" + + def py_info(self, path): + return PyInfoStoreDisk(self.py_info_at, path) + + def py_info_clear(self): + """""" + py_info_folder = self.py_info_at + with py_info_folder: + for filename in py_info_folder.path.iterdir(): + if filename.suffix == ".json": + with py_info_folder.lock_for_key(filename.stem): + if filename.exists(): + filename.unlink() + + def embed_update_log(self, distribution, for_py_version): + return EmbedDistributionUpdateStoreDisk(self.lock / "wheel" / for_py_version / "embed" / "1", distribution) + + @property + def house(self): + path = self.lock.path / "wheel" / "house" + path.mkdir(parents=True, exist_ok=True) + return path + + def wheel_image(self, for_py_version, name): + return self.lock.path / "wheel" / for_py_version / "image" / "1" / name + + +@six.add_metaclass(ABCMeta) +class JSONStoreDisk(ContentStore): + def __init__(self, in_folder, key, msg, msg_args): + self.in_folder = in_folder + self.key = key + self.msg = msg + self.msg_args = msg_args + (self.file,) + + @property + def file(self): + return self.in_folder.path / "{}.json".format(self.key) + + def exists(self): + return self.file.exists() + + def read(self): + data, bad_format = None, False + try: + data = json.loads(self.file.read_text()) + logging.debug("got {} from %s".format(self.msg), *self.msg_args) + return data + except ValueError: + bad_format = True + except Exception: # noqa + pass + if bad_format: + self.remove() + return None + + def remove(self): + self.file.unlink() + logging.debug("removed {} at %s".format(self.msg), *self.msg_args) + + @contextmanager + def locked(self): + with self.in_folder.lock_for_key(self.key): + yield + + def write(self, content): + folder = self.file.parent + try: + folder.mkdir(parents=True, exist_ok=True) + except OSError: + pass + self.file.write_text(ensure_text(json.dumps(content, sort_keys=True, indent=2))) + logging.debug("wrote {} at %s".format(self.msg), *self.msg_args) + + +class PyInfoStoreDisk(JSONStoreDisk): + def __init__(self, in_folder, path): + key = sha256(str(path).encode("utf-8") if six.PY3 else str(path)).hexdigest() + super(PyInfoStoreDisk, self).__init__(in_folder, key, "python info of %s", (path,)) + + +class EmbedDistributionUpdateStoreDisk(JSONStoreDisk): + def __init__(self, in_folder, distribution): + super(EmbedDistributionUpdateStoreDisk, self).__init__( + in_folder, distribution, "embed update of distribution %s", (distribution,), + ) diff --git a/venv/Lib/site-packages/virtualenv/app_data/via_tempdir.py b/venv/Lib/site-packages/virtualenv/app_data/via_tempdir.py new file mode 100644 index 00000000..e8b387c5 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/app_data/via_tempdir.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import, unicode_literals + +import logging +from tempfile import mkdtemp + +from virtualenv.util.path import safe_delete + +from .via_disk_folder import AppDataDiskFolder + + +class TempAppData(AppDataDiskFolder): + def __init__(self): + super(TempAppData, self).__init__(folder=mkdtemp()) + logging.debug("created temporary app data folder %s", self.lock.path) + + def reset(self): + """this is a temporary folder, is already empty to start with""" + + def close(self): + logging.debug("remove temporary app data folder %s", self.lock.path) + safe_delete(self.lock.path) + + def embed_update_log(self, distribution, for_py_version): + return None + + @property + def transient(self): + return True diff --git a/venv/Lib/site-packages/virtualenv/config/__init__.py b/venv/Lib/site-packages/virtualenv/config/__init__.py new file mode 100644 index 00000000..01e6d4f4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/config/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import, unicode_literals diff --git a/venv/Lib/site-packages/virtualenv/config/cli/__init__.py b/venv/Lib/site-packages/virtualenv/config/cli/__init__.py new file mode 100644 index 00000000..01e6d4f4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/config/cli/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import, unicode_literals diff --git a/venv/Lib/site-packages/virtualenv/config/cli/parser.py b/venv/Lib/site-packages/virtualenv/config/cli/parser.py new file mode 100644 index 00000000..eb4db30a --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/config/cli/parser.py @@ -0,0 +1,120 @@ +from __future__ import absolute_import, unicode_literals + +from argparse import SUPPRESS, ArgumentDefaultsHelpFormatter, ArgumentParser, Namespace +from collections import OrderedDict + +from virtualenv.config.convert import get_type + +from ..env_var import get_env_var +from ..ini import IniConfig + + +class VirtualEnvOptions(Namespace): + def __init__(self, **kwargs): + super(VirtualEnvOptions, self).__init__(**kwargs) + self._src = None + self._sources = {} + + def set_src(self, key, value, src): + setattr(self, key, value) + if src.startswith("env var"): + src = "env var" + self._sources[key] = src + + def __setattr__(self, key, value): + if getattr(self, "_src", None) is not None: + self._sources[key] = self._src + super(VirtualEnvOptions, self).__setattr__(key, value) + + def get_source(self, key): + return self._sources.get(key) + + @property + def verbosity(self): + if not hasattr(self, "verbose") and not hasattr(self, "quiet"): + return None + return max(self.verbose - self.quiet, 0) + + def __repr__(self): + return "{}({})".format( + type(self).__name__, + ", ".join("{}={}".format(k, v) for k, v in vars(self).items() if not k.startswith("_")), + ) + + +class VirtualEnvConfigParser(ArgumentParser): + """ + Custom option parser which updates its defaults by checking the configuration files and environmental variables + """ + + def __init__(self, options=None, *args, **kwargs): + self.file_config = IniConfig() + self.epilog_list = [] + kwargs["epilog"] = self.file_config.epilog + kwargs["add_help"] = False + kwargs["formatter_class"] = HelpFormatter + kwargs["prog"] = "virtualenv" + super(VirtualEnvConfigParser, self).__init__(*args, **kwargs) + self._fixed = set() + if options is not None and not isinstance(options, VirtualEnvOptions): + raise TypeError("options must be of type VirtualEnvOptions") + self.options = VirtualEnvOptions() if options is None else options + self._interpreter = None + self._app_data = None + + def _fix_defaults(self): + for action in self._actions: + action_id = id(action) + if action_id not in self._fixed: + self._fix_default(action) + self._fixed.add(action_id) + + def _fix_default(self, action): + if hasattr(action, "default") and hasattr(action, "dest") and action.default != SUPPRESS: + as_type = get_type(action) + names = OrderedDict((i.lstrip("-").replace("-", "_"), None) for i in action.option_strings) + outcome = None + for name in names: + outcome = get_env_var(name, as_type) + if outcome is not None: + break + if outcome is None and self.file_config: + for name in names: + outcome = self.file_config.get(name, as_type) + if outcome is not None: + break + if outcome is not None: + action.default, action.default_source = outcome + else: + outcome = action.default, "default" + self.options.set_src(action.dest, *outcome) + + def enable_help(self): + self._fix_defaults() + self.add_argument("-h", "--help", action="help", default=SUPPRESS, help="show this help message and exit") + + def parse_known_args(self, args=None, namespace=None): + if namespace is None: + namespace = self.options + elif namespace is not self.options: + raise ValueError("can only pass in parser.options") + self._fix_defaults() + self.options._src = "cli" + try: + return super(VirtualEnvConfigParser, self).parse_known_args(args, namespace=namespace) + finally: + self.options._src = None + + +class HelpFormatter(ArgumentDefaultsHelpFormatter): + def __init__(self, prog): + super(HelpFormatter, self).__init__(prog, max_help_position=32, width=240) + + def _get_help_string(self, action): + # noinspection PyProtectedMember + text = super(HelpFormatter, self)._get_help_string(action) + if hasattr(action, "default_source"): + default = " (default: %(default)s)" + if text.endswith(default): + text = "{} (default: %(default)s -> from %(default_source)s)".format(text[: -len(default)]) + return text diff --git a/venv/Lib/site-packages/virtualenv/config/convert.py b/venv/Lib/site-packages/virtualenv/config/convert.py new file mode 100644 index 00000000..27821fc0 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/config/convert.py @@ -0,0 +1,81 @@ +from __future__ import absolute_import, unicode_literals + +import logging +import os + + +class TypeData(object): + def __init__(self, default_type, as_type): + self.default_type = default_type + self.as_type = as_type + + def __repr__(self): + return "{}(base={}, as={})".format(self.__class__.__name__, self.default_type, self.as_type) + + def convert(self, value): + return self.default_type(value) + + +class BoolType(TypeData): + BOOLEAN_STATES = { + "1": True, + "yes": True, + "true": True, + "on": True, + "0": False, + "no": False, + "false": False, + "off": False, + } + + def convert(self, value): + if value.lower() not in self.BOOLEAN_STATES: + raise ValueError("Not a boolean: %s" % value) + return self.BOOLEAN_STATES[value.lower()] + + +class NoneType(TypeData): + def convert(self, value): + if not value: + return None + return str(value) + + +class ListType(TypeData): + def _validate(self): + """""" + + def convert(self, value, flatten=True): + if isinstance(value, (str, bytes)): + value = filter(None, [x.strip() for x in value.splitlines()]) + values = list(value) + result = [] + for value in values: + sub_values = value.split(os.pathsep) + result.extend(sub_values) + converted = [self.as_type(i) for i in result] + return converted + + +def convert(value, as_type, source): + """Convert the value as a given type where the value comes from the given source""" + try: + return as_type.convert(value) + except Exception as exception: + logging.warning("%s failed to convert %r as %r because %r", source, value, as_type, exception) + raise + + +_CONVERT = {bool: BoolType, type(None): NoneType, list: ListType} + + +def get_type(action): + default_type = type(action.default) + as_type = default_type if action.type is None else action.type + return _CONVERT.get(default_type, TypeData)(default_type, as_type) + + +__all__ = ( + "convert", + "get_type", +) diff --git a/venv/Lib/site-packages/virtualenv/config/env_var.py b/venv/Lib/site-packages/virtualenv/config/env_var.py new file mode 100644 index 00000000..259399a7 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/config/env_var.py @@ -0,0 +1,29 @@ +from __future__ import absolute_import, unicode_literals + +import os + +from virtualenv.util.six import ensure_str, ensure_text + +from .convert import convert + + +def get_env_var(key, as_type): + """Get the environment variable option. + + :param key: the config key requested + :param as_type: the type we would like to convert it to + :return: + """ + environ_key = ensure_str("VIRTUALENV_{}".format(key.upper())) + if os.environ.get(environ_key): + value = os.environ[environ_key] + # noinspection PyBroadException + try: + source = "env var {}".format(ensure_text(environ_key)) + as_type = convert(value, as_type, source) + return as_type, source + except Exception: # note the converter already logs a warning when failures happen + pass + + +__all__ = ("get_env_var",) diff --git a/venv/Lib/site-packages/virtualenv/config/ini.py b/venv/Lib/site-packages/virtualenv/config/ini.py new file mode 100644 index 00000000..c8789475 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/config/ini.py @@ -0,0 +1,83 @@ +from __future__ import absolute_import, unicode_literals + +import logging +import os + +from appdirs import user_config_dir + +from virtualenv.info import PY3 +from virtualenv.util import ConfigParser +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_str + +from .convert import convert + + +class IniConfig(object): + VIRTUALENV_CONFIG_FILE_ENV_VAR = ensure_str("VIRTUALENV_CONFIG_FILE") + STATE = {None: "failed to parse", True: "active", False: "missing"} + + section = "virtualenv" + + def __init__(self): + config_file = os.environ.get(self.VIRTUALENV_CONFIG_FILE_ENV_VAR, None) + self.is_env_var = config_file is not None + config_file = ( + Path(config_file) + if config_file is not None + else Path(user_config_dir(appname="virtualenv", appauthor="pypa")) / "virtualenv.ini" + ) + self.config_file = config_file + self._cache = {} + + exception = None + self.has_config_file = None + try: + self.has_config_file = self.config_file.exists() + except OSError as exc: + exception = exc + else: + if self.has_config_file: + self.config_file = self.config_file.resolve() + self.config_parser = ConfigParser.ConfigParser() + try: + self._load() + self.has_virtualenv_section = self.config_parser.has_section(self.section) + except Exception as exc: + exception = exc + if exception is not None: + logging.error("failed to read config file %s because %r", config_file, exception) + + def _load(self): + with self.config_file.open("rt") as file_handler: + reader = getattr(self.config_parser, "read_file" if PY3 else "readfp") + reader(file_handler) + + def get(self, key, as_type): + cache_key = key, as_type + if cache_key in self._cache: + return self._cache[cache_key] + # noinspection PyBroadException + try: + source = "file" + raw_value = self.config_parser.get(self.section, key.lower()) + value = convert(raw_value, as_type, source) + result = value, source + except Exception: + result = None + self._cache[cache_key] = result + return result + + def __bool__(self): + return bool(self.has_config_file) and bool(self.has_virtualenv_section) + + @property + def epilog(self): + msg = "{}config file {} {} (change{} via env var {})" + return msg.format( + os.linesep, + self.config_file, + self.STATE[self.has_config_file], + "d" if self.is_env_var else "", + self.VIRTUALENV_CONFIG_FILE_ENV_VAR, + ) diff --git a/venv/Lib/site-packages/virtualenv/create/__init__.py b/venv/Lib/site-packages/virtualenv/create/__init__.py new file mode 100644 index 00000000..01e6d4f4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import, unicode_literals diff --git a/venv/Lib/site-packages/virtualenv/create/creator.py b/venv/Lib/site-packages/virtualenv/create/creator.py new file mode 100644 index 00000000..4d5b306e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/creator.py @@ -0,0 +1,224 @@ +from __future__ import absolute_import, print_function, unicode_literals + +import json +import logging +import os +import sys +from abc import ABCMeta, abstractmethod +from argparse import ArgumentTypeError +from ast import literal_eval +from collections import OrderedDict +from textwrap import dedent + +from six import add_metaclass + +from virtualenv.discovery.cached_py_info import LogCmd +from virtualenv.info import WIN_CPYTHON_2 +from virtualenv.util.path import Path, safe_delete +from virtualenv.util.six import ensure_str, ensure_text +from virtualenv.util.subprocess import run_cmd +from virtualenv.version import __version__ + +from .pyenv_cfg import PyEnvCfg + +HERE = Path(os.path.abspath(__file__)).parent +DEBUG_SCRIPT = HERE / "debug.py" + + +class CreatorMeta(object): + def __init__(self): + self.error = None + + +@add_metaclass(ABCMeta) +class Creator(object): + """A class that given a python Interpreter creates a virtual environment""" + + def __init__(self, options, interpreter): + """Construct a new virtual environment creator. + + :param options: the CLI option as parsed from :meth:`add_parser_arguments` + :param interpreter: the interpreter to create virtual environment from + """ + self.interpreter = interpreter + self._debug = None + self.dest = Path(options.dest) + self.clear = options.clear + self.pyenv_cfg = PyEnvCfg.from_folder(self.dest) + self.app_data = options.app_data + + def __repr__(self): + return ensure_str(self.__unicode__()) + + def __unicode__(self): + return "{}({})".format(self.__class__.__name__, ", ".join("{}={}".format(k, v) for k, v in self._args())) + + def _args(self): + return [ + ("dest", ensure_text(str(self.dest))), + ("clear", self.clear), + ] + + @classmethod + def can_create(cls, interpreter): + """Determine if we can create a virtual environment. + + :param interpreter: the interpreter in question + :return: ``None`` if we can't create, any other object otherwise that will be forwarded to \ + :meth:`add_parser_arguments` + """ + return True + + @classmethod + def add_parser_arguments(cls, parser, interpreter, meta, app_data): + """Add CLI arguments for the creator. + + :param parser: the CLI parser + :param app_data: the application data folder + :param interpreter: the interpreter we're asked to create virtual environment for + :param meta: value as returned by :meth:`can_create` + """ + parser.add_argument( + "dest", help="directory to create virtualenv at", type=cls.validate_dest, + ) + parser.add_argument( + "--clear", + dest="clear", + action="store_true", + help="remove the destination directory if exist before starting (will overwrite files otherwise)", + default=False, + ) + + @abstractmethod + def create(self): + """Perform the virtual environment creation.""" + raise NotImplementedError + + @classmethod + def validate_dest(cls, raw_value): + """No path separator in the path, valid chars and must be write-able""" + + def non_write_able(dest, value): + common = Path(*os.path.commonprefix([value.parts, dest.parts])) + raise ArgumentTypeError( + "the destination {} is not write-able at {}".format(dest.relative_to(common), common), + ) + + # the file system must be able to encode + # note in newer CPython this is always utf-8 https://www.python.org/dev/peps/pep-0529/ + encoding = sys.getfilesystemencoding() + refused = OrderedDict() + kwargs = {"errors": "ignore"} if encoding != "mbcs" else {} + for char in ensure_text(raw_value): + try: + trip = char.encode(encoding, **kwargs).decode(encoding) + if trip == char: + continue + raise ValueError(trip) + except ValueError: + refused[char] = None + if refused: + raise ArgumentTypeError( + "the file system codec ({}) cannot handle characters {!r} within {!r}".format( + encoding, "".join(refused.keys()), raw_value, + ), + ) + if os.pathsep in raw_value: + raise ArgumentTypeError( + "destination {!r} must not contain the path separator ({}) as this would break " + "the activation scripts".format(raw_value, os.pathsep), + ) + + value = Path(raw_value) + if value.exists() and value.is_file(): + raise ArgumentTypeError("the destination {} already exists and is a file".format(value)) + if (3, 3) <= sys.version_info <= (3, 6): + # pre 3.6 resolve is always strict, aka must exists, sidestep by using os.path operation + dest = Path(os.path.realpath(raw_value)) + else: + dest = Path(os.path.abspath(str(value))).resolve() # on Windows absolute does not imply resolve so use both + value = dest + while dest: + if dest.exists(): + if os.access(ensure_text(str(dest)), os.W_OK): + break + else: + non_write_able(dest, value) + base, _ = dest.parent, dest.name + if base == dest: + non_write_able(dest, value) # pragma: no cover + dest = base + return str(value) + + def run(self): + if self.dest.exists() and self.clear: + logging.debug("delete %s", self.dest) + safe_delete(self.dest) + self.create() + self.set_pyenv_cfg() + self.setup_ignore_vcs() + + def set_pyenv_cfg(self): + self.pyenv_cfg.content = OrderedDict() + self.pyenv_cfg["home"] = self.interpreter.system_exec_prefix + self.pyenv_cfg["implementation"] = self.interpreter.implementation + self.pyenv_cfg["version_info"] = ".".join(str(i) for i in self.interpreter.version_info) + self.pyenv_cfg["virtualenv"] = __version__ + + def setup_ignore_vcs(self): + """Generate ignore instructions for version control systems.""" + # mark this folder to be ignored by VCS, handle https://www.python.org/dev/peps/pep-0610/#registered-vcs + git_ignore = self.dest / ".gitignore" + if not git_ignore.exists(): + git_ignore.write_text( + dedent( + """ + # created by virtualenv automatically + * + """, + ).lstrip(), + ) + # Mercurial - does not support the .hgignore file inside a subdirectory directly, but only if included via the + # subinclude directive from root, at which point on might as well ignore the directory itself, see + # https://www.selenic.com/mercurial/hgignore.5.html for more details + # Bazaar - does not support ignore files in sub-directories, only at root level via .bzrignore + # Subversion - does not support ignore files, requires direct manipulation with the svn tool + + @property + def debug(self): + """ + :return: debug information about the virtual environment (only valid after :meth:`create` has run) + """ + if self._debug is None and self.exe is not None: + self._debug = get_env_debug_info(self.exe, self.debug_script(), self.app_data) + return self._debug + + # noinspection PyMethodMayBeStatic + def debug_script(self): + return DEBUG_SCRIPT + + +def get_env_debug_info(env_exe, debug_script, app_data): + env = os.environ.copy() + env.pop(str("PYTHONPATH"), None) + + with app_data.ensure_extracted(debug_script) as debug_script: + cmd = [str(env_exe), str(debug_script)] + if WIN_CPYTHON_2: + cmd = [ensure_text(i) for i in cmd] + logging.debug(str("debug via %r"), LogCmd(cmd)) + code, out, err = run_cmd(cmd) + + # noinspection PyBroadException + try: + if code != 0: + result = literal_eval(out) + else: + result = json.loads(out) + if err: + result["err"] = err + except Exception as exception: + return {"out": out, "err": err, "returncode": code, "exception": repr(exception)} + if "sys" in result and "path" in result["sys"]: + del result["sys"]["path"][0] + return result diff --git a/venv/Lib/site-packages/virtualenv/create/debug.py b/venv/Lib/site-packages/virtualenv/create/debug.py new file mode 100644 index 00000000..0cdaa494 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/debug.py @@ -0,0 +1,110 @@ +"""Inspect a target Python interpreter virtual environment wise""" +import sys # built-in + +PYPY2_WIN = hasattr(sys, "pypy_version_info") and sys.platform != "win32" and sys.version_info[0] == 2 + + +def encode_path(value): + if value is None: + return None + if not isinstance(value, (str, bytes)): + if isinstance(value, type): + value = repr(value) + else: + value = repr(type(value)) + if isinstance(value, bytes) and not PYPY2_WIN: + value = value.decode(sys.getfilesystemencoding()) + return value + + +def encode_list_path(value): + return [encode_path(i) for i in value] + + +def run(): + """print debug data about the virtual environment""" + try: + from collections import OrderedDict + except ImportError: # pragma: no cover + # this is possible if the standard library cannot be accessed + # noinspection PyPep8Naming + OrderedDict = dict # pragma: no cover + result = OrderedDict([("sys", OrderedDict())]) + path_keys = ( + "executable", + "_base_executable", + "prefix", + "base_prefix", + "real_prefix", + "exec_prefix", + "base_exec_prefix", + "path", + "meta_path", + ) + for key in path_keys: + value = getattr(sys, key, None) + if isinstance(value, list): + value = encode_list_path(value) + else: + value = encode_path(value) + result["sys"][key] = value + result["sys"]["fs_encoding"] = sys.getfilesystemencoding() + result["sys"]["io_encoding"] = getattr(sys.stdout, "encoding", None) + result["version"] = sys.version + + try: + import sysconfig + + # https://bugs.python.org/issue22199 + makefile = getattr(sysconfig, "get_makefile_filename", getattr(sysconfig, "_get_makefile_filename", None)) + result["makefile_filename"] = encode_path(makefile()) + except ImportError: + pass + + import os # landmark + + result["os"] = repr(os) + + try: + # noinspection PyUnresolvedReferences + import site # site + + result["site"] = repr(site) + except ImportError as exception: # pragma: no cover + result["site"] = repr(exception) # pragma: no cover + + try: + # noinspection PyUnresolvedReferences + import datetime # site + + result["datetime"] = repr(datetime) + except ImportError as exception: # pragma: no cover + result["datetime"] = repr(exception) # pragma: no cover + + try: + # noinspection PyUnresolvedReferences + import math # site + + result["math"] = repr(math) + except ImportError as exception: # pragma: no cover + result["math"] = repr(exception) # pragma: no cover + + # try to print out, this will validate if other core modules are available (json in this case) + try: + import json + + result["json"] = repr(json) + except ImportError as exception: + result["json"] = repr(exception) + else: + try: + content = json.dumps(result, indent=2) + sys.stdout.write(content) + except (ValueError, TypeError) as exception: # pragma: no cover + sys.stderr.write(repr(exception)) + sys.stdout.write(repr(result)) # pragma: no cover + raise SystemExit(1) # pragma: no cover + + +if __name__ == "__main__": + run() diff --git a/venv/Lib/site-packages/virtualenv/create/describe.py b/venv/Lib/site-packages/virtualenv/create/describe.py new file mode 100644 index 00000000..1e59aaea --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/describe.py @@ -0,0 +1,117 @@ +from __future__ import absolute_import, print_function, unicode_literals + +from abc import ABCMeta +from collections import OrderedDict + +from six import add_metaclass + +from virtualenv.info import IS_WIN +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_text + + +@add_metaclass(ABCMeta) +class Describe(object): + """Given a host interpreter tell us information about what the created interpreter might look like""" + + suffix = ".exe" if IS_WIN else "" + + def __init__(self, dest, interpreter): + self.interpreter = interpreter + self.dest = dest + self._stdlib = None + self._stdlib_platform = None + self._system_stdlib = None + self._conf_vars = None + + @property + def bin_dir(self): + return self.script_dir + + @property + def script_dir(self): + return self.dest / Path(self.interpreter.distutils_install["scripts"]) + + @property + def purelib(self): + return self.dest / self.interpreter.distutils_install["purelib"] + + @property + def platlib(self): + return self.dest / self.interpreter.distutils_install["platlib"] + + @property + def libs(self): + return list(OrderedDict(((self.platlib, None), (self.purelib, None))).keys()) + + @property + def stdlib(self): + if self._stdlib is None: + self._stdlib = Path(self.interpreter.sysconfig_path("stdlib", config_var=self._config_vars)) + return self._stdlib + + @property + def stdlib_platform(self): + if self._stdlib_platform is None: + self._stdlib_platform = Path(self.interpreter.sysconfig_path("platstdlib", config_var=self._config_vars)) + return self._stdlib_platform + + @property + def _config_vars(self): + if self._conf_vars is None: + self._conf_vars = self._calc_config_vars(ensure_text(str(self.dest))) + return self._conf_vars + + def _calc_config_vars(self, to): + return { + k: (to if v.startswith(self.interpreter.prefix) else v) for k, v in self.interpreter.sysconfig_vars.items() + } + + @classmethod + def can_describe(cls, interpreter): + """Knows means it knows how the output will look""" + return True + + @property + def env_name(self): + return ensure_text(self.dest.parts[-1]) + + @property + def exe(self): + return self.bin_dir / "{}{}".format(self.exe_stem(), self.suffix) + + @classmethod + def exe_stem(cls): + """executable name without suffix - there seems to be no standard way to get this without creating it""" + raise NotImplementedError + + def script(self, name): + return self.script_dir / "{}{}".format(name, self.suffix) + + +@add_metaclass(ABCMeta) +class Python2Supports(Describe): + @classmethod + def can_describe(cls, interpreter): + return interpreter.version_info.major == 2 and super(Python2Supports, cls).can_describe(interpreter) + + +@add_metaclass(ABCMeta) +class Python3Supports(Describe): + @classmethod + def can_describe(cls, interpreter): + return interpreter.version_info.major == 3 and super(Python3Supports, cls).can_describe(interpreter) + + +@add_metaclass(ABCMeta) +class PosixSupports(Describe): + @classmethod + def can_describe(cls, interpreter): + return interpreter.os == "posix" and super(PosixSupports, cls).can_describe(interpreter) + + +@add_metaclass(ABCMeta) +class WindowsSupports(Describe): + @classmethod + def can_describe(cls, interpreter): + return interpreter.os == "nt" and super(WindowsSupports, cls).can_describe(interpreter) diff --git a/venv/Lib/site-packages/virtualenv/create/pyenv_cfg.py b/venv/Lib/site-packages/virtualenv/create/pyenv_cfg.py new file mode 100644 index 00000000..1a8d8244 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/pyenv_cfg.py @@ -0,0 +1,61 @@ +from __future__ import absolute_import, unicode_literals + +import logging +from collections import OrderedDict + +from virtualenv.util.six import ensure_text + + +class PyEnvCfg(object): + def __init__(self, content, path): + self.content = content + self.path = path + + @classmethod + def from_folder(cls, folder): + return cls.from_file(folder / "pyvenv.cfg") + + @classmethod + def from_file(cls, path): + content = cls._read_values(path) if path.exists() else OrderedDict() + return PyEnvCfg(content, path) + + @staticmethod + def _read_values(path): + content = OrderedDict() + for line in path.read_text(encoding="utf-8").splitlines(): + equals_at = line.index("=") + key = line[:equals_at].strip() + value = line[equals_at + 1 :].strip() + content[key] = value + return content + + def write(self): + logging.debug("write %s", ensure_text(str(self.path))) + text = "" + for key, value in self.content.items(): + line = "{} = {}".format(key, value) + logging.debug("\t%s", line) + text += line + text += "\n" + self.path.write_text(text, encoding="utf-8") + + def refresh(self): + self.content = self._read_values(self.path) + return self.content + + def __setitem__(self, key, value): + self.content[key] = value + + def __getitem__(self, key): + return self.content[key] + + def __contains__(self, item): + return item in self.content + + def update(self, other): + self.content.update(other) + return self + + def __repr__(self): + return "{}(path={})".format(self.__class__.__name__, self.path) diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/__init__.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/_virtualenv.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/_virtualenv.py new file mode 100644 index 00000000..31f9b81b --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/_virtualenv.py @@ -0,0 +1,130 @@ +"""Patches that are applied at runtime to the virtual environment""" +# -*- coding: utf-8 -*- + +import os +import sys + +VIRTUALENV_PATCH_FILE = os.path.join(__file__) + + +def patch_dist(dist): + """ + Distutils allows user to configure some arguments via a configuration file: + https://docs.python.org/3/install/index.html#distutils-configuration-files + + Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up. + """ + # we cannot allow some install config as that would get packages installed outside of the virtual environment + old_parse_config_files = dist.Distribution.parse_config_files + + def parse_config_files(self, *args, **kwargs): + result = old_parse_config_files(self, *args, **kwargs) + install = self.get_option_dict("install") + + if "prefix" in install: # the prefix governs where to install the libraries + install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix) + for base in ("purelib", "platlib", "headers", "scripts", "data"): + key = "install_{}".format(base) + if key in install: # do not allow global configs to hijack venv paths + install.pop(key, None) + return result + + dist.Distribution.parse_config_files = parse_config_files + + +# Import hook that patches some modules to ignore configuration values that break package installation in case +# of virtual environments. +_DISTUTILS_PATCH = "distutils.dist", "setuptools.dist" +if sys.version_info > (3, 4): + # https://docs.python.org/3/library/importlib.html#setting-up-an-importer + from importlib.abc import MetaPathFinder + from importlib.util import find_spec + from functools import partial + + class _Finder(MetaPathFinder): + """A meta path finder that allows patching the imported distutils modules""" + + fullname = None + + # lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup, + # because there are gevent-based applications that need to be first to import threading by themselves. + # See https://github.com/pypa/virtualenv/issues/1895 for details. + lock = [] + + def find_spec(self, fullname, path, target=None): + if fullname in _DISTUTILS_PATCH and self.fullname is None: + # initialize lock[0] lazily + if len(self.lock) == 0: + import threading + + lock = threading.Lock() + # there is possibility that two threads T1 and T2 are simultaneously running into find_spec, + # observing .lock as empty, and further going into hereby initialization. However due to the GIL, + # list.append() operation is atomic and this way only one of the threads will "win" to put the lock + # - that every thread will use - into .lock[0]. + # https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe + self.lock.append(lock) + + with self.lock[0]: + self.fullname = fullname + try: + spec = find_spec(fullname, path) + if spec is not None: + # https://www.python.org/dev/peps/pep-0451/#how-loading-will-work + is_new_api = hasattr(spec.loader, "exec_module") + func_name = "exec_module" if is_new_api else "load_module" + old = getattr(spec.loader, func_name) + func = self.exec_module if is_new_api else self.load_module + if old is not func: + try: + setattr(spec.loader, func_name, partial(func, old)) + except AttributeError: + pass # C-Extension loaders are r/o such as zipimporter with ver >= (3, 7) or (3, 8, 3) > ver >= (3, 8)) + + +class CPython3Windows(CPythonWindows, CPython3): + """""" + + @classmethod + def setup_meta(cls, interpreter): + if is_store_python(interpreter): # store python is not supported here + return None + return super(CPython3Windows, cls).setup_meta(interpreter) + + @classmethod + def sources(cls, interpreter): + for src in super(CPython3Windows, cls).sources(interpreter): + yield src + for src in cls.include_dll_and_pyd(interpreter): + yield src + + @classmethod + def include_dll_and_pyd(cls, interpreter): + dll_folder = Path(interpreter.system_prefix) / "DLLs" + host_exe_folder = Path(interpreter.system_executable).parent + for folder in [host_exe_folder, dll_folder]: + for file in folder.iterdir(): + if file.suffix in (".pyd", ".dll"): + yield PathRefToDest(file, dest=cls.to_dll_and_pyd) + + def to_dll_and_pyd(self, src): + return self.bin_dir / src.name diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/mac_os.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/mac_os.py new file mode 100644 index 00000000..6dc3ba4e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/cpython/mac_os.py @@ -0,0 +1,297 @@ +# -*- coding: utf-8 -*- +"""The Apple Framework builds require their own customization""" +import logging +import os +import struct +import subprocess +from abc import ABCMeta, abstractmethod +from textwrap import dedent + +from six import add_metaclass + +from virtualenv.create.via_global_ref.builtin.ref import ExePathRefToDest, PathRefToDest +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_text + +from .common import CPython, CPythonPosix, is_mac_os_framework +from .cpython2 import CPython2PosixBase +from .cpython3 import CPython3 + + +@add_metaclass(ABCMeta) +class CPythonmacOsFramework(CPython): + @classmethod + def can_describe(cls, interpreter): + return is_mac_os_framework(interpreter) and super(CPythonmacOsFramework, cls).can_describe(interpreter) + + @classmethod + def sources(cls, interpreter): + for src in super(CPythonmacOsFramework, cls).sources(interpreter): + yield src + # add a symlink to the host python image + ref = PathRefToDest(cls.image_ref(interpreter), dest=lambda self, _: self.dest / ".Python", must_symlink=True) + yield ref + + def create(self): + super(CPythonmacOsFramework, self).create() + + # change the install_name of the copied python executables + target = "@executable_path/../.Python" + current = self.current_mach_o_image_path() + for src in self._sources: + if isinstance(src, ExePathRefToDest): + if src.must_copy or not self.symlinks: + exes = [self.bin_dir / src.base] + if not self.symlinks: + exes.extend(self.bin_dir / a for a in src.aliases) + for exe in exes: + fix_mach_o(str(exe), current, target, self.interpreter.max_size) + + @classmethod + def _executables(cls, interpreter): + for _, targets in super(CPythonmacOsFramework, cls)._executables(interpreter): + # Make sure we use the embedded interpreter inside the framework, even if sys.executable points to the + # stub executable in ${sys.prefix}/bin. + # See http://groups.google.com/group/python-virtualenv/browse_thread/thread/17cab2f85da75951 + fixed_host_exe = Path(interpreter.prefix) / "Resources" / "Python.app" / "Contents" / "MacOS" / "Python" + yield fixed_host_exe, targets + + @abstractmethod + def current_mach_o_image_path(self): + raise NotImplementedError + + @classmethod + def image_ref(cls, interpreter): + raise NotImplementedError + + +class CPython2macOsFramework(CPythonmacOsFramework, CPython2PosixBase): + @classmethod + def image_ref(cls, interpreter): + return Path(interpreter.prefix) / "Python" + + def current_mach_o_image_path(self): + return os.path.join(self.interpreter.prefix, "Python") + + @classmethod + def sources(cls, interpreter): + for src in super(CPython2macOsFramework, cls).sources(interpreter): + yield src + # landmark for exec_prefix + exec_marker_file, to_path, _ = cls.from_stdlib(cls.mappings(interpreter), "lib-dynload") + yield PathRefToDest(exec_marker_file, dest=to_path) + + @property + def reload_code(self): + result = super(CPython2macOsFramework, self).reload_code + result = dedent( + """ + # the bundled site.py always adds the global site package if we're on python framework build, escape this + import sysconfig + config = sysconfig.get_config_vars() + before = config["PYTHONFRAMEWORK"] + try: + config["PYTHONFRAMEWORK"] = "" + {} + finally: + config["PYTHONFRAMEWORK"] = before + """.format( + result, + ), + ) + return result + + +class CPython3macOsFramework(CPythonmacOsFramework, CPython3, CPythonPosix): + @classmethod + def image_ref(cls, interpreter): + return Path(interpreter.prefix) / "Python3" + + def current_mach_o_image_path(self): + return "@executable_path/../../../../Python3" + + @property + def reload_code(self): + result = super(CPython3macOsFramework, self).reload_code + result = dedent( + """ + # the bundled site.py always adds the global site package if we're on python framework build, escape this + import sys + before = sys._framework + try: + sys._framework = None + {} + finally: + sys._framework = before + """.format( + result, + ), + ) + return result + + +def fix_mach_o(exe, current, new, max_size): + """ + https://en.wikipedia.org/wiki/Mach-O + + Mach-O, short for Mach object file format, is a file format for executables, object code, shared libraries, + dynamically-loaded code, and core dumps. A replacement for the a.out format, Mach-O offers more extensibility and + faster access to information in the symbol table. + + Each Mach-O file is made up of one Mach-O header, followed by a series of load commands, followed by one or more + segments, each of which contains between 0 and 255 sections. Mach-O uses the REL relocation format to handle + references to symbols. When looking up symbols Mach-O uses a two-level namespace that encodes each symbol into an + 'object/symbol name' pair that is then linearly searched for by first the object and then the symbol name. + + The basic structure—a list of variable-length "load commands" that reference pages of data elsewhere in the file—was + also used in the executable file format for Accent. The Accent file format was in turn, based on an idea from Spice + Lisp. + + With the introduction of Mac OS X 10.6 platform the Mach-O file underwent a significant modification that causes + binaries compiled on a computer running 10.6 or later to be (by default) executable only on computers running Mac + OS X 10.6 or later. The difference stems from load commands that the dynamic linker, in previous Mac OS X versions, + does not understand. Another significant change to the Mach-O format is the change in how the Link Edit tables + (found in the __LINKEDIT section) function. In 10.6 these new Link Edit tables are compressed by removing unused and + unneeded bits of information, however Mac OS X 10.5 and earlier cannot read this new Link Edit table format. + """ + try: + logging.debug(u"change Mach-O for %s from %s to %s", ensure_text(exe), current, ensure_text(new)) + _builtin_change_mach_o(max_size)(exe, current, new) + except Exception as e: + logging.warning("Could not call _builtin_change_mac_o: %s. " "Trying to call install_name_tool instead.", e) + try: + cmd = ["install_name_tool", "-change", current, new, exe] + subprocess.check_call(cmd) + except Exception: + logging.fatal("Could not call install_name_tool -- you must " "have Apple's development tools installed") + raise + + +def _builtin_change_mach_o(maxint): + MH_MAGIC = 0xFEEDFACE + MH_CIGAM = 0xCEFAEDFE + MH_MAGIC_64 = 0xFEEDFACF + MH_CIGAM_64 = 0xCFFAEDFE + FAT_MAGIC = 0xCAFEBABE + BIG_ENDIAN = ">" + LITTLE_ENDIAN = "<" + LC_LOAD_DYLIB = 0xC + + class FileView(object): + """A proxy for file-like objects that exposes a given view of a file. Modified from macholib.""" + + def __init__(self, file_obj, start=0, size=maxint): + if isinstance(file_obj, FileView): + self._file_obj = file_obj._file_obj + else: + self._file_obj = file_obj + self._start = start + self._end = start + size + self._pos = 0 + + def __repr__(self): + return "".format(self._start, self._end, self._file_obj) + + def tell(self): + return self._pos + + def _checkwindow(self, seek_to, op): + if not (self._start <= seek_to <= self._end): + msg = "{} to offset {:d} is outside window [{:d}, {:d}]".format(op, seek_to, self._start, self._end) + raise IOError(msg) + + def seek(self, offset, whence=0): + seek_to = offset + if whence == os.SEEK_SET: + seek_to += self._start + elif whence == os.SEEK_CUR: + seek_to += self._start + self._pos + elif whence == os.SEEK_END: + seek_to += self._end + else: + raise IOError("Invalid whence argument to seek: {!r}".format(whence)) + self._checkwindow(seek_to, "seek") + self._file_obj.seek(seek_to) + self._pos = seek_to - self._start + + def write(self, content): + here = self._start + self._pos + self._checkwindow(here, "write") + self._checkwindow(here + len(content), "write") + self._file_obj.seek(here, os.SEEK_SET) + self._file_obj.write(content) + self._pos += len(content) + + def read(self, size=maxint): + assert size >= 0 + here = self._start + self._pos + self._checkwindow(here, "read") + size = min(size, self._end - here) + self._file_obj.seek(here, os.SEEK_SET) + read_bytes = self._file_obj.read(size) + self._pos += len(read_bytes) + return read_bytes + + def read_data(file, endian, num=1): + """Read a given number of 32-bits unsigned integers from the given file with the given endianness.""" + res = struct.unpack(endian + "L" * num, file.read(num * 4)) + if len(res) == 1: + return res[0] + return res + + def mach_o_change(at_path, what, value): + """Replace a given name (what) in any LC_LOAD_DYLIB command found in the given binary with a new name (value), + provided it's shorter.""" + + def do_macho(file, bits, endian): + # Read Mach-O header (the magic number is assumed read by the caller) + cpu_type, cpu_sub_type, file_type, n_commands, size_of_commands, flags = read_data(file, endian, 6) + # 64-bits header has one more field. + if bits == 64: + read_data(file, endian) + # The header is followed by n commands + for _ in range(n_commands): + where = file.tell() + # Read command header + cmd, cmd_size = read_data(file, endian, 2) + if cmd == LC_LOAD_DYLIB: + # The first data field in LC_LOAD_DYLIB commands is the offset of the name, starting from the + # beginning of the command. + name_offset = read_data(file, endian) + file.seek(where + name_offset, os.SEEK_SET) + # Read the NUL terminated string + load = file.read(cmd_size - name_offset).decode() + load = load[: load.index("\0")] + # If the string is what is being replaced, overwrite it. + if load == what: + file.seek(where + name_offset, os.SEEK_SET) + file.write(value.encode() + b"\0") + # Seek to the next command + file.seek(where + cmd_size, os.SEEK_SET) + + def do_file(file, offset=0, size=maxint): + file = FileView(file, offset, size) + # Read magic number + magic = read_data(file, BIG_ENDIAN) + if magic == FAT_MAGIC: + # Fat binaries contain nfat_arch Mach-O binaries + n_fat_arch = read_data(file, BIG_ENDIAN) + for _ in range(n_fat_arch): + # Read arch header + cpu_type, cpu_sub_type, offset, size, align = read_data(file, BIG_ENDIAN, 5) + do_file(file, offset, size) + elif magic == MH_MAGIC: + do_macho(file, 32, BIG_ENDIAN) + elif magic == MH_CIGAM: + do_macho(file, 32, LITTLE_ENDIAN) + elif magic == MH_MAGIC_64: + do_macho(file, 64, BIG_ENDIAN) + elif magic == MH_CIGAM_64: + do_macho(file, 64, LITTLE_ENDIAN) + + assert len(what) >= len(value) + + with open(at_path, "r+b") as f: + do_file(f) + + return mach_o_change diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/__init__.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/common.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/common.py new file mode 100644 index 00000000..90da51fe --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/common.py @@ -0,0 +1,52 @@ +from __future__ import absolute_import, unicode_literals + +import abc + +from six import add_metaclass + +from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest +from virtualenv.util.path import Path + +from ..via_global_self_do import ViaGlobalRefVirtualenvBuiltin + + +@add_metaclass(abc.ABCMeta) +class PyPy(ViaGlobalRefVirtualenvBuiltin): + @classmethod + def can_describe(cls, interpreter): + return interpreter.implementation == "PyPy" and super(PyPy, cls).can_describe(interpreter) + + @classmethod + def _executables(cls, interpreter): + host = Path(interpreter.system_executable) + targets = sorted("{}{}".format(name, PyPy.suffix) for name in cls.exe_names(interpreter)) + yield host, targets + + @classmethod + def exe_names(cls, interpreter): + return { + cls.exe_stem(), + "python", + "python{}".format(interpreter.version_info.major), + "python{}.{}".format(*interpreter.version_info), + } + + @classmethod + def sources(cls, interpreter): + for src in super(PyPy, cls).sources(interpreter): + yield src + for host in cls._add_shared_libs(interpreter): + yield PathRefToDest(host, dest=lambda self, s: self.bin_dir / s.name) + + @classmethod + def _add_shared_libs(cls, interpreter): + # https://bitbucket.org/pypy/pypy/issue/1922/future-proofing-virtualenv + python_dir = Path(interpreter.system_executable).resolve().parent + for libname in cls._shared_libs(): + src = python_dir / libname + if src.exists(): + yield src + + @classmethod + def _shared_libs(cls): + raise NotImplementedError diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy2.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy2.py new file mode 100644 index 00000000..020000b3 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy2.py @@ -0,0 +1,121 @@ +from __future__ import absolute_import, unicode_literals + +import abc +import logging +import os + +from six import add_metaclass + +from virtualenv.create.describe import PosixSupports, WindowsSupports +from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest +from virtualenv.util.path import Path + +from ..python2.python2 import Python2 +from .common import PyPy + + +@add_metaclass(abc.ABCMeta) +class PyPy2(PyPy, Python2): + """""" + + @classmethod + def exe_stem(cls): + return "pypy" + + @classmethod + def sources(cls, interpreter): + for src in super(PyPy2, cls).sources(interpreter): + yield src + # include folder needed on Python 2 as we don't have pyenv.cfg + host_include_marker = cls.host_include_marker(interpreter) + if host_include_marker.exists(): + yield PathRefToDest(host_include_marker.parent, dest=lambda self, _: self.include) + + @classmethod + def needs_stdlib_py_module(cls): + return True + + @classmethod + def host_include_marker(cls, interpreter): + return Path(interpreter.system_include) / "PyPy.h" + + @property + def include(self): + return self.dest / self.interpreter.distutils_install["headers"] + + @classmethod + def modules(cls): + # pypy2 uses some modules before the site.py loads, so we need to include these too + return super(PyPy2, cls).modules() + [ + "os", + "copy_reg", + "genericpath", + "linecache", + "stat", + "UserDict", + "warnings", + ] + + @property + def lib_pypy(self): + return self.dest / "lib_pypy" + + def ensure_directories(self): + dirs = super(PyPy2, self).ensure_directories() + dirs.add(self.lib_pypy) + host_include_marker = self.host_include_marker(self.interpreter) + if host_include_marker.exists(): + dirs.add(self.include.parent) + else: + logging.debug("no include folders as can't find include marker %s", host_include_marker) + return dirs + + @property + def skip_rewrite(self): + """ + PyPy2 built-in imports are handled by this path entry, don't overwrite to not disable it + see: https://github.com/pypa/virtualenv/issues/1652 + """ + return 'or path.endswith("lib_pypy{}__extensions__") # PyPy2 built-in import marker'.format(os.sep) + + +class PyPy2Posix(PyPy2, PosixSupports): + """PyPy 2 on POSIX""" + + @classmethod + def modules(cls): + return super(PyPy2Posix, cls).modules() + ["posixpath"] + + @classmethod + def _shared_libs(cls): + return ["libpypy-c.so", "libpypy-c.dylib"] + + @property + def lib(self): + return self.dest / "lib" + + @classmethod + def sources(cls, interpreter): + for src in super(PyPy2Posix, cls).sources(interpreter): + yield src + host_lib = Path(interpreter.system_prefix) / "lib" + if host_lib.exists(): + yield PathRefToDest(host_lib, dest=lambda self, _: self.lib) + + +class Pypy2Windows(PyPy2, WindowsSupports): + """PyPy 2 on Windows""" + + @classmethod + def modules(cls): + return super(Pypy2Windows, cls).modules() + ["ntpath"] + + @classmethod + def _shared_libs(cls): + return ["libpypy-c.dll"] + + @classmethod + def sources(cls, interpreter): + for src in super(Pypy2Windows, cls).sources(interpreter): + yield src + yield PathRefToDest(Path(interpreter.system_prefix) / "libs", dest=lambda self, s: self.dest / s.name) diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy3.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy3.py new file mode 100644 index 00000000..95887067 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/pypy/pypy3.py @@ -0,0 +1,63 @@ +from __future__ import absolute_import, unicode_literals + +import abc + +from six import add_metaclass + +from virtualenv.create.describe import PosixSupports, Python3Supports, WindowsSupports +from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest +from virtualenv.util.path import Path + +from .common import PyPy + + +@add_metaclass(abc.ABCMeta) +class PyPy3(PyPy, Python3Supports): + @classmethod + def exe_stem(cls): + return "pypy3" + + @property + def stdlib(self): + """ + PyPy3 seems to respect sysconfig only for the host python... + virtual environments purelib is instead lib/pythonx.y + """ + return self.dest / "lib" / "python{}".format(self.interpreter.version_release_str) / "site-packages" + + @classmethod + def exe_names(cls, interpreter): + return super(PyPy3, cls).exe_names(interpreter) | {"pypy"} + + +class PyPy3Posix(PyPy3, PosixSupports): + """PyPy 2 on POSIX""" + + @classmethod + def _shared_libs(cls): + return ["libpypy3-c.so", "libpypy3-c.dylib"] + + def to_lib(self, src): + return self.dest / "lib" / src.name + + @classmethod + def sources(cls, interpreter): + for src in super(PyPy3Posix, cls).sources(interpreter): + yield src + host_lib = Path(interpreter.system_prefix) / "lib" + if host_lib.exists() and host_lib.is_dir(): + for path in host_lib.iterdir(): + yield PathRefToDest(path, dest=cls.to_lib) + + +class Pypy3Windows(PyPy3, WindowsSupports): + """PyPy 2 on Windows""" + + @property + def bin_dir(self): + """PyPy3 needs to fallback to pypy definition""" + return self.dest / "Scripts" + + @classmethod + def _shared_libs(cls): + return ["libpypy3-c.dll"] diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/__init__.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py new file mode 100644 index 00000000..cacd56ec --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py @@ -0,0 +1,111 @@ +from __future__ import absolute_import, unicode_literals + +import abc +import json +import os + +from six import add_metaclass + +from virtualenv.create.describe import Python2Supports +from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest +from virtualenv.info import IS_ZIPAPP +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_text +from virtualenv.util.zipapp import read as read_from_zipapp + +from ..via_global_self_do import ViaGlobalRefVirtualenvBuiltin + +HERE = Path(os.path.abspath(__file__)).parent + + +@add_metaclass(abc.ABCMeta) +class Python2(ViaGlobalRefVirtualenvBuiltin, Python2Supports): + def create(self): + """Perform operations needed to make the created environment work on Python 2""" + super(Python2, self).create() + # install a patched site-package, the default Python 2 site.py is not smart enough to understand pyvenv.cfg, + # so we inject a small shim that can do this, the location of this depends where it's on host + sys_std_plat = Path(self.interpreter.system_stdlib_platform) + site_py_in = ( + self.stdlib_platform + if ((sys_std_plat / "site.py").exists() or (sys_std_plat / "site.pyc").exists()) + else self.stdlib + ) + site_py = site_py_in / "site.py" + + custom_site = get_custom_site() + if IS_ZIPAPP: + custom_site_text = read_from_zipapp(custom_site) + else: + custom_site_text = custom_site.read_text() + expected = json.dumps([os.path.relpath(ensure_text(str(i)), ensure_text(str(site_py))) for i in self.libs]) + + custom_site_text = custom_site_text.replace("___EXPECTED_SITE_PACKAGES___", expected) + + reload_code = os.linesep.join(" {}".format(i) for i in self.reload_code.splitlines()).lstrip() + custom_site_text = custom_site_text.replace("# ___RELOAD_CODE___", reload_code) + + skip_rewrite = os.linesep.join(" {}".format(i) for i in self.skip_rewrite.splitlines()).lstrip() + custom_site_text = custom_site_text.replace("# ___SKIP_REWRITE____", skip_rewrite) + + site_py.write_text(custom_site_text) + + @property + def reload_code(self): + return 'reload(sys.modules["site"]) # noqa # call system site.py to setup import libraries' + + @property + def skip_rewrite(self): + return "" + + @classmethod + def sources(cls, interpreter): + for src in super(Python2, cls).sources(interpreter): + yield src + # install files needed to run site.py, either from stdlib or stdlib_platform, at least pyc, but both if exists + # if neither exists return the module file to trigger failure + mappings, needs_py_module = ( + cls.mappings(interpreter), + cls.needs_stdlib_py_module(), + ) + for req in cls.modules(): + module_file, to_module, module_exists = cls.from_stdlib(mappings, "{}.py".format(req)) + compiled_file, to_compiled, compiled_exists = cls.from_stdlib(mappings, "{}.pyc".format(req)) + if needs_py_module or module_exists or not compiled_exists: + yield PathRefToDest(module_file, dest=to_module) + if compiled_exists: + yield PathRefToDest(compiled_file, dest=to_compiled) + + @staticmethod + def from_stdlib(mappings, name): + for from_std, to_std in mappings: + src = from_std / name + if src.exists(): + return src, to_std, True + # if not exists, fallback to first in list + return mappings[0][0] / name, mappings[0][1], False + + @classmethod + def mappings(cls, interpreter): + mappings = [(Path(interpreter.system_stdlib_platform), cls.to_stdlib_platform)] + if interpreter.system_stdlib_platform != interpreter.system_stdlib: + mappings.append((Path(interpreter.system_stdlib), cls.to_stdlib)) + return mappings + + def to_stdlib(self, src): + return self.stdlib / src.name + + def to_stdlib_platform(self, src): + return self.stdlib_platform / src.name + + @classmethod + def needs_stdlib_py_module(cls): + raise NotImplementedError + + @classmethod + def modules(cls): + return [] + + +def get_custom_site(): + return HERE / "site.py" diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/site.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/site.py new file mode 100644 index 00000000..366908e7 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/python2/site.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +""" +A simple shim module to fix up things on Python 2 only. + +Note: until we setup correctly the paths we can only import built-ins. +""" +import sys + + +def main(): + """Patch what needed, and invoke the original site.py""" + config = read_pyvenv() + sys.real_prefix = sys.base_prefix = config["base-prefix"] + sys.base_exec_prefix = config["base-exec-prefix"] + sys.base_executable = config["base-executable"] + global_site_package_enabled = config.get("include-system-site-packages", False) == "true" + rewrite_standard_library_sys_path() + disable_user_site_package() + load_host_site() + if global_site_package_enabled: + add_global_site_package() + + +def load_host_site(): + """trigger reload of site.py - now it will use the standard library instance that will take care of init""" + # we have a duality here, we generate the platform and pure library path based on what distutils.install specifies + # because this is what pip will be using; the host site.py though may contain it's own pattern for where the + # platform and pure library paths should exist + + # notably on Ubuntu there's a patch for getsitepackages to point to + # - prefix + local/lib/pythonx.y/dist-packages + # - prefix + lib/pythonx.y/dist-packages + # while distutils.install.cmd still points both of these to + # - prefix + lib/python2.7/site-packages + + # to facilitate when the two match, or not we first reload the site.py, now triggering the import of host site.py, + # as this will ensure that initialization code within host site.py runs + + here = __file__ # the distutils.install patterns will be injected relative to this site.py, save it here + + # ___RELOAD_CODE___ + + # and then if the distutils site packages are not on the sys.path we add them via add_site_dir; note we must add + # them by invoking add_site_dir to trigger the processing of pth files + import os + + site_packages = r""" + ___EXPECTED_SITE_PACKAGES___ + """ + import json + + add_site_dir = sys.modules["site"].addsitedir + for path in json.loads(site_packages): + full_path = os.path.abspath(os.path.join(here, path.encode("utf-8"))) + if full_path not in sys.path: + add_site_dir(full_path) + + +sep = "\\" if sys.platform == "win32" else "/" # no os module here yet - poor mans version + + +def read_pyvenv(): + """read pyvenv.cfg""" + config_file = "{}{}pyvenv.cfg".format(sys.prefix, sep) + with open(config_file) as file_handler: + lines = file_handler.readlines() + config = {} + for line in lines: + try: + split_at = line.index("=") + except ValueError: + continue # ignore bad/empty lines + else: + config[line[:split_at].strip()] = line[split_at + 1 :].strip() + return config + + +def rewrite_standard_library_sys_path(): + """Once this site file is loaded the standard library paths have already been set, fix them up""" + exe, prefix, exec_prefix = get_exe_prefixes(base=False) + base_exe, base_prefix, base_exec = get_exe_prefixes(base=True) + exe_dir = exe[: exe.rfind(sep)] + for at, path in enumerate(sys.path): + path = abs_path(path) # replace old sys prefix path starts with new + skip_rewrite = path == exe_dir # don't fix the current executable location, notably on Windows this gets added + skip_rewrite = skip_rewrite # ___SKIP_REWRITE____ + if not skip_rewrite: + sys.path[at] = map_path(path, base_exe, exe_dir, exec_prefix, base_prefix, prefix, base_exec) + + # the rewrite above may have changed elements from PYTHONPATH, revert these if on + if sys.flags.ignore_environment: + return + import os + + python_paths = [] + if "PYTHONPATH" in os.environ and os.environ["PYTHONPATH"]: + for path in os.environ["PYTHONPATH"].split(os.pathsep): + if path not in python_paths: + python_paths.append(path) + sys.path[: len(python_paths)] = python_paths + + +def get_exe_prefixes(base=False): + return tuple(abs_path(getattr(sys, ("base_" if base else "") + i)) for i in ("executable", "prefix", "exec_prefix")) + + +def abs_path(value): + values, keep = value.split(sep), [] + at = len(values) - 1 + while at >= 0: + if values[at] == "..": + at -= 1 + else: + keep.append(values[at]) + at -= 1 + return sep.join(keep[::-1]) + + +def map_path(path, base_executable, exe_dir, exec_prefix, base_prefix, prefix, base_exec_prefix): + if path_starts_with(path, exe_dir): + # content inside the exe folder needs to remap to original executables folder + orig_exe_folder = base_executable[: base_executable.rfind(sep)] + return "{}{}".format(orig_exe_folder, path[len(exe_dir) :]) + elif path_starts_with(path, prefix): + return "{}{}".format(base_prefix, path[len(prefix) :]) + elif path_starts_with(path, exec_prefix): + return "{}{}".format(base_exec_prefix, path[len(exec_prefix) :]) + return path + + +def path_starts_with(directory, value): + return directory.startswith(value if value[-1] == sep else value + sep) + + +def disable_user_site_package(): + """Flip the switch on enable user site package""" + # sys.flags is a c-extension type, so we cannot monkeypatch it, replace it with a python class to flip it + sys.original_flags = sys.flags + + class Flags(object): + def __init__(self): + self.__dict__ = {key: getattr(sys.flags, key) for key in dir(sys.flags) if not key.startswith("_")} + + sys.flags = Flags() + sys.flags.no_user_site = 1 + + +def add_global_site_package(): + """add the global site package""" + import site + + # add user site package + sys.flags = sys.original_flags # restore original + site.ENABLE_USER_SITE = None # reset user site check + # add the global site package to the path - use new prefix and delegate to site.py + orig_prefixes = None + try: + orig_prefixes = site.PREFIXES + site.PREFIXES = [sys.base_prefix, sys.base_exec_prefix] + site.main() + finally: + site.PREFIXES = orig_prefixes + + +main() diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/ref.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/ref.py new file mode 100644 index 00000000..263da3b1 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/ref.py @@ -0,0 +1,163 @@ +""" +Virtual environments in the traditional sense are built as reference to the host python. This file allows declarative +references to elements on the file system, allowing our system to automatically detect what modes it can support given +the constraints: e.g. can the file system symlink, can the files be read, executed, etc. +""" +from __future__ import absolute_import, unicode_literals + +import os +from abc import ABCMeta, abstractmethod +from collections import OrderedDict +from stat import S_IXGRP, S_IXOTH, S_IXUSR + +from six import add_metaclass + +from virtualenv.info import fs_is_case_sensitive, fs_supports_symlink +from virtualenv.util.path import copy, make_exe, symlink +from virtualenv.util.six import ensure_text + + +@add_metaclass(ABCMeta) +class PathRef(object): + """Base class that checks if a file reference can be symlink/copied""" + + FS_SUPPORTS_SYMLINK = fs_supports_symlink() + FS_CASE_SENSITIVE = fs_is_case_sensitive() + + def __init__(self, src, must_symlink, must_copy): + self.must_symlink = must_symlink + self.must_copy = must_copy + self.src = src + try: + self.exists = src.exists() + except OSError: + self.exists = False + self._can_read = None if self.exists else False + self._can_copy = None if self.exists else False + self._can_symlink = None if self.exists else False + if self.must_copy is True and self.must_symlink is True: + raise ValueError("can copy and symlink at the same time") + + def __repr__(self): + return "{}(src={})".format(self.__class__.__name__, self.src) + + @property + def can_read(self): + if self._can_read is None: + if self.src.is_file(): + try: + with self.src.open("rb"): + self._can_read = True + except OSError: + self._can_read = False + else: + self._can_read = os.access(ensure_text(str(self.src)), os.R_OK) + return self._can_read + + @property + def can_copy(self): + if self._can_copy is None: + if self.must_symlink: + self._can_copy = self.can_symlink + else: + self._can_copy = self.can_read + return self._can_copy + + @property + def can_symlink(self): + if self._can_symlink is None: + if self.must_copy: + self._can_symlink = self.can_copy + else: + self._can_symlink = self.FS_SUPPORTS_SYMLINK and self.can_read + return self._can_symlink + + @abstractmethod + def run(self, creator, symlinks): + raise NotImplementedError + + def method(self, symlinks): + if self.must_symlink: + return symlink + if self.must_copy: + return copy + return symlink if symlinks else copy + + +@add_metaclass(ABCMeta) +class ExePathRef(PathRef): + """Base class that checks if a executable can be references via symlink/copy""" + + def __init__(self, src, must_symlink, must_copy): + super(ExePathRef, self).__init__(src, must_symlink, must_copy) + self._can_run = None + + @property + def can_symlink(self): + if self.FS_SUPPORTS_SYMLINK: + return self.can_run + return False + + @property + def can_run(self): + if self._can_run is None: + mode = self.src.stat().st_mode + for key in [S_IXUSR, S_IXGRP, S_IXOTH]: + if mode & key: + self._can_run = True + break + else: + self._can_run = False + return self._can_run + + +class PathRefToDest(PathRef): + """Link a path on the file system""" + + def __init__(self, src, dest, must_symlink=False, must_copy=False): + super(PathRefToDest, self).__init__(src, must_symlink, must_copy) + self.dest = dest + + def run(self, creator, symlinks): + dest = self.dest(creator, self.src) + method = self.method(symlinks) + dest_iterable = dest if isinstance(dest, list) else (dest,) + if not dest.parent.exists(): + dest.parent.mkdir(parents=True, exist_ok=True) + for dst in dest_iterable: + method(self.src, dst) + + +class ExePathRefToDest(PathRefToDest, ExePathRef): + """Link a exe path on the file system""" + + def __init__(self, src, targets, dest, must_symlink=False, must_copy=False): + ExePathRef.__init__(self, src, must_symlink, must_copy) + PathRefToDest.__init__(self, src, dest, must_symlink, must_copy) + if not self.FS_CASE_SENSITIVE: + targets = list(OrderedDict((i.lower(), None) for i in targets).keys()) + self.base = targets[0] + self.aliases = targets[1:] + self.dest = dest + self.must_copy = must_copy + + def run(self, creator, symlinks): + bin_dir = self.dest(creator, self.src).parent + dest = bin_dir / self.base + method = self.method(symlinks) + method(self.src, dest) + if not symlinks: + make_exe(dest) + for extra in self.aliases: + link_file = bin_dir / extra + if link_file.exists(): + link_file.unlink() + if symlinks: + link_file.symlink_to(self.base) + else: + copy(self.src, link_file) + if not symlinks: + make_exe(link_file) + + def __repr__(self): + return "{}(src={}, alias={})".format(self.__class__.__name__, self.src, self.aliases) diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py new file mode 100644 index 00000000..338f5d18 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py @@ -0,0 +1,99 @@ +from __future__ import absolute_import, unicode_literals + +from abc import ABCMeta + +from six import add_metaclass + +from virtualenv.create.via_global_ref.builtin.ref import ExePathRefToDest +from virtualenv.util.path import ensure_dir + +from ..api import ViaGlobalRefApi, ViaGlobalRefMeta +from .builtin_way import VirtualenvBuiltin + + +class BuiltinViaGlobalRefMeta(ViaGlobalRefMeta): + def __init__(self): + super(BuiltinViaGlobalRefMeta, self).__init__() + self.sources = [] + + +@add_metaclass(ABCMeta) +class ViaGlobalRefVirtualenvBuiltin(ViaGlobalRefApi, VirtualenvBuiltin): + def __init__(self, options, interpreter): + super(ViaGlobalRefVirtualenvBuiltin, self).__init__(options, interpreter) + self._sources = getattr(options.meta, "sources", None) # if we're created as a describer this might be missing + + @classmethod + def can_create(cls, interpreter): + """By default all built-in methods assume that if we can describe it we can create it""" + # first we must be able to describe it + if cls.can_describe(interpreter): + meta = cls.setup_meta(interpreter) + if meta is not None and meta: + for src in cls.sources(interpreter): + if src.exists: + if meta.can_copy and not src.can_copy: + meta.copy_error = "cannot copy {}".format(src) + if meta.can_symlink and not src.can_symlink: + meta.symlink_error = "cannot symlink {}".format(src) + if not meta.can_copy and not meta.can_symlink: + meta.error = "neither copy or symlink supported, copy: {} symlink: {}".format( + meta.copy_error, meta.symlink_error, + ) + else: + meta.error = "missing required file {}".format(src) + if meta.error: + break + meta.sources.append(src) + return meta + return None + + @classmethod + def setup_meta(cls, interpreter): + return BuiltinViaGlobalRefMeta() + + @classmethod + def sources(cls, interpreter): + is_py2 = interpreter.version_info.major == 2 + for host_exe, targets in cls._executables(interpreter): + yield ExePathRefToDest(host_exe, dest=cls.to_bin, targets=targets, must_copy=is_py2) + + def to_bin(self, src): + return self.bin_dir / src.name + + @classmethod + def _executables(cls, interpreter): + raise NotImplementedError + + def create(self): + dirs = self.ensure_directories() + for directory in list(dirs): + if any(i for i in dirs if i is not directory and directory.parts == i.parts[: len(directory.parts)]): + dirs.remove(directory) + for directory in sorted(dirs): + ensure_dir(directory) + + self.set_pyenv_cfg() + self.pyenv_cfg.write() + true_system_site = self.enable_system_site_package + try: + self.enable_system_site_package = False + for src in self._sources: + src.run(self, self.symlinks) + finally: + if true_system_site != self.enable_system_site_package: + self.enable_system_site_package = true_system_site + super(ViaGlobalRefVirtualenvBuiltin, self).create() + + def ensure_directories(self): + return {self.dest, self.bin_dir, self.script_dir, self.stdlib} | set(self.libs) + + def set_pyenv_cfg(self): + """ + We directly inject the base prefix and base exec prefix to avoid site.py needing to discover these + from home (which usually is done within the interpreter itself) + """ + super(ViaGlobalRefVirtualenvBuiltin, self).set_pyenv_cfg() + self.pyenv_cfg["base-prefix"] = self.interpreter.system_prefix + self.pyenv_cfg["base-exec-prefix"] = self.interpreter.system_exec_prefix + self.pyenv_cfg["base-executable"] = self.interpreter.system_executable diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/store.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/store.py new file mode 100644 index 00000000..134a5358 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/store.py @@ -0,0 +1,26 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.util.path import Path + + +def handle_store_python(meta, interpreter): + if is_store_python(interpreter): + meta.symlink_error = "Windows Store Python does not support virtual environments via symlink" + return meta + + +def is_store_python(interpreter): + parts = Path(interpreter.system_executable).parts + return ( + len(parts) > 4 + and parts[-4] == "Microsoft" + and parts[-3] == "WindowsApps" + and parts[-2].startswith("PythonSoftwareFoundation.Python.3.") + and parts[-1].startswith("python") + ) + + +__all__ = ( + "handle_store_python", + "is_store_python", +) diff --git a/venv/Lib/site-packages/virtualenv/create/via_global_ref/venv.py b/venv/Lib/site-packages/virtualenv/create/via_global_ref/venv.py new file mode 100644 index 00000000..4a4ed770 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/create/via_global_ref/venv.py @@ -0,0 +1,80 @@ +from __future__ import absolute_import, unicode_literals + +import logging +from copy import copy + +from virtualenv.create.via_global_ref.store import handle_store_python +from virtualenv.discovery.py_info import PythonInfo +from virtualenv.util.error import ProcessCallFailed +from virtualenv.util.path import ensure_dir +from virtualenv.util.subprocess import run_cmd + +from .api import ViaGlobalRefApi, ViaGlobalRefMeta + + +class Venv(ViaGlobalRefApi): + def __init__(self, options, interpreter): + self.describe = options.describe + super(Venv, self).__init__(options, interpreter) + self.can_be_inline = ( + interpreter is PythonInfo.current() and interpreter.executable == interpreter.system_executable + ) + self._context = None + + def _args(self): + return super(Venv, self)._args() + ([("describe", self.describe.__class__.__name__)] if self.describe else []) + + @classmethod + def can_create(cls, interpreter): + if interpreter.has_venv: + meta = ViaGlobalRefMeta() + if interpreter.platform == "win32" and interpreter.version_info.major == 3: + meta = handle_store_python(meta, interpreter) + return meta + return None + + def create(self): + if self.can_be_inline: + self.create_inline() + else: + self.create_via_sub_process() + for lib in self.libs: + ensure_dir(lib) + super(Venv, self).create() + + def create_inline(self): + from venv import EnvBuilder + + builder = EnvBuilder( + system_site_packages=self.enable_system_site_package, clear=False, symlinks=self.symlinks, with_pip=False, + ) + builder.create(str(self.dest)) + + def create_via_sub_process(self): + cmd = self.get_host_create_cmd() + logging.info("using host built-in venv to create via %s", " ".join(cmd)) + code, out, err = run_cmd(cmd) + if code != 0: + raise ProcessCallFailed(code, out, err, cmd) + + def get_host_create_cmd(self): + cmd = [self.interpreter.system_executable, "-m", "venv", "--without-pip"] + if self.enable_system_site_package: + cmd.append("--system-site-packages") + cmd.append("--symlinks" if self.symlinks else "--copies") + cmd.append(str(self.dest)) + return cmd + + def set_pyenv_cfg(self): + # prefer venv options over ours, but keep our extra + venv_content = copy(self.pyenv_cfg.refresh()) + super(Venv, self).set_pyenv_cfg() + self.pyenv_cfg.update(venv_content) + + def __getattribute__(self, item): + describe = object.__getattribute__(self, "describe") + if describe is not None and hasattr(describe, item): + element = getattr(describe, item) + if not callable(element) or item in ("script",): + return element + return object.__getattribute__(self, item) diff --git a/venv/Lib/site-packages/virtualenv/discovery/__init__.py b/venv/Lib/site-packages/virtualenv/discovery/__init__.py new file mode 100644 index 00000000..01e6d4f4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import, unicode_literals diff --git a/venv/Lib/site-packages/virtualenv/discovery/builtin.py b/venv/Lib/site-packages/virtualenv/discovery/builtin.py new file mode 100644 index 00000000..4d57fa58 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/builtin.py @@ -0,0 +1,155 @@ +from __future__ import absolute_import, unicode_literals + +import logging +import os +import sys + +from virtualenv.info import IS_WIN +from virtualenv.util.six import ensure_str, ensure_text + +from .discover import Discover +from .py_info import PythonInfo +from .py_spec import PythonSpec + + +class Builtin(Discover): + def __init__(self, options): + super(Builtin, self).__init__(options) + self.python_spec = options.python + self.app_data = options.app_data + + @classmethod + def add_parser_arguments(cls, parser): + parser.add_argument( + "-p", + "--python", + dest="python", + metavar="py", + help="target interpreter for which to create a virtual (either absolute path or identifier string)", + default=sys.executable, + ) + + def run(self): + return get_interpreter(self.python_spec, self.app_data) + + def __repr__(self): + return ensure_str(self.__unicode__()) + + def __unicode__(self): + return "{} discover of python_spec={!r}".format(self.__class__.__name__, self.python_spec) + + +def get_interpreter(key, app_data=None): + spec = PythonSpec.from_string_spec(key) + logging.info("find interpreter for spec %r", spec) + proposed_paths = set() + for interpreter, impl_must_match in propose_interpreters(spec, app_data): + key = interpreter.system_executable, impl_must_match + if key in proposed_paths: + continue + logging.info("proposed %s", interpreter) + if interpreter.satisfies(spec, impl_must_match): + logging.debug("accepted %s", interpreter) + return interpreter + proposed_paths.add(key) + + +def propose_interpreters(spec, app_data): + # 1. if it's a path and exists + if spec.path is not None: + try: + os.lstat(spec.path) # Windows Store Python does not work with os.path.exists, but does for os.lstat + except OSError: + if spec.is_abs: + raise + else: + yield PythonInfo.from_exe(os.path.abspath(spec.path), app_data), True + if spec.is_abs: + return + else: + # 2. otherwise try with the current + yield PythonInfo.current_system(app_data), True + + # 3. otherwise fallback to platform default logic + if IS_WIN: + from .windows import propose_interpreters + + for interpreter in propose_interpreters(spec, app_data): + yield interpreter, True + # finally just find on path, the path order matters (as the candidates are less easy to control by end user) + paths = get_paths() + tested_exes = set() + for pos, path in enumerate(paths): + path = ensure_text(path) + logging.debug(LazyPathDump(pos, path)) + for candidate, match in possible_specs(spec): + found = check_path(candidate, path) + if found is not None: + exe = os.path.abspath(found) + if exe not in tested_exes: + tested_exes.add(exe) + interpreter = PathPythonInfo.from_exe(exe, app_data, raise_on_error=False) + if interpreter is not None: + yield interpreter, match + + +def get_paths(): + path = os.environ.get(str("PATH"), None) + if path is None: + try: + path = os.confstr("CS_PATH") + except (AttributeError, ValueError): + path = os.defpath + if not path: + paths = [] + else: + paths = [p for p in path.split(os.pathsep) if os.path.exists(p)] + return paths + + +class LazyPathDump(object): + def __init__(self, pos, path): + self.pos = pos + self.path = path + + def __repr__(self): + return ensure_str(self.__unicode__()) + + def __unicode__(self): + content = "discover PATH[{}]={}".format(self.pos, self.path) + if os.environ.get(str("_VIRTUALENV_DEBUG")): # this is the over the board debug + content += " with =>" + for file_name in os.listdir(self.path): + try: + file_path = os.path.join(self.path, file_name) + if os.path.isdir(file_path) or not os.access(file_path, os.X_OK): + continue + except OSError: + pass + content += " " + content += file_name + return content + + +def check_path(candidate, path): + _, ext = os.path.splitext(candidate) + if sys.platform == "win32" and ext != ".exe": + candidate = candidate + ".exe" + if os.path.isfile(candidate): + return candidate + candidate = os.path.join(path, candidate) + if os.path.isfile(candidate): + return candidate + return None + + +def possible_specs(spec): + # 4. then maybe it's something exact on PATH - if it was direct lookup implementation no longer counts + yield spec.str_spec, False + # 5. or from the spec we can deduce a name on path that matches + for exe, match in spec.generate_names(): + yield exe, match + + +class PathPythonInfo(PythonInfo): + """""" diff --git a/venv/Lib/site-packages/virtualenv/discovery/cached_py_info.py b/venv/Lib/site-packages/virtualenv/discovery/cached_py_info.py new file mode 100644 index 00000000..13a213d7 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/cached_py_info.py @@ -0,0 +1,145 @@ +""" + +We acquire the python information by running an interrogation script via subprocess trigger. This operation is not +cheap, especially not on Windows. To not have to pay this hefty cost every time we apply multiple levels of +caching. +""" +from __future__ import absolute_import, unicode_literals + +import logging +import os +import pipes +import sys +from collections import OrderedDict + +from virtualenv.app_data import AppDataDisabled +from virtualenv.discovery.py_info import PythonInfo +from virtualenv.info import PY2 +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_text +from virtualenv.util.subprocess import Popen, subprocess + +_CACHE = OrderedDict() +_CACHE[Path(sys.executable)] = PythonInfo() + + +def from_exe(cls, app_data, exe, raise_on_error=True, ignore_cache=False): + """""" + result = _get_from_cache(cls, app_data, exe, ignore_cache=ignore_cache) + if isinstance(result, Exception): + if raise_on_error: + raise result + else: + logging.info("%s", str(result)) + result = None + return result + + +def _get_from_cache(cls, app_data, exe, ignore_cache=True): + # note here we cannot resolve symlinks, as the symlink may trigger different prefix information if there's a + # pyenv.cfg somewhere alongside on python3.4+ + exe_path = Path(exe) + if not ignore_cache and exe_path in _CACHE: # check in the in-memory cache + result = _CACHE[exe_path] + else: # otherwise go through the app data cache + py_info = _get_via_file_cache(cls, app_data, exe_path, exe) + result = _CACHE[exe_path] = py_info + # independent if it was from the file or in-memory cache fix the original executable location + if isinstance(result, PythonInfo): + result.executable = exe + return result + + +def _get_via_file_cache(cls, app_data, path, exe): + path_text = ensure_text(str(path)) + try: + path_modified = path.stat().st_mtime + except OSError: + path_modified = -1 + if app_data is None: + app_data = AppDataDisabled() + py_info, py_info_store = None, app_data.py_info(path) + with py_info_store.locked(): + if py_info_store.exists(): # if exists and matches load + data = py_info_store.read() + of_path, of_st_mtime, of_content = data["path"], data["st_mtime"], data["content"] + if of_path == path_text and of_st_mtime == path_modified: + py_info = cls._from_dict({k: v for k, v in of_content.items()}) + else: + py_info_store.remove() + if py_info is None: # if not loaded run and save + failure, py_info = _run_subprocess(cls, exe, app_data) + if failure is None: + data = {"st_mtime": path_modified, "path": path_text, "content": py_info._to_dict()} + py_info_store.write(data) + else: + py_info = failure + return py_info + + +def _run_subprocess(cls, exe, app_data): + py_info_script = Path(os.path.abspath(__file__)).parent / "py_info.py" + with app_data.ensure_extracted(py_info_script) as py_info_script: + cmd = [exe, str(py_info_script)] + # prevent sys.prefix from leaking into the child process - see https://bugs.python.org/issue22490 + env = os.environ.copy() + env.pop("__PYVENV_LAUNCHER__", None) + logging.debug("get interpreter info via cmd: %s", LogCmd(cmd)) + try: + process = Popen( + cmd, + universal_newlines=True, + stdin=subprocess.PIPE, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + env=env, + ) + out, err = process.communicate() + code = process.returncode + except OSError as os_error: + out, err, code = "", os_error.strerror, os_error.errno + result, failure = None, None + if code == 0: + result = cls._from_json(out) + result.executable = exe # keep original executable as this may contain initialization code + else: + msg = "failed to query {} with code {}{}{}".format( + exe, code, " out: {!r}".format(out) if out else "", " err: {!r}".format(err) if err else "", + ) + failure = RuntimeError(msg) + return failure, result + + +class LogCmd(object): + def __init__(self, cmd, env=None): + self.cmd = cmd + self.env = env + + def __repr__(self): + def e(v): + return v.decode("utf-8") if isinstance(v, bytes) else v + + cmd_repr = e(" ").join(pipes.quote(e(c)) for c in self.cmd) + if self.env is not None: + cmd_repr += e(" env of {!r}").format(self.env) + if PY2: + return cmd_repr.encode("utf-8") + return cmd_repr + + def __unicode__(self): + raw = repr(self) + if PY2: + return raw.decode("utf-8") + return raw + + +def clear(app_data): + app_data.py_info_clear() + _CACHE.clear() + + +___all___ = ( + "from_exe", + "clear", + "LogCmd", +) diff --git a/venv/Lib/site-packages/virtualenv/discovery/discover.py b/venv/Lib/site-packages/virtualenv/discovery/discover.py new file mode 100644 index 00000000..93c3ea7a --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/discover.py @@ -0,0 +1,46 @@ +from __future__ import absolute_import, unicode_literals + +from abc import ABCMeta, abstractmethod + +from six import add_metaclass + + +@add_metaclass(ABCMeta) +class Discover(object): + """Discover and provide the requested Python interpreter""" + + @classmethod + def add_parser_arguments(cls, parser): + """Add CLI arguments for this discovery mechanisms. + + :param parser: the CLI parser + """ + raise NotImplementedError + + # noinspection PyUnusedLocal + def __init__(self, options): + """Create a new discovery mechanism. + + :param options: the parsed options as defined within :meth:`add_parser_arguments` + """ + self._has_run = False + self._interpreter = None + + @abstractmethod + def run(self): + """Discovers an interpreter. + + + :return: the interpreter ready to use for virtual environment creation + """ + raise NotImplementedError + + @property + def interpreter(self): + """ + :return: the interpreter as returned by :meth:`run`, cached + """ + if self._has_run is False: + self._interpreter = self.run() + self._has_run = True + return self._interpreter diff --git a/venv/Lib/site-packages/virtualenv/discovery/py_info.py b/venv/Lib/site-packages/virtualenv/discovery/py_info.py new file mode 100644 index 00000000..6f121282 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/py_info.py @@ -0,0 +1,489 @@ +""" +The PythonInfo contains information about a concrete instance of a Python interpreter + +Note: this file is also used to query target interpreters, so can only use standard library methods +""" +from __future__ import absolute_import, print_function + +import json +import logging +import os +import platform +import re +import sys +import sysconfig +from collections import OrderedDict, namedtuple +from distutils import dist +from distutils.command.install import SCHEME_KEYS +from string import digits + +VersionInfo = namedtuple("VersionInfo", ["major", "minor", "micro", "releaselevel", "serial"]) + + +def _get_path_extensions(): + return list(OrderedDict.fromkeys([""] + os.environ.get("PATHEXT", "").lower().split(os.pathsep))) + + +EXTENSIONS = _get_path_extensions() +_CONF_VAR_RE = re.compile(r"\{\w+\}") + + +class PythonInfo(object): + """Contains information for a Python interpreter""" + + def __init__(self): + def u(v): + return v.decode("utf-8") if isinstance(v, bytes) else v + + def abs_path(v): + return None if v is None else os.path.abspath(v) # unroll relative elements from path (e.g. ..) + + # qualifies the python + self.platform = u(sys.platform) + self.implementation = u(platform.python_implementation()) + if self.implementation == "PyPy": + self.pypy_version_info = tuple(u(i) for i in sys.pypy_version_info) + + # this is a tuple in earlier, struct later, unify to our own named tuple + self.version_info = VersionInfo(*list(u(i) for i in sys.version_info)) + self.architecture = 64 if sys.maxsize > 2 ** 32 else 32 + + self.version = u(sys.version) + self.os = u(os.name) + + # information about the prefix - determines python home + self.prefix = u(abs_path(getattr(sys, "prefix", None))) # prefix we think + self.base_prefix = u(abs_path(getattr(sys, "base_prefix", None))) # venv + self.real_prefix = u(abs_path(getattr(sys, "real_prefix", None))) # old virtualenv + + # information about the exec prefix - dynamic stdlib modules + self.base_exec_prefix = u(abs_path(getattr(sys, "base_exec_prefix", None))) + self.exec_prefix = u(abs_path(getattr(sys, "exec_prefix", None))) + + self.executable = u(abs_path(sys.executable)) # the executable we were invoked via + self.original_executable = u(abs_path(self.executable)) # the executable as known by the interpreter + self.system_executable = self._fast_get_system_executable() # the executable we are based of (if available) + + try: + __import__("venv") + has = True + except ImportError: + has = False + self.has_venv = has + self.path = [u(i) for i in sys.path] + self.file_system_encoding = u(sys.getfilesystemencoding()) + self.stdout_encoding = u(getattr(sys.stdout, "encoding", None)) + + self.sysconfig_paths = {u(i): u(sysconfig.get_path(i, expand=False)) for i in sysconfig.get_path_names()} + # https://bugs.python.org/issue22199 + makefile = getattr(sysconfig, "get_makefile_filename", getattr(sysconfig, "_get_makefile_filename", None)) + self.sysconfig = { + u(k): u(v) + for k, v in [ + # a list of content to store from sysconfig + ("makefile_filename", makefile()), + ] + if k is not None + } + + config_var_keys = set() + for element in self.sysconfig_paths.values(): + for k in _CONF_VAR_RE.findall(element): + config_var_keys.add(u(k[1:-1])) + config_var_keys.add("PYTHONFRAMEWORK") + + self.sysconfig_vars = {u(i): u(sysconfig.get_config_var(i) or "") for i in config_var_keys} + if self.implementation == "PyPy" and sys.version_info.major == 2: + self.sysconfig_vars[u"implementation_lower"] = u"python" + + self.distutils_install = {u(k): u(v) for k, v in self._distutils_install().items()} + confs = {k: (self.system_prefix if v.startswith(self.prefix) else v) for k, v in self.sysconfig_vars.items()} + self.system_stdlib = self.sysconfig_path("stdlib", confs) + self.system_stdlib_platform = self.sysconfig_path("platstdlib", confs) + self.max_size = getattr(sys, "maxsize", getattr(sys, "maxint", None)) + self._creators = None + + def _fast_get_system_executable(self): + """Try to get the system executable by just looking at properties""" + if self.real_prefix or ( + self.base_prefix is not None and self.base_prefix != self.prefix + ): # if this is a virtual environment + if self.real_prefix is None: + base_executable = getattr(sys, "_base_executable", None) # some platforms may set this to help us + if base_executable is not None: # use the saved system executable if present + if sys.executable != base_executable: # we know we're in a virtual environment, cannot be us + return base_executable + return None # in this case we just can't tell easily without poking around FS and calling them, bail + # if we're not in a virtual environment, this is already a system python, so return the original executable + # note we must choose the original and not the pure executable as shim scripts might throw us off + return self.original_executable + + @staticmethod + def _distutils_install(): + # follow https://github.com/pypa/pip/blob/master/src/pip/_internal/locations.py#L95 + # note here we don't import Distribution directly to allow setuptools to patch it + d = dist.Distribution({"script_args": "--no-user-cfg"}) # conf files not parsed so they do not hijack paths + if hasattr(sys, "_framework"): + sys._framework = None # disable macOS static paths for framework + i = d.get_command_obj("install", create=True) + i.prefix = os.sep # paths generated are relative to prefix that contains the path sep, this makes it relative + i.finalize_options() + result = {key: (getattr(i, "install_{}".format(key))[1:]).lstrip(os.sep) for key in SCHEME_KEYS} + return result + + @property + def version_str(self): + return ".".join(str(i) for i in self.version_info[0:3]) + + @property + def version_release_str(self): + return ".".join(str(i) for i in self.version_info[0:2]) + + @property + def python_name(self): + version_info = self.version_info + return "python{}.{}".format(version_info.major, version_info.minor) + + @property + def is_old_virtualenv(self): + return self.real_prefix is not None + + @property + def is_venv(self): + return self.base_prefix is not None and self.version_info.major == 3 + + def sysconfig_path(self, key, config_var=None, sep=os.sep): + pattern = self.sysconfig_paths[key] + if config_var is None: + config_var = self.sysconfig_vars + else: + base = {k: v for k, v in self.sysconfig_vars.items()} + base.update(config_var) + config_var = base + return pattern.format(**config_var).replace(u"/", sep) + + def creators(self, refresh=False): + if self._creators is None or refresh is True: + from virtualenv.run.plugin.creators import CreatorSelector + + self._creators = CreatorSelector.for_interpreter(self) + return self._creators + + @property + def system_include(self): + path = self.sysconfig_path( + "include", + {k: (self.system_prefix if v.startswith(self.prefix) else v) for k, v in self.sysconfig_vars.items()}, + ) + if not os.path.exists(path): # some broken packaging don't respect the sysconfig, fallback to distutils path + # the pattern include the distribution name too at the end, remove that via the parent call + fallback = os.path.join(self.prefix, os.path.dirname(self.distutils_install["headers"])) + if os.path.exists(fallback): + path = fallback + return path + + @property + def system_prefix(self): + return self.real_prefix or self.base_prefix or self.prefix + + @property + def system_exec_prefix(self): + return self.real_prefix or self.base_exec_prefix or self.exec_prefix + + def __unicode__(self): + content = repr(self) + if sys.version_info == 2: + content = content.decode("utf-8") + return content + + def __repr__(self): + return "{}({!r})".format( + self.__class__.__name__, {k: v for k, v in self.__dict__.items() if not k.startswith("_")}, + ) + + def __str__(self): + content = "{}({})".format( + self.__class__.__name__, + ", ".join( + "{}={}".format(k, v) + for k, v in ( + ("spec", self.spec), + ( + "system" + if self.system_executable is not None and self.system_executable != self.executable + else None, + self.system_executable, + ), + ( + "original" + if ( + self.original_executable != self.system_executable + and self.original_executable != self.executable + ) + else None, + self.original_executable, + ), + ("exe", self.executable), + ("platform", self.platform), + ("version", repr(self.version)), + ("encoding_fs_io", "{}-{}".format(self.file_system_encoding, self.stdout_encoding)), + ) + if k is not None + ), + ) + return content + + @property + def spec(self): + return "{}{}-{}".format(self.implementation, ".".join(str(i) for i in self.version_info), self.architecture) + + @classmethod + def clear_cache(cls, app_data): + # this method is not used by itself, so here and called functions can import stuff locally + from virtualenv.discovery.cached_py_info import clear + + clear(app_data) + cls._cache_exe_discovery.clear() + + def satisfies(self, spec, impl_must_match): + """check if a given specification can be satisfied by the this python interpreter instance""" + if spec.path: + if self.executable == os.path.abspath(spec.path): + return True # if the path is a our own executable path we're done + if not spec.is_abs: + # if path set, and is not our original executable name, this does not match + basename = os.path.basename(self.original_executable) + spec_path = spec.path + if sys.platform == "win32": + basename, suffix = os.path.splitext(basename) + if spec_path.endswith(suffix): + spec_path = spec_path[: -len(suffix)] + if basename != spec_path: + return False + + if impl_must_match: + if spec.implementation is not None and spec.implementation.lower() != self.implementation.lower(): + return False + + if spec.architecture is not None and spec.architecture != self.architecture: + return False + + for our, req in zip(self.version_info[0:3], (spec.major, spec.minor, spec.micro)): + if req is not None and our is not None and our != req: + return False + return True + + _current_system = None + _current = None + + @classmethod + def current(cls, app_data=None): + """ + This locates the current host interpreter information. This might be different than what we run into in case + the host python has been upgraded from underneath us. + """ + if cls._current is None: + cls._current = cls.from_exe(sys.executable, app_data, raise_on_error=True, resolve_to_host=False) + return cls._current + + @classmethod + def current_system(cls, app_data=None): + """ + This locates the current host interpreter information. This might be different than what we run into in case + the host python has been upgraded from underneath us. + """ + if cls._current_system is None: + cls._current_system = cls.from_exe(sys.executable, app_data, raise_on_error=True, resolve_to_host=True) + return cls._current_system + + def _to_json(self): + # don't save calculated paths, as these are non primitive types + return json.dumps(self._to_dict(), indent=2) + + def _to_dict(self): + data = {var: (getattr(self, var) if var not in ("_creators",) else None) for var in vars(self)} + # noinspection PyProtectedMember + data["version_info"] = data["version_info"]._asdict() # namedtuple to dictionary + return data + + @classmethod + def from_exe(cls, exe, app_data=None, raise_on_error=True, ignore_cache=False, resolve_to_host=True): + """Given a path to an executable get the python information""" + # this method is not used by itself, so here and called functions can import stuff locally + from virtualenv.discovery.cached_py_info import from_exe + + proposed = from_exe(cls, app_data, exe, raise_on_error=raise_on_error, ignore_cache=ignore_cache) + # noinspection PyProtectedMember + if isinstance(proposed, PythonInfo) and resolve_to_host: + try: + proposed = proposed._resolve_to_system(app_data, proposed) + except Exception as exception: + if raise_on_error: + raise exception + logging.info("ignore %s due cannot resolve system due to %r", proposed.original_executable, exception) + proposed = None + return proposed + + @classmethod + def _from_json(cls, payload): + # the dictionary unroll here is to protect against pypy bug of interpreter crashing + raw = json.loads(payload) + return cls._from_dict({k: v for k, v in raw.items()}) + + @classmethod + def _from_dict(cls, data): + data["version_info"] = VersionInfo(**data["version_info"]) # restore this to a named tuple structure + result = cls() + result.__dict__ = {k: v for k, v in data.items()} + return result + + @classmethod + def _resolve_to_system(cls, app_data, target): + start_executable = target.executable + prefixes = OrderedDict() + while target.system_executable is None: + prefix = target.real_prefix or target.base_prefix or target.prefix + if prefix in prefixes: + if len(prefixes) == 1: + # if we're linking back to ourselves accept ourselves with a WARNING + logging.info("%r links back to itself via prefixes", target) + target.system_executable = target.executable + break + for at, (p, t) in enumerate(prefixes.items(), start=1): + logging.error("%d: prefix=%s, info=%r", at, p, t) + logging.error("%d: prefix=%s, info=%r", len(prefixes) + 1, prefix, target) + raise RuntimeError("prefixes are causing a circle {}".format("|".join(prefixes.keys()))) + prefixes[prefix] = target + target = target.discover_exe(app_data, prefix=prefix, exact=False) + if target.executable != target.system_executable: + target = cls.from_exe(target.system_executable, app_data) + target.executable = start_executable + return target + + _cache_exe_discovery = {} + + def discover_exe(self, app_data, prefix, exact=True): + key = prefix, exact + if key in self._cache_exe_discovery and prefix: + logging.debug("discover exe from cache %s - exact %s: %r", prefix, exact, self._cache_exe_discovery[key]) + return self._cache_exe_discovery[key] + logging.debug("discover exe for %s in %s", self, prefix) + # we don't know explicitly here, do some guess work - our executable name should tell + possible_names = self._find_possible_exe_names() + possible_folders = self._find_possible_folders(prefix) + discovered = [] + for folder in possible_folders: + for name in possible_names: + info = self._check_exe(app_data, folder, name, exact, discovered) + if info is not None: + self._cache_exe_discovery[key] = info + return info + if exact is False and discovered: + info = self._select_most_likely(discovered, self) + folders = os.pathsep.join(possible_folders) + self._cache_exe_discovery[key] = info + logging.debug("no exact match found, chosen most similar of %s within base folders %s", info, folders) + return info + msg = "failed to detect {} in {}".format("|".join(possible_names), os.pathsep.join(possible_folders)) + raise RuntimeError(msg) + + def _check_exe(self, app_data, folder, name, exact, discovered): + exe_path = os.path.join(folder, name) + if not os.path.exists(exe_path): + return None + info = self.from_exe(exe_path, app_data, resolve_to_host=False, raise_on_error=False) + if info is None: # ignore if for some reason we can't query + return None + for item in ["implementation", "architecture", "version_info"]: + found = getattr(info, item) + searched = getattr(self, item) + if found != searched: + if item == "version_info": + found, searched = ".".join(str(i) for i in found), ".".join(str(i) for i in searched) + executable = info.executable + logging.debug("refused interpreter %s because %s differs %s != %s", executable, item, found, searched) + if exact is False: + discovered.append(info) + break + else: + return info + return None + + @staticmethod + def _select_most_likely(discovered, target): + # no exact match found, start relaxing our requirements then to facilitate system package upgrades that + # could cause this (when using copy strategy of the host python) + def sort_by(info): + # we need to setup some priority of traits, this is as follows: + # implementation, major, minor, micro, architecture, tag, serial + matches = [ + info.implementation == target.implementation, + info.version_info.major == target.version_info.major, + info.version_info.minor == target.version_info.minor, + info.architecture == target.architecture, + info.version_info.micro == target.version_info.micro, + info.version_info.releaselevel == target.version_info.releaselevel, + info.version_info.serial == target.version_info.serial, + ] + priority = sum((1 << pos if match else 0) for pos, match in enumerate(reversed(matches))) + return priority + + sorted_discovered = sorted(discovered, key=sort_by, reverse=True) # sort by priority in decreasing order + most_likely = sorted_discovered[0] + return most_likely + + def _find_possible_folders(self, inside_folder): + candidate_folder = OrderedDict() + executables = OrderedDict() + executables[os.path.realpath(self.executable)] = None + executables[self.executable] = None + executables[os.path.realpath(self.original_executable)] = None + executables[self.original_executable] = None + for exe in executables.keys(): + base = os.path.dirname(exe) + # following path pattern of the current + if base.startswith(self.prefix): + relative = base[len(self.prefix) :] + candidate_folder["{}{}".format(inside_folder, relative)] = None + + # or at root level + candidate_folder[inside_folder] = None + return list(i for i in candidate_folder.keys() if os.path.exists(i)) + + def _find_possible_exe_names(self): + name_candidate = OrderedDict() + for name in self._possible_base(): + for at in (3, 2, 1, 0): + version = ".".join(str(i) for i in self.version_info[:at]) + for arch in ["-{}".format(self.architecture), ""]: + for ext in EXTENSIONS: + candidate = "{}{}{}{}".format(name, version, arch, ext) + name_candidate[candidate] = None + return list(name_candidate.keys()) + + def _possible_base(self): + possible_base = OrderedDict() + basename = os.path.splitext(os.path.basename(self.executable))[0].rstrip(digits) + possible_base[basename] = None + possible_base[self.implementation] = None + # python is always the final option as in practice is used by multiple implementation as exe name + if "python" in possible_base: + del possible_base["python"] + possible_base["python"] = None + for base in possible_base: + lower = base.lower() + yield lower + from virtualenv.info import fs_is_case_sensitive + + if fs_is_case_sensitive(): + if base != lower: + yield base + upper = base.upper() + if upper != base: + yield upper + + +if __name__ == "__main__": + # dump a JSON representation of the current python + # noinspection PyProtectedMember + print(PythonInfo()._to_json()) diff --git a/venv/Lib/site-packages/virtualenv/discovery/py_spec.py b/venv/Lib/site-packages/virtualenv/discovery/py_spec.py new file mode 100644 index 00000000..cb63e151 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/py_spec.py @@ -0,0 +1,122 @@ +"""A Python specification is an abstract requirement definition of a interpreter""" +from __future__ import absolute_import, unicode_literals + +import os +import re +import sys +from collections import OrderedDict + +from virtualenv.info import fs_is_case_sensitive +from virtualenv.util.six import ensure_str + +PATTERN = re.compile(r"^(?P[a-zA-Z]+)?(?P[0-9.]+)?(?:-(?P32|64))?$") +IS_WIN = sys.platform == "win32" + + +class PythonSpec(object): + """Contains specification about a Python Interpreter""" + + def __init__(self, str_spec, implementation, major, minor, micro, architecture, path): + self.str_spec = str_spec + self.implementation = implementation + self.major = major + self.minor = minor + self.micro = micro + self.architecture = architecture + self.path = path + + @classmethod + def from_string_spec(cls, string_spec): + impl, major, minor, micro, arch, path = None, None, None, None, None, None + if os.path.isabs(string_spec): + path = string_spec + else: + ok = False + match = re.match(PATTERN, string_spec) + if match: + + def _int_or_none(val): + return None if val is None else int(val) + + try: + groups = match.groupdict() + version = groups["version"] + if version is not None: + versions = tuple(int(i) for i in version.split(".") if i) + if len(versions) > 3: + raise ValueError + if len(versions) == 3: + major, minor, micro = versions + elif len(versions) == 2: + major, minor = versions + elif len(versions) == 1: + version_data = versions[0] + major = int(str(version_data)[0]) # first digit major + if version_data > 9: + minor = int(str(version_data)[1:]) + ok = True + except ValueError: + pass + else: + impl = groups["impl"] + if impl == "py" or impl == "python": + impl = "CPython" + arch = _int_or_none(groups["arch"]) + + if not ok: + path = string_spec + + return cls(string_spec, impl, major, minor, micro, arch, path) + + def generate_names(self): + impls = OrderedDict() + if self.implementation: + # first consider implementation as it is + impls[self.implementation] = False + if fs_is_case_sensitive(): + # for case sensitive file systems consider lower and upper case versions too + # trivia: MacBooks and all pre 2018 Windows-es were case insensitive by default + impls[self.implementation.lower()] = False + impls[self.implementation.upper()] = False + impls["python"] = True # finally consider python as alias, implementation must match now + version = self.major, self.minor, self.micro + try: + version = version[: version.index(None)] + except ValueError: + pass + for impl, match in impls.items(): + for at in range(len(version), -1, -1): + cur_ver = version[0:at] + spec = "{}{}".format(impl, ".".join(str(i) for i in cur_ver)) + yield spec, match + + @property + def is_abs(self): + return self.path is not None and os.path.isabs(self.path) + + def satisfies(self, spec): + """called when there's a candidate metadata spec to see if compatible - e.g. PEP-514 on Windows""" + if spec.is_abs and self.is_abs and self.path != spec.path: + return False + if spec.implementation is not None and spec.implementation.lower() != self.implementation.lower(): + return False + if spec.architecture is not None and spec.architecture != self.architecture: + return False + + for our, req in zip((self.major, self.minor, self.micro), (spec.major, spec.minor, spec.micro)): + if req is not None and our is not None and our != req: + return False + return True + + def __unicode__(self): + return "{}({})".format( + type(self).__name__, + ", ".join( + "{}={}".format(k, getattr(self, k)) + for k in ("implementation", "major", "minor", "micro", "architecture", "path") + if getattr(self, k) is not None + ), + ) + + def __repr__(self): + return ensure_str(self.__unicode__()) diff --git a/venv/Lib/site-packages/virtualenv/discovery/windows/__init__.py b/venv/Lib/site-packages/virtualenv/discovery/windows/__init__.py new file mode 100644 index 00000000..9063ab8d --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/windows/__init__.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import, unicode_literals + +from ..py_info import PythonInfo +from ..py_spec import PythonSpec +from .pep514 import discover_pythons + + +class Pep514PythonInfo(PythonInfo): + """""" + + +def propose_interpreters(spec, cache_dir): + # see if PEP-514 entries are good + + # start with higher python versions in an effort to use the latest version available + existing = list(discover_pythons()) + existing.sort(key=lambda i: tuple(-1 if j is None else j for j in i[1:4]), reverse=True) + + for name, major, minor, arch, exe, _ in existing: + # pre-filter + if name in ("PythonCore", "ContinuumAnalytics"): + name = "CPython" + registry_spec = PythonSpec(None, name, major, minor, None, arch, exe) + if registry_spec.satisfies(spec): + interpreter = Pep514PythonInfo.from_exe(exe, cache_dir, raise_on_error=False) + if interpreter is not None: + if interpreter.satisfies(spec, impl_must_match=True): + yield interpreter diff --git a/venv/Lib/site-packages/virtualenv/discovery/windows/pep514.py b/venv/Lib/site-packages/virtualenv/discovery/windows/pep514.py new file mode 100644 index 00000000..048436a6 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/discovery/windows/pep514.py @@ -0,0 +1,161 @@ +"""Implement https://www.python.org/dev/peps/pep-0514/ to discover interpreters - Windows only""" +from __future__ import absolute_import, print_function, unicode_literals + +import os +import re +from logging import basicConfig, getLogger + +import six + +if six.PY3: + import winreg +else: + # noinspection PyUnresolvedReferences + import _winreg as winreg + +LOGGER = getLogger(__name__) + + +def enum_keys(key): + at = 0 + while True: + try: + yield winreg.EnumKey(key, at) + except OSError: + break + at += 1 + + +def get_value(key, value_name): + try: + return winreg.QueryValueEx(key, value_name)[0] + except OSError: + return None + + +def discover_pythons(): + for hive, hive_name, key, flags, default_arch in [ + (winreg.HKEY_CURRENT_USER, "HKEY_CURRENT_USER", r"Software\Python", 0, 64), + (winreg.HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", r"Software\Python", winreg.KEY_WOW64_64KEY, 64), + (winreg.HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", r"Software\Python", winreg.KEY_WOW64_32KEY, 32), + ]: + for spec in process_set(hive, hive_name, key, flags, default_arch): + yield spec + + +def process_set(hive, hive_name, key, flags, default_arch): + try: + with winreg.OpenKeyEx(hive, key, 0, winreg.KEY_READ | flags) as root_key: + for company in enum_keys(root_key): + if company == "PyLauncher": # reserved + continue + for spec in process_company(hive_name, company, root_key, default_arch): + yield spec + except OSError: + pass + + +def process_company(hive_name, company, root_key, default_arch): + with winreg.OpenKeyEx(root_key, company) as company_key: + for tag in enum_keys(company_key): + spec = process_tag(hive_name, company, company_key, tag, default_arch) + if spec is not None: + yield spec + + +def process_tag(hive_name, company, company_key, tag, default_arch): + with winreg.OpenKeyEx(company_key, tag) as tag_key: + version = load_version_data(hive_name, company, tag, tag_key) + if version is not None: # if failed to get version bail + major, minor, _ = version + arch = load_arch_data(hive_name, company, tag, tag_key, default_arch) + if arch is not None: + exe_data = load_exe(hive_name, company, company_key, tag) + if exe_data is not None: + exe, args = exe_data + return company, major, minor, arch, exe, args + + +def load_exe(hive_name, company, company_key, tag): + key_path = "{}/{}/{}".format(hive_name, company, tag) + try: + with winreg.OpenKeyEx(company_key, r"{}\InstallPath".format(tag)) as ip_key: + with ip_key: + exe = get_value(ip_key, "ExecutablePath") + if exe is None: + ip = get_value(ip_key, None) + if ip is None: + msg(key_path, "no ExecutablePath or default for it") + + else: + exe = os.path.join(ip, str("python.exe")) + if exe is not None and os.path.exists(exe): + args = get_value(ip_key, "ExecutableArguments") + return exe, args + else: + msg(key_path, "could not load exe with value {}".format(exe)) + except OSError: + msg("{}/{}".format(key_path, "InstallPath"), "missing") + return None + + +def load_arch_data(hive_name, company, tag, tag_key, default_arch): + arch_str = get_value(tag_key, "SysArchitecture") + if arch_str is not None: + key_path = "{}/{}/{}/SysArchitecture".format(hive_name, company, tag) + try: + return parse_arch(arch_str) + except ValueError as sys_arch: + msg(key_path, sys_arch) + return default_arch + + +def parse_arch(arch_str): + if isinstance(arch_str, six.string_types): + match = re.match(r"^(\d+)bit$", arch_str) + if match: + return int(next(iter(match.groups()))) + error = "invalid format {}".format(arch_str) + else: + error = "arch is not string: {}".format(repr(arch_str)) + raise ValueError(error) + + +def load_version_data(hive_name, company, tag, tag_key): + for candidate, key_path in [ + (get_value(tag_key, "SysVersion"), "{}/{}/{}/SysVersion".format(hive_name, company, tag)), + (tag, "{}/{}/{}".format(hive_name, company, tag)), + ]: + if candidate is not None: + try: + return parse_version(candidate) + except ValueError as sys_version: + msg(key_path, sys_version) + return None + + +def parse_version(version_str): + if isinstance(version_str, six.string_types): + match = re.match(r"^(\d+)(?:\.(\d+))?(?:\.(\d+))?$", version_str) + if match: + return tuple(int(i) if i is not None else None for i in match.groups()) + error = "invalid format {}".format(version_str) + else: + error = "version is not string: {}".format(repr(version_str)) + raise ValueError(error) + + +def msg(path, what): + LOGGER.warning("PEP-514 violation in Windows Registry at {} error: {}".format(path, what)) + + +def _run(): + basicConfig() + interpreters = [] + for spec in discover_pythons(): + interpreters.append(repr(spec)) + print("\n".join(sorted(interpreters))) + + +if __name__ == "__main__": + _run() diff --git a/venv/Lib/site-packages/virtualenv/info.py b/venv/Lib/site-packages/virtualenv/info.py new file mode 100644 index 00000000..afe40977 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/info.py @@ -0,0 +1,65 @@ +from __future__ import absolute_import, unicode_literals + +import logging +import os +import platform +import sys +import tempfile + +IMPLEMENTATION = platform.python_implementation() +IS_PYPY = IMPLEMENTATION == "PyPy" +IS_CPYTHON = IMPLEMENTATION == "CPython" +PY3 = sys.version_info[0] == 3 +PY2 = sys.version_info[0] == 2 +IS_WIN = sys.platform == "win32" +ROOT = os.path.realpath(os.path.join(os.path.abspath(__file__), os.path.pardir, os.path.pardir)) +IS_ZIPAPP = os.path.isfile(ROOT) +WIN_CPYTHON_2 = IS_CPYTHON and IS_WIN and PY2 + +_CAN_SYMLINK = _FS_CASE_SENSITIVE = _CFG_DIR = _DATA_DIR = None + + +def fs_is_case_sensitive(): + global _FS_CASE_SENSITIVE + + if _FS_CASE_SENSITIVE is None: + with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file: + _FS_CASE_SENSITIVE = not os.path.exists(tmp_file.name.lower()) + logging.debug("filesystem is %scase-sensitive", "" if _FS_CASE_SENSITIVE else "not ") + return _FS_CASE_SENSITIVE + + +def fs_supports_symlink(): + global _CAN_SYMLINK + + if _CAN_SYMLINK is None: + can = False + if hasattr(os, "symlink"): + if IS_WIN: + with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file: + temp_dir = os.path.dirname(tmp_file.name) + dest = os.path.join(temp_dir, "{}-{}".format(tmp_file.name, "b")) + try: + os.symlink(tmp_file.name, dest) + can = True + except (OSError, NotImplementedError): + pass + logging.debug("symlink on filesystem does%s work", "" if can else " not") + else: + can = True + _CAN_SYMLINK = can + return _CAN_SYMLINK + + +__all__ = ( + "IS_PYPY", + "IS_CPYTHON", + "PY3", + "PY2", + "IS_WIN", + "fs_is_case_sensitive", + "fs_supports_symlink", + "ROOT", + "IS_ZIPAPP", + "WIN_CPYTHON_2", +) diff --git a/venv/Lib/site-packages/virtualenv/report.py b/venv/Lib/site-packages/virtualenv/report.py new file mode 100644 index 00000000..665b293c --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/report.py @@ -0,0 +1,57 @@ +from __future__ import absolute_import, unicode_literals + +import logging +import sys + +from virtualenv.util.six import ensure_str + +LEVELS = { + 0: logging.CRITICAL, + 1: logging.ERROR, + 2: logging.WARNING, + 3: logging.INFO, + 4: logging.DEBUG, + 5: logging.NOTSET, +} + +MAX_LEVEL = max(LEVELS.keys()) +LOGGER = logging.getLogger() + + +def setup_report(verbosity, show_pid=False): + _clean_handlers(LOGGER) + if verbosity > MAX_LEVEL: + verbosity = MAX_LEVEL # pragma: no cover + level = LEVELS[verbosity] + msg_format = "%(message)s" + filelock_logger = logging.getLogger("filelock") + if level <= logging.DEBUG: + locate = "module" + msg_format = "%(relativeCreated)d {} [%(levelname)s %({})s:%(lineno)d]".format(msg_format, locate) + filelock_logger.setLevel(level) + else: + filelock_logger.setLevel(logging.WARN) + if show_pid: + msg_format = "[%(process)d] " + msg_format + formatter = logging.Formatter(ensure_str(msg_format)) + stream_handler = logging.StreamHandler(stream=sys.stdout) + stream_handler.setLevel(level) + LOGGER.setLevel(logging.NOTSET) + stream_handler.setFormatter(formatter) + LOGGER.addHandler(stream_handler) + level_name = logging.getLevelName(level) + logging.debug("setup logging to %s", level_name) + logging.getLogger("distlib").setLevel(logging.ERROR) + return verbosity + + +def _clean_handlers(log): + for log_handler in list(log.handlers): # remove handlers of libraries + log.removeHandler(log_handler) + + +__all__ = ( + "LEVELS", + "MAX_LEVEL", + "setup_report", +) diff --git a/venv/Lib/site-packages/virtualenv/run/__init__.py b/venv/Lib/site-packages/virtualenv/run/__init__.py new file mode 100644 index 00000000..8de7962a --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/__init__.py @@ -0,0 +1,134 @@ +from __future__ import absolute_import, unicode_literals + +import logging + +from ..app_data import AppDataAction, AppDataDisabled, TempAppData +from ..config.cli.parser import VirtualEnvConfigParser +from ..report import LEVELS, setup_report +from ..run.session import Session +from ..seed.wheels.periodic_update import manual_upgrade +from ..version import __version__ +from .plugin.activators import ActivationSelector +from .plugin.creators import CreatorSelector +from .plugin.discovery import get_discover +from .plugin.seeders import SeederSelector + + +def cli_run(args, options=None): + """Create a virtual environment given some command line interface arguments + + :param args: the command line arguments + :param options: passing in a ``VirtualEnvOptions`` object allows return of the parsed options + :return: the session object of the creation (its structure for now is experimental and might change on short notice) + """ + session = session_via_cli(args, options) + with session: + session.run() + return session + + +# noinspection PyProtectedMember +def session_via_cli(args, options=None): + parser, elements = build_parser(args, options) + options = parser.parse_args(args) + creator, seeder, activators = tuple(e.create(options) for e in elements) # create types + session = Session(options.verbosity, options.app_data, parser._interpreter, creator, seeder, activators) + return session + + +# noinspection PyProtectedMember +def build_parser(args=None, options=None): + parser = VirtualEnvConfigParser(options) + add_version_flag(parser) + parser.add_argument( + "--with-traceback", + dest="with_traceback", + action="store_true", + default=False, + help="on failure also display the stacktrace internals of virtualenv", + ) + _do_report_setup(parser, args) + options = load_app_data(args, parser, options) + handle_extra_commands(options) + + discover = get_discover(parser, args) + parser._interpreter = interpreter = discover.interpreter + if interpreter is None: + raise RuntimeError("failed to find interpreter for {}".format(discover)) + elements = [ + CreatorSelector(interpreter, parser), + SeederSelector(interpreter, parser), + ActivationSelector(interpreter, parser), + ] + options, _ = parser.parse_known_args(args) + for element in elements: + element.handle_selected_arg_parse(options) + parser.enable_help() + return parser, elements + + +def build_parser_only(args=None): + """Used to provide a parser for the doc generation""" + return build_parser(args)[0] + + +def handle_extra_commands(options): + if options.upgrade_embed_wheels: + result = manual_upgrade(options.app_data) + raise SystemExit(result) + + +def load_app_data(args, parser, options): + # here we need a write-able application data (e.g. the zipapp might need this for discovery cache) + default_app_data = AppDataAction.default() + parser.add_argument( + "--app-data", + dest="app_data", + action=AppDataAction, + default="" if isinstance(default_app_data, AppDataDisabled) else default_app_data, + help="a data folder used as cache by the virtualenv", + ) + parser.add_argument( + "--reset-app-data", + dest="reset_app_data", + action="store_true", + help="start with empty app data folder", + default=False, + ) + parser.add_argument( + "--upgrade-embed-wheels", + dest="upgrade_embed_wheels", + action="store_true", + help="trigger a manual update of the embedded wheels", + default=False, + ) + options, _ = parser.parse_known_args(args, namespace=options) + if options.app_data == "": + options.app_data = TempAppData() + if options.reset_app_data: + options.app_data.reset() + return options + + +def add_version_flag(parser): + import virtualenv + + parser.add_argument( + "--version", + action="version", + version="%(prog)s {} from {}".format(__version__, virtualenv.__file__), + help="display the version of the virtualenv package and it's location, then exit", + ) + + +def _do_report_setup(parser, args): + level_map = ", ".join("{}={}".format(logging.getLevelName(l), c) for c, l in sorted(list(LEVELS.items()))) + msg = "verbosity = verbose - quiet, default {}, mapping => {}" + verbosity_group = parser.add_argument_group( + title="verbosity", description=msg.format(logging.getLevelName(LEVELS[3]), level_map), + ) + verbosity = verbosity_group.add_mutually_exclusive_group() + verbosity.add_argument("-v", "--verbose", action="count", dest="verbose", help="increase verbosity", default=2) + verbosity.add_argument("-q", "--quiet", action="count", dest="quiet", help="decrease verbosity", default=0) + option, _ = parser.parse_known_args(args) + setup_report(option.verbosity) diff --git a/venv/Lib/site-packages/virtualenv/run/plugin/__init__.py b/venv/Lib/site-packages/virtualenv/run/plugin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/run/plugin/activators.py b/venv/Lib/site-packages/virtualenv/run/plugin/activators.py new file mode 100644 index 00000000..dea28277 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/plugin/activators.py @@ -0,0 +1,53 @@ +from __future__ import absolute_import, unicode_literals + +from argparse import ArgumentTypeError +from collections import OrderedDict + +from .base import ComponentBuilder + + +class ActivationSelector(ComponentBuilder): + def __init__(self, interpreter, parser): + self.default = None + possible = OrderedDict( + (k, v) for k, v in self.options("virtualenv.activate").items() if v.supports(interpreter) + ) + super(ActivationSelector, self).__init__(interpreter, parser, "activators", possible) + self.parser.description = "options for activation scripts" + self.active = None + + def add_selector_arg_parse(self, name, choices): + self.default = ",".join(choices) + self.parser.add_argument( + "--{}".format(name), + default=self.default, + metavar="comma_sep_list", + required=False, + help="activators to generate - default is all supported", + type=self._extract_activators, + ) + + def _extract_activators(self, entered_str): + elements = [e.strip() for e in entered_str.split(",") if e.strip()] + missing = [e for e in elements if e not in self.possible] + if missing: + raise ArgumentTypeError("the following activators are not available {}".format(",".join(missing))) + return elements + + def handle_selected_arg_parse(self, options): + selected_activators = ( + self._extract_activators(self.default) if options.activators is self.default else options.activators + ) + self.active = {k: v for k, v in self.possible.items() if k in selected_activators} + self.parser.add_argument( + "--prompt", + dest="prompt", + metavar="prompt", + help="provides an alternative prompt prefix for this environment", + default=None, + ) + for activator in self.active.values(): + activator.add_parser_arguments(self.parser, self.interpreter) + + def create(self, options): + return [activator_class(options) for activator_class in self.active.values()] diff --git a/venv/Lib/site-packages/virtualenv/run/plugin/base.py b/venv/Lib/site-packages/virtualenv/run/plugin/base.py new file mode 100644 index 00000000..ed10fe0e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/plugin/base.py @@ -0,0 +1,58 @@ +from __future__ import absolute_import, unicode_literals + +import sys +from collections import OrderedDict + +if sys.version_info >= (3, 8): + from importlib.metadata import entry_points +else: + from importlib_metadata import entry_points + + +class PluginLoader(object): + _OPTIONS = None + _ENTRY_POINTS = None + + @classmethod + def entry_points_for(cls, key): + return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {})) + + @staticmethod + def entry_points(): + if PluginLoader._ENTRY_POINTS is None: + PluginLoader._ENTRY_POINTS = entry_points() + return PluginLoader._ENTRY_POINTS + + +class ComponentBuilder(PluginLoader): + def __init__(self, interpreter, parser, name, possible): + self.interpreter = interpreter + self.name = name + self._impl_class = None + self.possible = possible + self.parser = parser.add_argument_group(title=name) + self.add_selector_arg_parse(name, list(self.possible)) + + @classmethod + def options(cls, key): + if cls._OPTIONS is None: + cls._OPTIONS = cls.entry_points_for(key) + return cls._OPTIONS + + def add_selector_arg_parse(self, name, choices): + raise NotImplementedError + + def handle_selected_arg_parse(self, options): + selected = getattr(options, self.name) + if selected not in self.possible: + raise RuntimeError("No implementation for {}".format(self.interpreter)) + self._impl_class = self.possible[selected] + self.populate_selected_argparse(selected, options.app_data) + return selected + + def populate_selected_argparse(self, selected, app_data): + self.parser.description = "options for {} {}".format(self.name, selected) + self._impl_class.add_parser_arguments(self.parser, self.interpreter, app_data) + + def create(self, options): + return self._impl_class(options, self.interpreter) diff --git a/venv/Lib/site-packages/virtualenv/run/plugin/creators.py b/venv/Lib/site-packages/virtualenv/run/plugin/creators.py new file mode 100644 index 00000000..d6d6216f --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/plugin/creators.py @@ -0,0 +1,77 @@ +from __future__ import absolute_import, unicode_literals + +from collections import OrderedDict, defaultdict, namedtuple + +from virtualenv.create.describe import Describe +from virtualenv.create.via_global_ref.builtin.builtin_way import VirtualenvBuiltin + +from .base import ComponentBuilder + +CreatorInfo = namedtuple("CreatorInfo", ["key_to_class", "key_to_meta", "describe", "builtin_key"]) + + +class CreatorSelector(ComponentBuilder): + def __init__(self, interpreter, parser): + creators, self.key_to_meta, self.describe, self.builtin_key = self.for_interpreter(interpreter) + super(CreatorSelector, self).__init__(interpreter, parser, "creator", creators) + + @classmethod + def for_interpreter(cls, interpreter): + key_to_class, key_to_meta, builtin_key, describe = OrderedDict(), {}, None, None + errored = defaultdict(list) + for key, creator_class in cls.options("virtualenv.create").items(): + if key == "builtin": + raise RuntimeError("builtin creator is a reserved name") + meta = creator_class.can_create(interpreter) + if meta: + if meta.error: + errored[meta.error].append(creator_class) + else: + if "builtin" not in key_to_class and issubclass(creator_class, VirtualenvBuiltin): + builtin_key = key + key_to_class["builtin"] = creator_class + key_to_meta["builtin"] = meta + key_to_class[key] = creator_class + key_to_meta[key] = meta + if describe is None and issubclass(creator_class, Describe) and creator_class.can_describe(interpreter): + describe = creator_class + if not key_to_meta: + if errored: + raise RuntimeError( + "\n".join( + "{} for creators {}".format(k, ", ".join(i.__name__ for i in v)) for k, v in errored.items() + ), + ) + else: + raise RuntimeError("No virtualenv implementation for {}".format(interpreter)) + return CreatorInfo( + key_to_class=key_to_class, key_to_meta=key_to_meta, describe=describe, builtin_key=builtin_key, + ) + + def add_selector_arg_parse(self, name, choices): + # prefer the built-in venv if present, otherwise fallback to first defined type + choices = sorted(choices, key=lambda a: 0 if a == "builtin" else 1) + default_value = self._get_default(choices) + self.parser.add_argument( + "--{}".format(name), + choices=choices, + default=default_value, + required=False, + help="create environment via{}".format( + "" if self.builtin_key is None else " (builtin = {})".format(self.builtin_key), + ), + ) + + @staticmethod + def _get_default(choices): + return next(iter(choices)) + + def populate_selected_argparse(self, selected, app_data): + self.parser.description = "options for {} {}".format(self.name, selected) + self._impl_class.add_parser_arguments(self.parser, self.interpreter, self.key_to_meta[selected], app_data) + + def create(self, options): + options.meta = self.key_to_meta[getattr(options, self.name)] + if not issubclass(self._impl_class, Describe): + options.describe = self.describe(options, self.interpreter) + return super(CreatorSelector, self).create(options) diff --git a/venv/Lib/site-packages/virtualenv/run/plugin/discovery.py b/venv/Lib/site-packages/virtualenv/run/plugin/discovery.py new file mode 100644 index 00000000..e2cfe927 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/plugin/discovery.py @@ -0,0 +1,31 @@ +from __future__ import absolute_import, unicode_literals + +from .base import PluginLoader + + +class Discovery(PluginLoader): + """""" + + +def get_discover(parser, args): + discover_types = Discovery.entry_points_for("virtualenv.discovery") + discovery_parser = parser.add_argument_group( + title="discovery", description="discover and provide a target interpreter", + ) + discovery_parser.add_argument( + "--discovery", + choices=_get_default_discovery(discover_types), + default=next(i for i in discover_types.keys()), + required=False, + help="interpreter discovery method", + ) + options, _ = parser.parse_known_args(args) + discover_class = discover_types[options.discovery] + discover_class.add_parser_arguments(discovery_parser) + options, _ = parser.parse_known_args(args, namespace=options) + discover = discover_class(options) + return discover + + +def _get_default_discovery(discover_types): + return list(discover_types.keys()) diff --git a/venv/Lib/site-packages/virtualenv/run/plugin/seeders.py b/venv/Lib/site-packages/virtualenv/run/plugin/seeders.py new file mode 100644 index 00000000..26a33850 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/plugin/seeders.py @@ -0,0 +1,31 @@ +from __future__ import absolute_import, unicode_literals + +from .base import ComponentBuilder + + +class SeederSelector(ComponentBuilder): + def __init__(self, interpreter, parser): + possible = self.options("virtualenv.seed") + super(SeederSelector, self).__init__(interpreter, parser, "seeder", possible) + + def add_selector_arg_parse(self, name, choices): + self.parser.add_argument( + "--{}".format(name), + choices=choices, + default=self._get_default(), + required=False, + help="seed packages install method", + ) + self.parser.add_argument( + "--no-seed", "--without-pip", help="do not install seed packages", action="store_true", dest="no_seed", + ) + + @staticmethod + def _get_default(): + return "app-data" + + def handle_selected_arg_parse(self, options): + return super(SeederSelector, self).handle_selected_arg_parse(options) + + def create(self, options): + return self._impl_class(options) diff --git a/venv/Lib/site-packages/virtualenv/run/session.py b/venv/Lib/site-packages/virtualenv/run/session.py new file mode 100644 index 00000000..c936089f --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/run/session.py @@ -0,0 +1,90 @@ +from __future__ import absolute_import, unicode_literals + +import json +import logging + +from virtualenv.util.six import ensure_text + + +class Session(object): + """Represents a virtual environment creation session""" + + def __init__(self, verbosity, app_data, interpreter, creator, seeder, activators): + self._verbosity = verbosity + self._app_data = app_data + self._interpreter = interpreter + self._creator = creator + self._seeder = seeder + self._activators = activators + + @property + def verbosity(self): + """The verbosity of the run""" + return self._verbosity + + @property + def interpreter(self): + """Create a virtual environment based on this reference interpreter""" + return self._interpreter + + @property + def creator(self): + """The creator used to build the virtual environment (must be compatible with the interpreter)""" + return self._creator + + @property + def seeder(self): + """The mechanism used to provide the seed packages (pip, setuptools, wheel)""" + return self._seeder + + @property + def activators(self): + """Activators used to generate activations scripts""" + return self._activators + + def run(self): + self._create() + self._seed() + self._activate() + self.creator.pyenv_cfg.write() + + def _create(self): + logging.info("create virtual environment via %s", ensure_text(str(self.creator))) + self.creator.run() + logging.debug(_DEBUG_MARKER) + logging.debug("%s", _Debug(self.creator)) + + def _seed(self): + if self.seeder is not None and self.seeder.enabled: + logging.info("add seed packages via %s", self.seeder) + self.seeder.run(self.creator) + + def _activate(self): + if self.activators: + logging.info( + "add activators for %s", ", ".join(type(i).__name__.replace("Activator", "") for i in self.activators), + ) + for activator in self.activators: + activator.generate(self.creator) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self._app_data.close() + + +_DEBUG_MARKER = "=" * 30 + " target debug " + "=" * 30 + + +class _Debug(object): + """lazily populate debug""" + + def __init__(self, creator): + self.creator = creator + + def __unicode__(self): + return ensure_text(repr(self)) + + def __repr__(self): + return json.dumps(self.creator.debug, indent=2) diff --git a/venv/Lib/site-packages/virtualenv/seed/__init__.py b/venv/Lib/site-packages/virtualenv/seed/__init__.py new file mode 100644 index 00000000..01e6d4f4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import, unicode_literals diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/__init__.py b/venv/Lib/site-packages/virtualenv/seed/embed/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/base_embed.py b/venv/Lib/site-packages/virtualenv/seed/embed/base_embed.py new file mode 100644 index 00000000..f41b5fc4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/embed/base_embed.py @@ -0,0 +1,117 @@ +from __future__ import absolute_import, unicode_literals + +from abc import ABCMeta + +from six import add_metaclass + +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_str, ensure_text + +from ..seeder import Seeder +from ..wheels import Version + +PERIODIC_UPDATE_ON_BY_DEFAULT = True + + +@add_metaclass(ABCMeta) +class BaseEmbed(Seeder): + def __init__(self, options): + super(BaseEmbed, self).__init__(options, enabled=options.no_seed is False) + + self.download = options.download + self.extra_search_dir = [i.resolve() for i in options.extra_search_dir if i.exists()] + + self.pip_version = options.pip + self.setuptools_version = options.setuptools + self.wheel_version = options.wheel + + self.no_pip = options.no_pip + self.no_setuptools = options.no_setuptools + self.no_wheel = options.no_wheel + self.app_data = options.app_data + self.periodic_update = not options.no_periodic_update + + if not self.distribution_to_versions(): + self.enabled = False + + @classmethod + def distributions(cls): + return { + "pip": Version.bundle, + "setuptools": Version.bundle, + "wheel": Version.bundle, + } + + def distribution_to_versions(self): + return { + distribution: getattr(self, "{}_version".format(distribution)) + for distribution in self.distributions() + if getattr(self, "no_{}".format(distribution)) is False + } + + @classmethod + def add_parser_arguments(cls, parser, interpreter, app_data): + group = parser.add_mutually_exclusive_group() + group.add_argument( + "--no-download", + "--never-download", + dest="download", + action="store_false", + help="pass to disable download of the latest {} from PyPI".format("/".join(cls.distributions())), + default=True, + ) + group.add_argument( + "--download", + dest="download", + action="store_true", + help="pass to enable download of the latest {} from PyPI".format("/".join(cls.distributions())), + default=False, + ) + parser.add_argument( + "--extra-search-dir", + metavar="d", + type=Path, + nargs="+", + help="a path containing wheels to extend the internal wheel list (can be set 1+ times)", + default=[], + ) + for distribution, default in cls.distributions().items(): + parser.add_argument( + "--{}".format(distribution), + dest=distribution, + metavar="version", + help="version of {} to install as seed: embed, bundle or exact version".format(distribution), + default=default, + ) + for distribution in cls.distributions(): + parser.add_argument( + "--no-{}".format(distribution), + dest="no_{}".format(distribution), + action="store_true", + help="do not install {}".format(distribution), + default=False, + ) + parser.add_argument( + "--no-periodic-update", + dest="no_periodic_update", + action="store_true", + help="disable the periodic (once every 14 days) update of the embedded wheels", + default=not PERIODIC_UPDATE_ON_BY_DEFAULT, + ) + + def __unicode__(self): + result = self.__class__.__name__ + result += "(" + if self.extra_search_dir: + result += "extra_search_dir={},".format(", ".join(ensure_text(str(i)) for i in self.extra_search_dir)) + result += "download={},".format(self.download) + for distribution in self.distributions(): + if getattr(self, "no_{}".format(distribution)): + continue + result += " {}{},".format( + distribution, "={}".format(getattr(self, "{}_version".format(distribution), None) or "latest"), + ) + return result[:-1] + ")" + + def __repr__(self): + return ensure_str(self.__unicode__()) diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/pip_invoke.py b/venv/Lib/site-packages/virtualenv/seed/embed/pip_invoke.py new file mode 100644 index 00000000..372e140d --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/embed/pip_invoke.py @@ -0,0 +1,56 @@ +from __future__ import absolute_import, unicode_literals + +import logging +from contextlib import contextmanager + +from virtualenv.discovery.cached_py_info import LogCmd +from virtualenv.seed.embed.base_embed import BaseEmbed +from virtualenv.util.subprocess import Popen + +from ..wheels import Version, get_wheel, pip_wheel_env_run + + +class PipInvoke(BaseEmbed): + def __init__(self, options): + super(PipInvoke, self).__init__(options) + + def run(self, creator): + if not self.enabled: + return + for_py_version = creator.interpreter.version_release_str + with self.get_pip_install_cmd(creator.exe, for_py_version) as cmd: + env = pip_wheel_env_run(self.extra_search_dir, self.app_data) + self._execute(cmd, env) + + @staticmethod + def _execute(cmd, env): + logging.debug("pip seed by running: %s", LogCmd(cmd, env)) + process = Popen(cmd, env=env) + process.communicate() + if process.returncode != 0: + raise RuntimeError("failed seed with code {}".format(process.returncode)) + return process + + @contextmanager + def get_pip_install_cmd(self, exe, for_py_version): + cmd = [str(exe), "-m", "pip", "-q", "install", "--only-binary", ":all:", "--disable-pip-version-check"] + if not self.download: + cmd.append("--no-index") + folders = set() + for dist, version in self.distribution_to_versions().items(): + wheel = get_wheel( + distribution=dist, + version=version, + for_py_version=for_py_version, + search_dirs=self.extra_search_dir, + download=False, + app_data=self.app_data, + do_periodic_update=self.periodic_update, + ) + if wheel is None: + raise RuntimeError("could not get wheel for distribution {}".format(dist)) + folders.add(str(wheel.path.parent)) + cmd.append(Version.as_pip_req(dist, wheel.version)) + for folder in sorted(folders): + cmd.extend(["--find-links", str(folder)]) + yield cmd diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/__init__.py b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/__init__.py b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/base.py b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/base.py new file mode 100644 index 00000000..a1d946d5 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/base.py @@ -0,0 +1,158 @@ +from __future__ import absolute_import, unicode_literals + +import logging +import os +import re +import zipfile +from abc import ABCMeta, abstractmethod +from tempfile import mkdtemp + +from distlib.scripts import ScriptMaker, enquote_executable +from six import PY3, add_metaclass + +from virtualenv.util import ConfigParser +from virtualenv.util.path import Path, safe_delete +from virtualenv.util.six import ensure_text + + +@add_metaclass(ABCMeta) +class PipInstall(object): + def __init__(self, wheel, creator, image_folder): + self._wheel = wheel + self._creator = creator + self._image_dir = image_folder + self._extracted = False + self.__dist_info = None + self._console_entry_points = None + + @abstractmethod + def _sync(self, src, dst): + raise NotImplementedError + + def install(self, version_info): + self._extracted = True + # sync image + for filename in self._image_dir.iterdir(): + into = self._creator.purelib / filename.name + if into.exists(): + if into.is_dir() and not into.is_symlink(): + safe_delete(into) + else: + into.unlink() + self._sync(filename, into) + # generate console executables + consoles = set() + script_dir = self._creator.script_dir + for name, module in self._console_scripts.items(): + consoles.update(self._create_console_entry_point(name, module, script_dir, version_info)) + logging.debug("generated console scripts %s", " ".join(i.name for i in consoles)) + + def build_image(self): + # 1. first extract the wheel + logging.debug("build install image for %s to %s", self._wheel.name, self._image_dir) + with zipfile.ZipFile(str(self._wheel)) as zip_ref: + zip_ref.extractall(str(self._image_dir)) + self._extracted = True + # 2. now add additional files not present in the distribution + new_files = self._generate_new_files() + # 3. finally fix the records file + self._fix_records(new_files) + + def _records_text(self, files): + record_data = "\n".join( + "{},,".format(os.path.relpath(ensure_text(str(rec)), ensure_text(str(self._image_dir)))) for rec in files + ) + return record_data + + def _generate_new_files(self): + new_files = set() + installer = self._dist_info / "INSTALLER" + installer.write_text("pip\n") + new_files.add(installer) + # inject a no-op root element, as workaround for bug in https://github.com/pypa/pip/issues/7226 + marker = self._image_dir / "{}.virtualenv".format(self._dist_info.stem) + marker.write_text("") + new_files.add(marker) + folder = mkdtemp() + try: + to_folder = Path(folder) + rel = os.path.relpath(ensure_text(str(self._creator.script_dir)), ensure_text(str(self._creator.purelib))) + version_info = self._creator.interpreter.version_info + for name, module in self._console_scripts.items(): + new_files.update( + Path(os.path.normpath(ensure_text(str(self._image_dir / rel / i.name)))) + for i in self._create_console_entry_point(name, module, to_folder, version_info) + ) + finally: + safe_delete(folder) + return new_files + + @property + def _dist_info(self): + if self._extracted is False: + return None # pragma: no cover + if self.__dist_info is None: + files = [] + for filename in self._image_dir.iterdir(): + files.append(filename.name) + if filename.suffix == ".dist-info": + self.__dist_info = filename + break + else: + msg = "no .dist-info at {}, has {}".format(self._image_dir, ", ".join(files)) # pragma: no cover + raise RuntimeError(msg) # pragma: no cover + return self.__dist_info + + @abstractmethod + def _fix_records(self, extra_record_data): + raise NotImplementedError + + @property + def _console_scripts(self): + if self._extracted is False: + return None # pragma: no cover + if self._console_entry_points is None: + self._console_entry_points = {} + entry_points = self._dist_info / "entry_points.txt" + if entry_points.exists(): + parser = ConfigParser.ConfigParser() + with entry_points.open() as file_handler: + reader = getattr(parser, "read_file" if PY3 else "readfp") + reader(file_handler) + if "console_scripts" in parser.sections(): + for name, value in parser.items("console_scripts"): + match = re.match(r"(.*?)-?\d\.?\d*", name) + if match: + name = match.groups(1)[0] + self._console_entry_points[name] = value + return self._console_entry_points + + def _create_console_entry_point(self, name, value, to_folder, version_info): + result = [] + maker = ScriptMakerCustom(to_folder, version_info, self._creator.exe, name) + specification = "{} = {}".format(name, value) + new_files = maker.make(specification) + result.extend(Path(i) for i in new_files) + return result + + def clear(self): + if self._image_dir.exists(): + safe_delete(self._image_dir) + + def has_image(self): + return self._image_dir.exists() and next(self._image_dir.iterdir()) is not None + + +class ScriptMakerCustom(ScriptMaker): + def __init__(self, target_dir, version_info, executable, name): + super(ScriptMakerCustom, self).__init__(None, str(target_dir)) + self.clobber = True # overwrite + self.set_mode = True # ensure they are executable + self.executable = enquote_executable(str(executable)) + self.version_info = version_info.major, version_info.minor + self.variants = {"", "X", "X.Y"} + self._name = name + + def _write_script(self, names, shebang, script_bytes, filenames, ext): + names.add("{}{}.{}".format(self._name, *self.version_info)) + super(ScriptMakerCustom, self)._write_script(names, shebang, script_bytes, filenames, ext) diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/copy.py b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/copy.py new file mode 100644 index 00000000..29d0bc88 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/copy.py @@ -0,0 +1,35 @@ +from __future__ import absolute_import, unicode_literals + +import os + +from virtualenv.util.path import Path, copy +from virtualenv.util.six import ensure_text + +from .base import PipInstall + + +class CopyPipInstall(PipInstall): + def _sync(self, src, dst): + copy(src, dst) + + def _generate_new_files(self): + # create the pyc files + new_files = super(CopyPipInstall, self)._generate_new_files() + new_files.update(self._cache_files()) + return new_files + + def _cache_files(self): + version = self._creator.interpreter.version_info + py_c_ext = ".{}-{}{}.pyc".format(self._creator.interpreter.implementation.lower(), version.major, version.minor) + for root, dirs, files in os.walk(ensure_text(str(self._image_dir)), topdown=True): + root_path = Path(root) + for name in files: + if name.endswith(".py"): + yield root_path / "{}{}".format(name[:-3], py_c_ext) + for name in dirs: + yield root_path / name / "__pycache__" + + def _fix_records(self, new_files): + extra_record_data_str = self._records_text(new_files) + with open(ensure_text(str(self._dist_info / "RECORD")), "ab") as file_handler: + file_handler.write(extra_record_data_str.encode("utf-8")) diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/symlink.py b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/symlink.py new file mode 100644 index 00000000..f958b654 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/pip_install/symlink.py @@ -0,0 +1,61 @@ +from __future__ import absolute_import, unicode_literals + +import os +import subprocess +from stat import S_IREAD, S_IRGRP, S_IROTH + +from virtualenv.util.path import safe_delete, set_tree +from virtualenv.util.six import ensure_text +from virtualenv.util.subprocess import Popen + +from .base import PipInstall + + +class SymlinkPipInstall(PipInstall): + def _sync(self, src, dst): + src_str = ensure_text(str(src)) + dest_str = ensure_text(str(dst)) + os.symlink(src_str, dest_str) + + def _generate_new_files(self): + # create the pyc files, as the build image will be R/O + process = Popen( + [ensure_text(str(self._creator.exe)), "-m", "compileall", ensure_text(str(self._image_dir))], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + process.communicate() + # the root pyc is shared, so we'll not symlink that - but still add the pyc files to the RECORD for close + root_py_cache = self._image_dir / "__pycache__" + new_files = set() + if root_py_cache.exists(): + new_files.update(root_py_cache.iterdir()) + new_files.add(root_py_cache) + safe_delete(root_py_cache) + core_new_files = super(SymlinkPipInstall, self)._generate_new_files() + # remove files that are within the image folder deeper than one level (as these will be not linked directly) + for file in core_new_files: + try: + rel = file.relative_to(self._image_dir) + if len(rel.parts) > 1: + continue + except ValueError: + pass + new_files.add(file) + return new_files + + def _fix_records(self, new_files): + new_files.update(i for i in self._image_dir.iterdir()) + extra_record_data_str = self._records_text(sorted(new_files, key=str)) + with open(ensure_text(str(self._dist_info / "RECORD")), "wb") as file_handler: + file_handler.write(extra_record_data_str.encode("utf-8")) + + def build_image(self): + super(SymlinkPipInstall, self).build_image() + # protect the image by making it read only + set_tree(self._image_dir, S_IREAD | S_IRGRP | S_IROTH) + + def clear(self): + if self._image_dir.exists(): + safe_delete(self._image_dir) + super(SymlinkPipInstall, self).clear() diff --git a/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/via_app_data.py b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/via_app_data.py new file mode 100644 index 00000000..e5951280 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/embed/via_app_data/via_app_data.py @@ -0,0 +1,142 @@ +"""Bootstrap""" +from __future__ import absolute_import, unicode_literals + +import logging +import sys +import traceback +from contextlib import contextmanager +from subprocess import CalledProcessError +from threading import Lock, Thread + +import six + +from virtualenv.info import fs_supports_symlink +from virtualenv.seed.embed.base_embed import BaseEmbed +from virtualenv.seed.wheels import get_wheel +from virtualenv.util.lock import _CountedFileLock +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_text + +from .pip_install.copy import CopyPipInstall +from .pip_install.symlink import SymlinkPipInstall + + +class FromAppData(BaseEmbed): + def __init__(self, options): + super(FromAppData, self).__init__(options) + self.symlinks = options.symlink_app_data + + @classmethod + def add_parser_arguments(cls, parser, interpreter, app_data): + super(FromAppData, cls).add_parser_arguments(parser, interpreter, app_data) + can_symlink = app_data.transient is False and fs_supports_symlink() + parser.add_argument( + "--symlink-app-data", + dest="symlink_app_data", + action="store_true" if can_symlink else "store_false", + help="{} symlink the python packages from the app-data folder (requires seed pip>=19.3)".format( + "" if can_symlink else "not supported - ", + ), + default=False, + ) + + def run(self, creator): + if not self.enabled: + return + with self._get_seed_wheels(creator) as name_to_whl: + pip_version = name_to_whl["pip"].version_tuple if "pip" in name_to_whl else None + installer_class = self.installer_class(pip_version) + exceptions = {} + + def _install(name, wheel): + try: + logging.debug("install %s from wheel %s via %s", name, wheel, installer_class.__name__) + key = Path(installer_class.__name__) / wheel.path.stem + wheel_img = self.app_data.wheel_image(creator.interpreter.version_release_str, key) + installer = installer_class(wheel.path, creator, wheel_img) + with _CountedFileLock(ensure_text(str(wheel_img.parent / "{}.lock".format(wheel_img.name)))): + if not installer.has_image(): + installer.build_image() + installer.install(creator.interpreter.version_info) + except Exception: # noqa + exceptions[name] = sys.exc_info() + + threads = list(Thread(target=_install, args=(n, w)) for n, w in name_to_whl.items()) + for thread in threads: + thread.start() + for thread in threads: + thread.join() + if exceptions: + messages = ["failed to build image {} because:".format(", ".join(exceptions.keys()))] + for value in exceptions.values(): + exc_type, exc_value, exc_traceback = value + messages.append("".join(traceback.format_exception(exc_type, exc_value, exc_traceback))) + raise RuntimeError("\n".join(messages)) + + @contextmanager + def _get_seed_wheels(self, creator): + name_to_whl, lock, fail = {}, Lock(), {} + + def _get(distribution, version): + for_py_version = creator.interpreter.version_release_str + failure, result = None, None + # fallback to download in case the exact version is not available + for download in [True] if self.download else [False, True]: + failure = None + try: + result = get_wheel( + distribution=distribution, + version=version, + for_py_version=for_py_version, + search_dirs=self.extra_search_dir, + download=download, + app_data=self.app_data, + do_periodic_update=self.periodic_update, + ) + if result is not None: + break + except Exception as exception: # noqa + logging.exception("fail") + failure = exception + if failure: + if isinstance(failure, CalledProcessError): + msg = "failed to download {}".format(distribution) + if version is not None: + msg += " version {}".format(version) + msg += ", pip download exit code {}".format(failure.returncode) + output = failure.output if six.PY2 else (failure.output + failure.stderr) + if output: + msg += "\n" + msg += output + else: + msg = repr(failure) + logging.error(msg) + with lock: + fail[distribution] = version + else: + with lock: + name_to_whl[distribution] = result + + threads = list( + Thread(target=_get, args=(distribution, version)) + for distribution, version in self.distribution_to_versions().items() + ) + for thread in threads: + thread.start() + for thread in threads: + thread.join() + if fail: + raise RuntimeError("seed failed due to failing to download wheels {}".format(", ".join(fail.keys()))) + yield name_to_whl + + def installer_class(self, pip_version_tuple): + if self.symlinks and pip_version_tuple: + # symlink support requires pip 19.3+ + if pip_version_tuple >= (19, 3): + return SymlinkPipInstall + return CopyPipInstall + + def __unicode__(self): + base = super(FromAppData, self).__unicode__() + msg = ", via={}, app_data_dir={}".format("symlink" if self.symlinks else "copy", self.app_data) + return base[:-1] + msg + base[-1] diff --git a/venv/Lib/site-packages/virtualenv/seed/seeder.py b/venv/Lib/site-packages/virtualenv/seed/seeder.py new file mode 100644 index 00000000..2bcccfc7 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/seeder.py @@ -0,0 +1,39 @@ +from __future__ import absolute_import, unicode_literals + +from abc import ABCMeta, abstractmethod + +from six import add_metaclass + + +@add_metaclass(ABCMeta) +class Seeder(object): + """A seeder will install some seed packages into a virtual environment.""" + + # noinspection PyUnusedLocal + def __init__(self, options, enabled): + """ + + :param options: the parsed options as defined within :meth:`add_parser_arguments` + :param enabled: a flag weather the seeder is enabled or not + """ + self.enabled = enabled + + @classmethod + def add_parser_arguments(cls, parser, interpreter, app_data): + """ + Add CLI arguments for this seed mechanisms. + + :param parser: the CLI parser + :param app_data: the CLI parser + :param interpreter: the interpreter this virtual environment is based of + """ + raise NotImplementedError + + @abstractmethod + def run(self, creator): + """Perform the seed operation. + + :param creator: the creator (based of :class:`virtualenv.create.creator.Creator`) we used to create this \ + virtual environment + """ + raise NotImplementedError diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/__init__.py b/venv/Lib/site-packages/virtualenv/seed/wheels/__init__.py new file mode 100644 index 00000000..dbffe2e4 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/wheels/__init__.py @@ -0,0 +1,11 @@ +from __future__ import absolute_import, unicode_literals + +from .acquire import get_wheel, pip_wheel_env_run +from .util import Version, Wheel + +__all__ = ( + "get_wheel", + "pip_wheel_env_run", + "Version", + "Wheel", +) diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/acquire.py b/venv/Lib/site-packages/virtualenv/seed/wheels/acquire.py new file mode 100644 index 00000000..823d3484 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/wheels/acquire.py @@ -0,0 +1,122 @@ +"""Bootstrap""" +from __future__ import absolute_import, unicode_literals + +import logging +import os +import sys +from operator import eq, lt + +import six + +from virtualenv.util.path import Path +from virtualenv.util.six import ensure_str +from virtualenv.util.subprocess import Popen, subprocess + +from .bundle import from_bundle +from .util import Version, Wheel, discover_wheels + + +def get_wheel(distribution, version, for_py_version, search_dirs, download, app_data, do_periodic_update): + """ + Get a wheel with the given distribution-version-for_py_version trio, by using the extra search dir + download + """ + # not all wheels are compatible with all python versions, so we need to py version qualify it + # 1. acquire from bundle + wheel = from_bundle(distribution, version, for_py_version, search_dirs, app_data, do_periodic_update) + + # 2. download from the internet + if version not in Version.non_version and download: + wheel = download_wheel( + distribution=distribution, + version_spec=Version.as_version_spec(version), + for_py_version=for_py_version, + search_dirs=search_dirs, + app_data=app_data, + to_folder=app_data.house, + ) + return wheel + + +def download_wheel(distribution, version_spec, for_py_version, search_dirs, app_data, to_folder): + to_download = "{}{}".format(distribution, version_spec or "") + logging.debug("download wheel %s %s to %s", to_download, for_py_version, to_folder) + cmd = [ + sys.executable, + "-m", + "pip", + "download", + "--progress-bar", + "off", + "--disable-pip-version-check", + "--only-binary=:all:", + "--no-deps", + "--python-version", + for_py_version, + "-d", + str(to_folder), + to_download, + ] + # pip has no interface in python - must be a new sub-process + env = pip_wheel_env_run(search_dirs, app_data) + process = Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) + out, err = process.communicate() + if process.returncode != 0: + kwargs = {"output": out} + if six.PY2: + kwargs["output"] += err + else: + kwargs["stderr"] = err + raise subprocess.CalledProcessError(process.returncode, cmd, **kwargs) + result = _find_downloaded_wheel(distribution, version_spec, for_py_version, to_folder, out) + logging.debug("downloaded wheel %s", result.name) + return result + + +def _find_downloaded_wheel(distribution, version_spec, for_py_version, to_folder, out): + for line in out.splitlines(): + line = line.lstrip() + for marker in ("Saved ", "File was already downloaded "): + if line.startswith(marker): + return Wheel(Path(line[len(marker) :]).absolute()) + # if for some reason the output does not match fallback to latest version with that spec + return find_compatible_in_house(distribution, version_spec, for_py_version, to_folder) + + +def find_compatible_in_house(distribution, version_spec, for_py_version, in_folder): + wheels = discover_wheels(in_folder, distribution, None, for_py_version) + start, end = 0, len(wheels) + if version_spec is not None: + if version_spec.startswith("<"): + from_pos, op = 1, lt + elif version_spec.startswith("=="): + from_pos, op = 2, eq + else: + raise ValueError(version_spec) + version = Wheel.as_version_tuple(version_spec[from_pos:]) + start = next((at for at, w in enumerate(wheels) if op(w.version_tuple, version)), len(wheels)) + + return None if start == end else wheels[start] + + +def pip_wheel_env_run(search_dirs, app_data): + for_py_version = "{}.{}".format(*sys.version_info[0:2]) + env = os.environ.copy() + env.update( + { + ensure_str(k): str(v) # python 2 requires these to be string only (non-unicode) + for k, v in {"PIP_USE_WHEEL": "1", "PIP_USER": "0", "PIP_NO_INPUT": "1"}.items() + }, + ) + wheel = get_wheel( + distribution="pip", + version=None, + for_py_version=for_py_version, + search_dirs=search_dirs, + download=False, + app_data=app_data, + do_periodic_update=False, + ) + if wheel is None: + raise RuntimeError("could not find the embedded pip") + env[str("PYTHONPATH")] = str(wheel.path) + return env diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/bundle.py b/venv/Lib/site-packages/virtualenv/seed/wheels/bundle.py new file mode 100644 index 00000000..6ac15f9e --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/wheels/bundle.py @@ -0,0 +1,51 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.app_data import AppDataDiskFolder, TempAppData + +from ..wheels.embed import get_embed_wheel +from .periodic_update import periodic_update +from .util import Version, Wheel, discover_wheels + + +def from_bundle(distribution, version, for_py_version, search_dirs, app_data, do_periodic_update): + """ + Load the bundled wheel to a cache directory. + """ + of_version = Version.of_version(version) + wheel = load_embed_wheel(app_data, distribution, for_py_version, of_version) + + if version != Version.embed: + # 2. check if we have upgraded embed + if isinstance(app_data, AppDataDiskFolder) and not isinstance(app_data, TempAppData): + wheel = periodic_update(distribution, for_py_version, wheel, search_dirs, app_data, do_periodic_update) + + # 3. acquire from extra search dir + found_wheel = from_dir(distribution, of_version, for_py_version, search_dirs) + if found_wheel is not None: + if wheel is None: + wheel = found_wheel + elif found_wheel.version_tuple > wheel.version_tuple: + wheel = found_wheel + return wheel + + +def load_embed_wheel(app_data, distribution, for_py_version, version): + wheel = get_embed_wheel(distribution, for_py_version) + if wheel is not None: + version_match = version == wheel.version + if version is None or version_match: + with app_data.ensure_extracted(wheel.path, lambda: app_data.house) as wheel_path: + wheel = Wheel(wheel_path) + else: # if version does not match ignore + wheel = None + return wheel + + +def from_dir(distribution, version, for_py_version, directories): + """ + Load a compatible wheel from a given folder. + """ + for folder in directories: + for wheel in discover_wheels(folder, distribution, version, for_py_version): + return wheel + return None diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/embed/__init__.py b/venv/Lib/site-packages/virtualenv/seed/wheels/embed/__init__.py new file mode 100644 index 00000000..ef887fa8 --- /dev/null +++ b/venv/Lib/site-packages/virtualenv/seed/wheels/embed/__init__.py @@ -0,0 +1,62 @@ +from __future__ import absolute_import, unicode_literals + +from virtualenv.seed.wheels.util import Wheel +from virtualenv.util.path import Path + +BUNDLE_FOLDER = Path(__file__).absolute().parent +BUNDLE_SUPPORT = { + "3.10": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-49.2.0-py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, + "3.9": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-49.2.0-py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, + "3.8": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-49.2.0-py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, + "3.7": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-49.2.0-py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, + "3.6": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-49.2.0-py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, + "3.5": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-49.2.0-py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, + "3.4": { + "pip": "pip-19.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-43.0.0-py2.py3-none-any.whl", + "wheel": "wheel-0.33.6-py2.py3-none-any.whl", + }, + "2.7": { + "pip": "pip-20.1.1-py2.py3-none-any.whl", + "setuptools": "setuptools-44.1.1-py2.py3-none-any.whl", + "wheel": "wheel-0.34.2-py2.py3-none-any.whl", + }, +} +MAX = "3.10" + + +def get_embed_wheel(distribution, for_py_version): + path = BUNDLE_FOLDER / (BUNDLE_SUPPORT.get(for_py_version, {}) or BUNDLE_SUPPORT[MAX]).get(distribution) + return Wheel.from_path(path) + + +__all__ = ( + "get_embed_wheel", + "BUNDLE_SUPPORT", + "MAX", + "BUNDLE_FOLDER", +) diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/embed/pip-19.1.1-py2.py3-none-any.whl b/venv/Lib/site-packages/virtualenv/seed/wheels/embed/pip-19.1.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..8476c119301f5ea25729bdadb47c716534e1e8c2 GIT binary patch literal 1360957 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

07ob&w`(yhX_OLgX;K$vu37@^)A8 zIWs@&LC%0p;2ptq`)hmctDm9N5}mz6duEo}0|oZ6r}8VeAMsIP<;9SE>XJr(kIu8c z!;xN&GG?Sx18(c<>9o1-=uGvr zIjvnbu~CRz^v2E_i>~Ua-_llP7Mo;%IJ!o>W-pP1>jcHcmOv73N;*f zIH}x(A`6IvHfyA$zt@=Q-#!y0zr?^rC^srlRQ9R>=WNkJf~R)+9wBp0G(Ro$r@T$N zUaN`64M|g%gH73g)m4=@c2mAcaNb9S;f?YuFMJ`Oe-ezl*jF&KA5cs@fA{%!4*i1$ z$m5epx^*V8G&^9Rs<~w(3al@s^0}{_2sGb~cAPFmtE59aFO5{)T=P=b}a2 z&gLy#x%yCaU2=TwP*H*%=b&E}DGA17Uyt#tHnTM=xI!@L&y3)t{t|Fs5U>hOPp?99 z-w=IMwiYaY1%6fm^|OjSzr!anx%!OKYCu#*>&117$*9r`Xsm>5b1ZFCsobl;Q?Yj* zyaxc@t}ksjoaQz*4@ed_*HYB9Q7HY)C%(B4Q!uGgrZze3^_2gnZoLs34Xep) zY-Eb#v!@eT4or4EtQKrM#rPs}_rzE{QQnwVV#4{dDfHn=ZeL=IxDvxENX!(G#HFCG zE>#6!BVD!(jgmCl>5`KrM#Am_)dY<~tod)QN_MDodKR5~%+1A_oHoG`->KZ1|Ckch z_TjK)ATl3hd6GmKn_7tA-1keyz_55BI3~+>UAWBFUVFiknIXO=SRmTxLM54UOqA;R zb$su)^8ab$?__V=vMc+*yTq$~d-sSRh%Qbe)scYhy?!$qS7^9!w5QRDFozw)x{oa1 zsQBQJ$7#x9bIig0!}KZ-Zxln>+kuFnFs^|F0@IDnED?wajpUtAyeDYHBX*BDZZ3>E zP_)o9yynOC8mjf9%5e$(GXO!UE$i;lUTP?8oUnOW?)>DdWp{CMRSn z!#Zt^|6)Htv*jPXQUG7(o8dPKd!tWL-`SV2LQY*Rt!_vb>Z5MR5blK+8zR=133GNa zxviQ0HnGSirl15EWuk=v%(-GyETP5q>D~2@v&(_LcD)9=&DGa;<$dYB7h-wSuo>uX z7QLV#VI3zaK_L{pVIP?WZyfMp0948Z*0fB}fKfH@cFka>S6OtAgQon(H9W8?D+Du} z>6S`LCXE@Td|5~gg~ZdE~u;#b>Qmr-{#vi7#fqqii9QT-C%4Zm}4DQCyE3%B}~F?OjTl2;0J z1SmnE87h|E-w8k8dVG%ri11<43$PXID1Z*+kINng60`o6{G(d~x-;{1`1+##>jY|nUaH`<%79t|UY#;$Wp?3xGSSz(c0wSXtykNv#v?YS`0kV*a zrR(Lf@w^Jd*iaE#bHS?-Frol^-D92pdSt0Pbsv2!Vb;e%sw*gVh2S{L6tiRxepe+K zTFFDH#8v~*AVdK81R!uI_QP^;8IqG%?>}HnRedUyKC~)S(Fm&@Ikx%Dg-$uq`Zc2z zJd3<4Q~}_1UZFMPy$mfMd6qPobc4>7P<PcUQ{Cdd1akvqjpP0oj?;YCHOO2Q!J;h0h@!&V?#r*F$yTa zVFDc36YLv>JOSh(%C(TH-&i~c#pM3L29#p~#I;ZwqSz0B7Z^iWo(Kc!B?Y`qlnz2=8Nv>hGb7^FuwZ2op&E5d zFh5P8Ync0Tel&Sfx3hHZHPck)8h&Bnrj-=tR(P^5-7KaOyd+tJT%1)kRg6+99w~X3 zTKB4^hXUh;ve3pFW4Z`E2XR`T0k{*av5!SAR5VzCV@t?q>Ws6GAQLxbJmOjxBMj0Ll#xxF7NR>TN+n6IQ7zwPBdl&#pR=i1JEUM9F zeYQ{}Ye5Z6JpJ@8<-HY&QN5^9StMj$!v}}7>{Z0Vd=U~&e}U01lf1M_`@`)8jfOyU zRmnP3gUgzNIlVG|>{F^mHGdA3L%BqfkX6&lGpbxIevt|Fe6SS(MH7PivR8cVA6~2g z5rq?~0sS6Ekb#t%gu3Q-R2Dg*W%)x+l^qdP>YGB>bglb3ECv^pbM|*8%dZizrLOaa z>&D$$a5C+B&R3~^tr7LF*Nr?&L`xEWcn?uK>ZX1u`vtw-Kef=$aWfnK5e!9|0gV`s z%SFLJmcju4EV%{*HI}I*q1BOk7a*Kz;_VodrDoSnpXc+_)0ABo&CS+i86Kc7DEwa9 zRxipBC$xTI9qL3TkKYWI1YjVazJP*vez&X+g$7^7>sCdJTHPdBLmm^s5mLvMjx*oX z9Vq3$(tz3?-f=CF7xd7YMvH1EW?)-D?ajkYr{iQ;usi9RPX3IS%qH<=cq`kEn4gdu z+l;wjaYlRtnkjHIqYE#f2C=rv^7m*BYQz}ANjVFV^xmmf?*fAW+(<*Ej7voLAVj?U z!GhMJX*F8Urry(yH}=_tl~#n6UfsH8PYqf%wN}*l z5|{)Cfl4nfv50nbZJGR30~2JoLz4N;QPKI3$(5ce{nMnBRpxP-;nbP59Xh{5rTet} z*FjP?;kL9#E-WBZCcRowmE3pRy9%5dQ{p~U`E3t|BWKwLkysF**5_bOw$%!Vpi~pC z=l(9Sy~^5sUjzG;=e2=>AXZaccJA-x+c~G55-!)fsEN=O0HJ-)>BR;3P2JjpM%E-< zLkG4)L5AIJUScTHA2<)tSYLvE;FSuw2=;RlvLkn$Lvie%K847zh!yw)Uiuj)|>)g<0uj>&WUJG#gKhzZA@kY5f1&!eNe7XLP z8*S|DCtLE@wl|+->;$!s0h4kC=}+{`W*hQVB|CBitp#r|v;bBm{(R9usL|~^LlS@^ zLlTzQ3SAIr9$N-3j0z0b_K^`Mc@5e*vsMP~#;n^ z-vs%X@uR?&8Q>(+C)h<_BWV^1G0j6~-~d?u00J%u#j*q6i3hQV`o;eD?<0%s_HtL} z*uQW{6?D;{hi2De@^%~E5Wae*F&Q41$geDQ^Rmm^k!Yq2I_RNTOUr%$Bd@%ti-l7i zgmUgpUg(NyC#Gvqn_NchglN1lB;~;3y;?9J93l&puOTpEMN@Vg%-sW|0Q%DFd3Z=E z7hr@21mb9ul~SLhbam+3q3MgU=jTjvq9HDlYo0h&LaB|C)K1Y>BlgW7TyqH@yoGp~ z#%&XNt^xwf>Y>`(THJS*tC=S2`IKyZs&X!Awc;G&Qy;`fU;{=MyG2%trndFsSQEf! z!O1zQKBieZ?Zs%1@BHGrI~_m>5{Qg(%!#I#hVcx0+W{Jmq~!#?=L6*K24@R-oo>^T zj?mZ)IrUY#uIi!_`gplT1D7xv1B!Wy4FT;Qw=&^<`k(b{L2xkJXlT=STwxkm36QhB2t<+*7e&K>;A>4GRMulOL6q5)oGAeyZ%aLUzWE)n6Bi2<=h60j8 zckw8eIbUYF42gsb#WB4MpPb#nr+0^9+n6ubZuY?P=LHxc0uW z-k-N=7*vn}(M2>+>$Gme4jQNe*yL1i6xAU<+pLnxRa_YfRm{<hLBAe!gcB`1Nc~&*ex~o^Gu!G!rat2T0SkVj3K=+nd$W%Fj%#W$Y>_!$~p;H%jYsOB9_Cegz8Tw z|8Csa_6=*!P24{rf4ny|$`Q2b+Q*zoVX9Puxd7cbN){d^znN7d{|cwA>eA4ax`n9Tj>^nOG`{3SG4G+fDyF^I3!#hWR74 z^ogFx`tLrhTzZNxOC4G;xpXgs_7)L=KF%9rjd$c?2;0qRFwRR)4K;lrZZ&8JQX$b) zy4G{WpmIa}D-hxkY^2hSw0R06lAVYNN$ZR!YmDS-Q|f}u`>Z+OQN4i;B1u1`x{&Sl z?c~G!1<-qxX+0yB-3PDd2Tr z5wFN9F+D`XK z=fv+$D=2!c+&JvcP&i-ZytSstj%olVQV`D}SrYTHfX@K4S+?P)v}sMIhB4bPpo{pb z+Z;bL_zH?{@+=Mdc0zmlYLFQ#$gnY+{Az-Sbf0{fxWTvwYAEHkB#GlKH_fI*^w&T{ zfwFD|B0ezU7V@|j{I6vft0jjUJWwNG@H!K7cWBP&%i_};C6f!E*As-w$o>cal{N%0 zEMk&_RpgsNg@DuU{UI4-;6FQ}GPml<UAv;wJfz8<^$gKvDjv3|>HvuF{I<*3@7a>nKB_P{1 z8lf2A?L4&(SgL{B#s-u)LcLW%zF(oSI1~d;ODc7j2wpIMODX7mPAgpGRbVl2wPR`Q zr++^Ic}S~nE<)2(hY6uEP7y9$R(PR$gy^hlNcVFAW=t2zA7$0&RdaGc zGvD(Lr`A4rJQ~|dWj0#kTdoj~O_;5xapO`4xg(joge(xd4_xo;g*H z*B#aHcF=tcw=SiN9(lV^Drt!mvnDE2S8FfEbXn!>gWzCL0|{<WZO5pMG^K}$-{{G?T#T@NyLZg-AZElKl<1=3DX(9-x)I819k#Ycn+Pl#FF<)S+2H4_)?9vv|k;7>_ShpAbRYeKKx+D;iHIH z6F9hVH|FhK{J+_F`>^k$v4H^ZewwZ$=y}(>=kw+L(TX>E6*r^yDZdW^k# zG+aEXdtUEsP)9hV5WDR0p%6_QaJU2l>`X)|^Jdh3R`h2)bZ8q2_=2hG02IFsiF#ks zR>dApFW*npK|l?Zq-$HsUo3%6xZ36I@db+OI*zY9kDdkoB6qDUiXYF%!^dLuBtu*c z9O$$4cQRBk>w@LPFVH>o3Rw~!NC;@6-YH+3hr;Q>S6fFGOnt@R-5+d)_%_SS7Huvc z<#qfCsD3PBcgN&|^^x4lR^n@F8`ccUILFkj>&l|J^73L>H{<{pV=xHa^Arvc0oKUh zde^ULd9^28lTz55+p05-uR7l;N>}48`WfPfCl84Nmlr`t`Is1HlKAF6uemds(-o_` zxQ^R`#e4d&dxyDS#?KVi(SRN*9&f5XQZ~0>2mP98jP0!9(%0+qdGGurIAXXI>;rk0 zZqGURhqhqgh#U^j_hPijqfEg$MxKTc`cY5yLlTx{>#Y|N&gw4b?`c8jvfj@gc)c~n z)9reB$5|a?aBoX}DE^>MaFwPDziBoGv@vXs!LmV9=xu!(r-dv2$4oA5s18lG1#>$_ zZP-g!Yo>{w%E`muU?Gl!1dth+zrbFj-1wZMEnh!HmJ0M0jioYu;0W!n+$-J(Lgp^; zD~!#U9pjayJ~m0O)DNr8vXR_Pn0`V{&XU@OXa)3qU8qRkgGWq0?SSNekrrT7vb+qF zCYv7I)s!JZPQ>Z;df%^~>i6#Y?jpLDxl8;5%DTWD>BRI4#U{{-5dkjtQgBCidgo)! zdAE~H#mrqL*ei<)PP&A}i|na06qvtY#d)k4>TwB>j}>{WSlnpas7vh$!}@Z*_cvs9 zosIpZiIIRx(3WwJIbqzVW}6nFEgs|bG)cvhZ+@SWH^Z<+dpP$%)L+iYA(KV8z7Z0SJuHq$Bh-nia% zOtY8^8nIV1r@JOOBZ-pSwX&*!wb-t=iNT9yWRq?UbkWmTiagNUnO8+F3~Pey16&?F zbFwEMo$w^Vg+v5K+rN4JULUTnpRaMt zYQ;O_R($r4-HU*OqS)ni+8ukU01x+WRlub%0(7M$xGC6%pd zo9tt*RUe)y9!`qps=l(xJ7L-O1#GJVMTAaljh?I1{Ck+2Nj!(A4oR5@w$&foBadqN zd-LHb5uBk}sjy{brP@mf7p$qXk&|^0+Qud{+*{PJ-s*>O7DQLbrfJpH zARVJ=lIGq8tUIFG>1nUnE7s=pEM&12Q{%wB#;Oz(908aqnrDc`t&EJ2UOu#@Ow=_r zNxwol*fVoXKkA%IAJ75TBg5RN+5|y-1-^c&KXD)@)=Mo<^2N3bPQtgUmRqGy*R$gK zv+%DTWzRLpG_XKQtyt3|b>V4vB0(yN%=vkd*FnQe1ckNuHULzKl!~XNP91p3 zbhmS5uNIs5)ceI-fG@A-)`(`Z?!!D?1yhfv3UV_&1=ZNJQ0gz}%YZP8#)yvJCC{F< zxb0%UF72Xvvha!4d$LBr)Q7yvv5P3^QgUF&YbQKRyWw2o;i&z_5EgFFyWpCl1(=|EqXcip`dd03r2Ken-UuE%oCcAJq3GO&w!BThON2m(Amr9>ZiIk zaIIdGz~yii&{^?i|7zcXivj-Abv*_5ZcheN<=;mg1JOmQ!2N7B4Sg;+H_~=TnApo} zTG1FigQ&`Vm#$|AT7#lTVLlVs`8p+6}a!{CX1ZB2q z(K+kpXmclyId6YB)5EUa+&}AB6ezp9Xc6{~c7xJI#BqqwzKjgo`JOJ( zbhKjA$Z&H_xGqEsT>gaEaNlX0jEt0elhrT@S=VC;71JRwpx?J}V+8e~;ENo5;}|AK zHgp&U!6J!CPOdZYUTg4&xQ=7unCh$>NeK7QD(wjW9%C#B+7 zFr&xIbMkDoR^M<65)X=Q8O8S{XLsCrdz*ckZ9GcnhDo)&t2&Z9Kcasa_xta=OYjLQ zIpZ%kI`E5s|BD(mu{E+Ywy-t(1-|H{9lH$%gwdTZ^{kE1A#4#^3DuAxyopn`Xr(25 zcvUP>xi*wavKVV|+@G%*$f7HeqPLKt@7HUuolb(*WHva*?vZ~?>phg&&>^Ahi@fXE zCRGfc(8*N=Dk*TXlqxFR<<^I;$uxiTXSaE(a~9TT-!9!eU)prOwZ8Rb(8OEFVa!<- z`NcIPF2HUT)S=G6e>g^JZ0)WMpd6e?twqI~()svw{=gBG=`wb~yzZ{Oy$$1W^q!I~ zRC<8JGGCsc;d3mHMvHry^PH1zGslR3VTNma?`}jv_LaB7kVmUJ9H?Yn;cTqbk{DR` zWNrD9r!IDKVwy2bJhdc14Nie11zpCFFCMP@LLTfrXeW6e0h&cs*8?bWXD2`@A=QK+ zcU>(Jnyne{GkmVFjpk-&WlgcA^#=MMqf{~X6o#-hi4OZOvRIAiUoXL}oSp*y0|T5? zgSFb%fi7kebbzo6W%LwO$E1n7u7S6g$P$H<>LEIXnv4sgGiY|g){T*r;nqsxS=MpE1r%)HSP86aHt|3V2e1R+XI_&jzo$(|0PtiA5CCBN*Z=%`===XN>HleyA3%nes zgN*F*rp5T`v~I^6a&sbP&j5_L3+!E)KSQ-Ebz1``+UM!tE`1|drMw?2ntuK<7-{Cm zAQu5`%h7s*a{Y&o{+A{2V_3)vpwDAzdxSoOLn-=A3(6?&pK#gCp`HO~IVtZA?Iul2 z|1Kmmx3mauyZZ%qkDjQR??$7JzI!my?c){T=v9~7GD%dH5?cF~oED1&r|#L#erB(a zPDD?Te6XUYy$7{9h#%}v!#tgaDqU-j$X6$=bMa>^+8&6%;s1LSRGXP~Y(W747JeUH zIR9f5%&aX8jee(~TFu68lMUhf`j3Nxn#O>2vx9oobPAkyhRbk6m4r5ms5(TGcgmVX zk(iRpmr1V=Jmt8Z10zf(A_tnw%fGw!)#7OC4_P4*2AB&W*C6^9kxSg|jU z>lN6|z46;yE7GWhin_x21z@%YN#=4KY|@G*mxcyP7D7gh*Q>2bxAkHARPU}1mv*yUl&s!w%GB^**nFQ5?qbfKu7!` zmW_eBE!gtr+k(=ukYFg^SxyJ1;-Rn8@sp_|=8dfOLbWSTI_hn7+N`c|sVi?&eMhiC z0y*x1AlKIixMQ0Bak#;B@0me#aD>u-gWCXb#c!C-ELePI!ue+PPf{o|ien4rQ{5$C zwP$xz#(5^C4I0SGE{*v~VgQFEZ}b{-=6$^Ri*#0_?H%c;&)yjx!|4#EFM=mHw*_8L6Nfywf{JZCX?-L$2t!t4ly=-4+)v)x8n_tWBbfifyT4rwlWDc4lvM3DiQ9H-9 zuc*>LC}B(rA9~Y*Z<0XmaYFyy#i(Hxsad>e-eH0Q#RO{)Y{P-1gmI(i=hAi3}`(ydrgxpD) zd|BeqJ-uw8Rs1cEqw8zS@glf!^Fe(kl@T%^AV>{f()GlGktKrN^d&D6;%eqRE9M;g z+;Cm;YpMBcVa~yEjm{M{@n~f;Jk-`H4Vkw=7VmdWB60ThjqByRdCpp2ec1NwE!L1-Cgp)!z>MhdUa!Nf(Uo6*joefB%d>$^V#Nf&`cTrxZAXe!c|> ztkLFlEr(e~ZX{mFq^gFA zndU2{gfsd>*9_qs?qOE^CC1AkAqrTC2kvvE7!2LB7bPM(J*#?P{|xj!8( znaIsfkrwTgevsuk^qa(Y#3|h8;B7fFmk#2IKQkwXY)@PP)(i4m3zS}`k^zD&^E*^c zqfw#d!tSeMpxB(TKLj~v7x&c^3G&xa4UEV-fomX_^I80 z<8;T}t2@UpPLIO=Z(`2ez{%X?Kiao$_5Tahzk9KSq6Qcapw+6uZ5*Ix25Y}stHdIl zAi`La%w`s)B565?-uzEbXJL^if`)XCyIH9b1a&482vVw<26?nb9 zn7Urc9&g0?SF}BLHJV~mfmbnA;-eaxv=MUYb;jg`bR>U!=B*?3%hS2qsZ__ciR!K^ zp)=79lcuK$)T%@{ao-6HYL6-%I^U*D277756UYqoNyti|ZMK%xB?%UMcum&=-FWgO z*1TGTNrp{@;YCi*?h9#!MNLoB=}1LCmOeu`t==9tj7 z)Fk+viQc{iidZesld<>8S0Et}w{jH21l2#iFzZfaSIDv&5pwz@HQ!v3UVJ}KHwRyj zj2v7)jv!);_GtIJ^HN0MtZ*GJpv5(zT?UNb4)S6)ZjkP^#`8g8F*}ZP0Tk)9*?5B< z&fLPP#0f1Hu^V#tZ4Mynw-QQ)(A&IX`y7agsFjKQG+}Do4po#cTz}H}(8)-*M)s(e zM_{5JTLO8E&&gcBD)m}lcg7AuZYJ8S1N~Gww#Z(Sk9}^I73>LV_4`-G*fk)nrKa-#Pnvk@6IIZDwqldK3OC3 zCrc%0{tQCkgO6Pgv3R;t1ZDj{+;+nDi|5CtFrmFby5_O$_h;!T0})**+#yC91rYat zF4!s7ii`Uni>&X#;;e242%pWVqjRFWgb6X^w_zR-4)31~Z;G)^4}w8}Kl1PN6p)Cbc`k+jDj}jm%R;JL6scH> z(1xH(F7@a^gs3?~Q)p_%`FyT$ZjhSW#OdrG^>AQJ_9;1nmK9W=JH$@Kygj;i-q^7W z)M{(8mzByb6~%S7eKB0?!gK@f%cB(KFAS0{Oitbzk*2`9aHXq|zDtbITm@A8VxWYju_HDvQh3hL7Dyp4 zh!;-@HLstuJKk=X*K|;o{(fM~M_sL(a2~$^Q{3A>nvCE5$f`b;r~zNF`Lk5Xw%9o+ zC`Fhf!}UGegG^&LUrk$vwx;!mGa9HrV6A^*9#hDW?L@M({=>$y(}L5OUFm1-5O+oX z(yk%w466mB6C=8uF}}lBf+spf(#$(MPGbJkuZY#f2t#Pd9&O~5j++qAoT$&#crQyE z;knGG6&-Yk1lTyC4V<+UI)cv+y`W}UH*>@Wz9w|K12vStTh01X&3;V*F7!r$^OA<; zsZTD(-gGPoA&Q9(-B~H`dN#QsVWe1pu>C|5Jk%CltZ+(QD3toidAWTsI{N{#uVi(}TKQ&(gpX3%DlqupyBEjSA&tF)83tEA-Z7aY zbzeR3rnVXepkO@t1y;o9y~N~s+>g)A7JBUA`16Kg8L$Y-%~t2jmy6c2w{U{-GMkNT zVsM@8@WtOE>Hf%;{P1_a^wSqidhGW(6l;s^xemJaUzKJjx7s#r&&Wm76toufL(V37 zJ#r#yLZ0CCn^~2)Ij^D>YUTc6P6}tOQ9mBc)M##uE&y24vWeD^%^(z_nYVIrbih|r zo4eoJnJ2%yTxEu-#h|;zb62ikS4J;)x2BFB34V>A#O~(${?3P@b=ugJo)%P+*~~d5 z;#EV1hggV2oV0OexmzP-06*+@l~u+u1?PL*d<7x&o3Gw#*EQhrm1(0i4Tq#?Yib;N z(YmU$*qZLR6_>*d=0v=P4_cQT``IBV=Sehyx2R)_)_g{aQgas?iL|u;rb0-OCNm>x z)l`HUo@X~Q?3RQSWEmy`XVb4(zx~(bOXWCKe;BNDi$p0pPf{R>4Ru2!?a<%Y1VL=Z zX=(yDL@ApcXQywcRwNX6WAz=9vMM{Xd90(ESVY)lCVqZP0C9MtIsq~bseM+BuPKU( z&oil|?+qF|oqP+evYLeMZl;R^8xnRcQbkO`psrsWq)-WSZ~FidRTFC;H1m6AZv z1VHsfx#BIo0d-~8)AqW0##yeckNOs}{5Co~+Ai2+n;|t76O(e49Y!tbI(5-WOeP|| z^LbTk7n2M8`kdL@^`@qI55=o)Fxs0{BQYRSAR!YsB%-AU(UK^!B`0XBxnwiX)LWu* zPJV)U3KosXdOS8P@kXn;5NKyqNdBO%9Og-S21g_lH*8`yHS_@9R}bS^7N@{BEcI8p zpf~@uK;pV2BoB8lwtP6NGnfHn#?_;`$F=32?VEYLioPkJUmPS3sFn1GG&{c0E_TOV zbbZu-W1IZ-M4B&SZh*CMhoEMMx}sEO(%|^8Nc^jaIUW7b6!y5jn53GLDf-YIa!g6^ zV5h&*r$@=zZdK(kFa+3Au>4`3U4zQ7d*@qI4|2`$Iv!i%$1UXDAJ$Uw$Y5Shn! zcBAI`IOfB79F$qbylHyWGRTx6+#4h_hGoThq;QoMi%SNf7E*Ayw}X^#WDS%agy?-v zGw$61K2314+f8;vqoRBID=Jgo~sg!BR-d&#!!==1nUQ%KdjNyXu?M2*#s{0gd zSXA@%+nUKjvVq|o78n$zlI+VcxAdI!2;hVFbxj+z8ju}9A{%I&=a}cCs9t$rYt1Ip zSQh%M5)20}z7QmshrXL)#|L9@8v@{!)g=4 zZ*o;cb6`y_1ql~oR>s8+g2PI4URp_?cN7H?r6|%bKc@6ozqgDkt<1}HPNmI@5Y)x)>e!#`vP=bwS&n}Vy6M1YkK z!9nipO+BdEH6e%C&*h{Z)W)Z*E!ufjV<6s_rm?|Ut%O<`JH^^wszzSt6BnLzJ|s<4 zC&HdI)-F|jRpNst@7=wKI3}c~9@Su_67~Xw)hcTRnr;Q)Y5ubG-nxXs`ZHa7!ajcX z)?Ok}IQMGv{@WF}R?E_xl6??s31z6Pe?yBje*>28B{>@~XIIr%VIX{9iCMPVwqrJ|Gptz9K>lp_q4-2I)gRo&lqX)m_HBqY=f zeRF`&eI=iPcKONaYRi$mx);&~{#ek7zZzKkn`oF%K%2q1bUa1KPz3 zgAYmWNmBctibT_qOg%vPMs<1Wgt9gd1uA!F7;I#^I5Y?|BTsNcmU?7)7Iz}6xvlfaML5Mhkn0^i*(Qg{(@JOqM;PQenZ^C=K3#K*m= zkF&jE(8&yD&J?6Tz4Vl%yq9~=VeQ2F3poC@4ef89g=vhuTRSU5yt@(VLgKV4P;b(< zADsn}72p~=oZWsO!7EU*lIW44-h^YCbNx&aoTpMe&Gq+$Y3o#=M+Q{X`;`m}b$FJL z&~>I+$43HxX5MD`NV|;BbLcq|@9Y3>J%LS?_#9wYgeAl&w$Ne%+~ANKypYuK+n-(j zQD?izgYpW@btG!J0}EQQ`OoQKaD}sSLCvuQ#b6@=W}7t}uj$hCe$IF#lx!K1Q_XW= zL0>#AedN}G8Fw0(3P-_!aY5A@F~a5~l@RwuGATSk84_*AZO)1`okrsY)GnopPg4pq zpMXFo<0-dZ%^I#oiGxKPvMWV*j_&r)#BUvvO1Gb^pGCfrLQrl^YT7<1N(6STk|M~9 z#r#6RSUy}~T2H-VQfL~T@w$n>%4!sXJB@hS-)#<;F1D%Nug?#^Z-mp7{8m7vFRLB6 zt)$B>r^|KXPJ)}58~su3*%&wV$jsr+MW@E`D^r@e{ryX&NzoqZ3D?G=HG{PIDztD1 zdG**4~Y1fOT zmDXKOpYl1z&uCxJDqnC^Xdqr^UXSAE{idbPx?*E|gn-6AQTuFF04aOb6S5@+U|0rL zDKc_87l8$c`5OQa+TmaxPN*Tj0fW#Cs30H!ka@-Sv|%+b7$ie;xsYu((bXg42}+bP zcuK8&aS^A*I7l#qu?&_gz~5W_SOIvHmkW|e4(itP3l(*9Zb(C@X#jA(L&`@%$0iyT zJ@F{vC8m-O{x~%Gy0F^)-NQSoJi8&LaThx`l5hcH@XN>fV>DA^ROy7GRrkNoq%guC$fVv8LUQr zx07vq$-e>`uAbc}%?aBRHChVZm@|ED6NMSLDs*f*yPGAHmhtZuOz{i*rzaq7Y}$!H zLmfvn_%15vEi*c6LRm)2)8nt~{zwm)pL1#s5`Q|u^lWueF7Qg;^m$@#CBN}zM63^}Bp-db9=Axe4&5D^VafrE+DRF6p5fwrjMJc~G(7bx? zz3~Ac5KwC1j^+I@@Y&EH3yA#vJ_d%Dt7uY)V9aEr)I7x1DYtwKZgNpadWl#u|Cdt!i!i6obulc@New~7|?S4U8F zYl}V!@lzCktI%d}O;7!CQOTU0c2-5JuYyUlG~!!P#_0dRsn&B+yL7&cd4`rq`!+d}Xf) zAhDo3pO#XCeuZ(Ocf7kiyL%WcorRChjYXAJ1{vbN7zQg(pLr-ql8`@--bz~u7MUBQ zGe?|L3F-~u$h#(o((A>Z(|U3L`D*Nc>2GLD{>x?2V|mU^QUNN)Tc1h;8bkj;0ez@Tqds%rLzOZ~Aul)CKry;c z1I{+l0FgOYNJyZGC=LhX2cKGDeUC!{cR=0%W4G8~TOf1XDv*uhx4Z9c2oe#Bd2&p|RdU3Gcxq5<6 zKiYO9NHA7MH&F4nU209uBXBIr0eS)I-&AEbFu;q3%+uD(O)vbPud~NxzrX1C+uht= zFSHQpn2s}$u(J9KLhL`L%9H1pIH~6ibbvGKZ#h#`oNH@M0%2bPReW@EJQkmvr6FLR z5tXK(!N_I|$>tHc+a;(BS8j^9^dtMiaML6ECO!S))F5EG0zxsc6z*=}BwnBe%u-I8 z3z>?MLDRJ{B6H^5e-S60HwdJ%ZT}7tm<8YnrW~_(Y-+!DRdd!#Bw|GX9{X=#_T-8( zTKji1fS7_sGa#<&wO2_~cGuq~G-;X4lZli^_{j$_XR4+Z6|c%+`gWCd^uNq;iAK+R za8pm1r~niH$S5pADI9D8v*7uI!B%YIh-E8#86U?vE9$9dm#`S7jZ^f)isl8khEcu5 zFOrH|GxdqePI_ocE%BlXrB8B!Y%$z4nLEw_H}%&k0#E8_`R#49`i)2|stq~=49`O? z+XH#gP-b9pk97$R{~LWf8m{F3O_^cg`I=ll>->*6Ep_ele(>Yv1YNzfmV1`}`|R=2 z=A#N2`lR?2K4@p60Z4Apwpe5jQ%trSB0f?GA#s~rA5Nvc0c5-G(GEa=d%=kxCf?M5 zW5enMYkP527|tdWy_kJt)647I=Jow@)~r^ZKCjU2wGZFUu9n&861NIHz4c`pewJpx z&uIr*e>m`LcGiAEkoOBy?0XVEDEiv>nC;!I#CMSTGBm%lEDmzO?KosKFJ=vX+J zu-+%i{DEMbJQ*&?i^g~aGmwy0Qa;lINO%^T(~j`&M8lHUf=yDwtw0T98&22*&n841 z+x}OHp8wH<=KZ>MqlCam2;^qrMyyOQZBh3s~ z+K~l|*rSc%N4-^=q|zpzy8STGxM^eD@74wl5q-IJ00m9Jl%Or|pqi^lMb}`TCDvqA zkQuauB{pgWbVKOpip?*9G7h~Jk*G2saI#(I%y0W=i>3PC;(5=eXW24jy?*b`BGmn! zo1vii)Q!AJVH&I+$o(pv7s4f5O%zP2TWji2Ex=CSjw+F+U0K_*7$EFA{($M@N_Ig3 z>fcr42lWCm0+GyMxUAGDGkrTJ?XPKp%S~X77}?lM^{7mu040H8eMgjn2l!|NfPE6Q zeYgqjC1Vh4^dT!Q`Dma|I6|5+{X0k_OQSa0^b>~J;QFxAh=uFm@_h<=V@Or~Eu}z3 zVkq&Z2q0-;qV)-lWI^cWEkz#0(=njiKzKT8rn7hip$FD$e`@x(ZV^qrcrYP{7GT~w)7s4>>Z#HYmsFiR25Yz zY0@<5F3ra2Sjddx{`B}F$X24=#DfJPNoZ;ftrF}F858BK69w%eMS*|_4D2HmQ9Hbs zR2(TC-{Rapi5pkFJ3aaOUUgnaU4kYVD zdun(EfXm*-THPvKU9S?A8o4 zi=h%lU{*2oB|7N(hlLCeIY=}KA?ta%SBnPVlS&{29K@XMnE6ZM#y&cpFmxIfL;L%- z`QL)@HC}Z0`BX|0-}Jdu+OrA3EdDD{izyj)sPxkbn}Z}fIU&x}$JLK;-L;*+hFFf< ztykHli8er1YBPun+$bN8KCs2yK<_FQ%o}hv_RUNYjj25Kx*5j+!QN%^emjr&gxvEW z@Sl6S7ms<;7c`Iod!lY_D1}5mmoLb^+~F3~m`+`Wt@jTk8RHZau_d*HIdqQ{eQW{$ ztU!$-r=CXWIvky;3Z;0y=Hc;r`5siA6%Z68musH5%T9eg=%(gS1LNu$n1ilskO}^& zWmBm`JfFuOmXEGNm-SdrJ(Fl7xImv?`(J!8(5_gwBUNl zvWR1|W5ZKN74QhW_}ybZffo1!(ZY=cAQ&JRfQ_9xIyXo&6@L5P7lt#i8trc|pZ{(Z zA84XrWH{;#Hiu0&-m4ll-GcU4?5cT z+v0_3|3Pet!J~?wM4HQa+afG&_g)7kXgz3>=ciA=q4f_&(xx8WM}g!5+!t)Q6Ya@7 z^Zd$7t-b~jdOGEXF?3xacreCXZ5Q1?pGXaxq468aCa^=p^p6#RCt_G>(wtl+9M%fY zn6+skMnEV)*Yf9(jJ2q{=cQVD%dVo&M~9zZRAs{+Ao1u27lff0nQhJ#t z39k18dh=QL=Ia9Dl2t^Kp4+DP`yov~XfzZWR$jo`!N|y+NE49LuinL`aXG!fYnWcK z`2?uihe0=jN)*h#uVTEf2ArCd>LBEg=bsge?D5)~pNmQPSo%X7sq^R2!*NImkPO_7 zi|noKXWv*RxZr7L;?G+7o~Ym7D&=E)zbzl1Oqgwe%^<*if_ANoTvCu59`ERz-xxH!E*5;qA7w^nz2(__JDiR$j`dknD3v{}u;aN~(zCsK=O_hH82OUoeWo zA;WTTq;v54A-7Q>c~ps}#Q~IzTt_h*?wiB^OJ15v?ol@PG0L%qV6`kcUW)|a|7X&- z>zk`?!<@^eIzlze4OA%Z_kB0&`p^%(Yr#ff1Cc&q+fbl^-cf43TD^!HDttstb1JY)e}gYD@lBFYz+Wl`8<2f?Xor5tpH${mif8< zzvNF_WAtnu#5N6#PSg#{MEtDm-?H8FsDff(;K7mA&|dDhp_)pM$l0fh#K9fTc)*}2 zMO|lv6Ld@(C%RScARyN&9c3Y43`SIr2@OUaDe`b>`+E@}F~BlTY86lwA@~;5icfcIW5vao-9_qSTh#nv z1!L))?vJ>Dl)}}is!g9 z0U#q4=}6rP!h43#Nl8?a^=fNKQp6c&=3??nNTY;q`flswx?e z)p}^C9W4~xN=ts})rGPqU>hAsxOdfIM^j8ooUA-%sW={CLU_og-xeqi5`d=%{z)y! z9RBuz!o{duk(?ZnaCX64`qtooC1K7H`^E|0cM5~>km{rq`At>lV(GKBc>dc%F7C*wg zelOX`C_^>b$phYy4?yP~5V}6%FgGG2&&`Fx%eaYx{0ojB%J4W^9D%t@in#2~KM;5+ z?T}PQCJ(>t!Lz_KlO>vFQiI1CZ!&u{7khar$X<3mZGd(RP2LjCH*GP$^3%RqI8Mwb zfC%e_$;eCHvMmEd)M@s-d^kxt&E+S4K(u;4j|0ENm?@U76{$pT#u3pL+_8ZJG|P9Id~2^68 zzvqf58tcv=5=={}%3M=%T-_;1BAk2f`3v3R>U1jA-T^ITVj2qus)Stv<9RIH8F*!T zXvW$ZALEH{&tdR9x@+iK4Ubk@%@O5j(;P2nH z=qF%*t|1nf1-4@GnfvDBv6Ok))Q?df1Z7NdcMSN1dWlc(H$FjCor#^H=w)xZi2k8w=X{V=Mt|5U3RIz)pSaW#}&Z(LrK9*}C+Z zLU0pEP^cV~t22X=s%c_h<09#JyJSL*`5=D1#HbMN{-q=y3yhxH)D3RFZ*h81kO%5*2%ZXB zKSlx#HldBsBR*+Z)EUl|hUF9WIiXQzJ-qXcnc_8jU7NPswrrKDEh@ztNk{%|HB&xB zrPxScYL1T3at8{?gLO2y5x|`rVjck5eJreeTz`J{*p9^}G)C=`j)cIl@t(%C(@`sh zjiQjkTo3Mj9R(a#aPlN3gm*cU%tQNWJ4~zVV;rT#I>#ejIvGX9jn#0i#_uD*MA{f} zmMZlQMSJT~#{~aWCo=^PnufoTU1_H20oYJ1dii`%^$x!>;>zluLdt5I!x7I3NhYeuV1#g2v|o411SM;91?y)FS4J_0 zq}sS$rZU3%TmlpOybYvixLQW+uLC8m@*fP6rc_7HWGYT90y~hC&x!*V=!RMK^kb9x zs*yB$fM+={HqdN_D`mAJcgNP)(Rs~?)*I8^U4O%VtI(k_o@xLHO=&R@&_%72QZ1uM zcf_MMlT0X15prFvL~a^2RKw8`kdtb1QJr?n;R$RzRl=S=>2PY}$^d1f?Qd5F^i+=m zdL}UbqDuBLC6J(kykV@IuRXUZiE6WgnGLdTWd2jkUH{X;cjAT#7Uqm?39Km(5yhaZ zJLXn5QK}GTvL%)|WCyG%2F02e6dQ$+vf9Qn@gI>Gl)k6CQa)#K7mW{UH&#;9qvq&6 zdZ|A*EdyQK|F~%S6aVCeJix&FeYoR?rB=VJd0E{FxsCPQ-#GjKhyxFHlVw78L(h=+ zb>nTJSqRAl822F~^DtzWuuif9e$*stjnuuC;X6ZK{uPHU6*r~En6 zQ_5CL+ywIds)isn=Y4P}d>)^Pm_P*NXq()4xk?PN4)a5_?+5Ssr{B26*t8^4RalI?spZ87ahHUSO+i$`)FIJ8dHv zQzJ%vvU~h-zf)eZ9M#wu>;P`<45juTkE#FbRafs!facO&Ar}*KTxU6rVg-V8N5(PG zwvTwZE~X|vIy&q3q96@@iCov{I)cDm&itaGcP29%jqC;->` zlZm>_qNtUhK=3UXTQxysVJPVkNQ>}kNqXR%ve3_8hENBsGO<)w-)IHD$-j*$j?bc0 zXR%BQyZ{fhY+$uF#yMcZ+};Il`{qGouXE- zbCdEJq>~WTI}LvJul-A#7lFic^@kxu+#5OQK-W-BC^SX;Xv3@6`vDd&O%$Ufmg6$wne6XST;e z%c|9bIQEZ1%g51~5E**g?3T6_H@c;-@t75Su7CEy3;y_{?3P|nYu67rx;zYe}nU5)Xq-v5Uv>=#l@>Y9m6k1!-eIU8`_zb1Ge77zsF)lVO9^)3omYN z^*L14_BAXQ%+vYm;TBz=3_54834{35x=Sq@jY@Z+RBA@e1fdVJo9(PZWdQA5cfTE#|47U401n=!n#uBK$2}+{Xk^%7iOolmQM#&YivEO(E?O0s1FE^O{qY5gNjW z)grQA%_aN$qhh_`RKSd<3aZ}_sOm-yQ)H(BvRI_ztd51_4UU1{^(l*sQ|Bx<=6Ve8&dZ;EatOB#fU6Ur0ol_{Bsa%9bES@jbv;!U) zTEmi^yI@gE7OcaC88}fF2RuOOi`UKAmfvF`a}#pvj; zTIA~cru%K}Yyc=`HS3V|AlytA-}Qz;-4e-K28|UGfWvL|N~@PZ3`v|pLEltU{KL;-M;@d`ixEz>Go!2I z_amg+uy}k?Xz6z;pkgcKJK57s7a1f--z&S)0Lv)-aMUU&96-BckzYUnx(ZqEmsVs<01D=#))W{cgB zyZ6IL#NB^^28;*$3}FsK4&rXN);qgCc)i89>I)JZBh706TG?8I@y7+tt@1_GFTXRN zB(|RGuauzisgEp|Xo(N6nZLjjVO_Fah~9Fxw0Bn}UocQiZ=g~#m1VRK@v(gH zi_tY@%xEsKLwg?9Q^H>HWU-9W?xc02>;@u9r*#f$zKd&HMr89mH)TTwx364LrHjW-@$K`=B^#(P7Fv{i&7Yvc@batWVt`*rib2AdVAJ=afz zz&?>h%e@=r#INkPnQT0B$jerf>z1gH^xl?Dse0CD9o^dqph z$pAX`ikZn6LMrI+hZ)buL8ZIpW#Z7-%B|H>^K?w`P+%5RbHOiyE8&_Vr6k6b_jm+o z?jjoe74N7cc=54|3uT?;5_7TEbhwA~JfatM>bVHou^az50p#KLxBv8hFuHyGRs9>%k-lmMtwm>aUCa>T&Bo= z8_ulV9p(tcNCZ%Oy7J`pSp&@@uU);7<&>cV;aCSJ+?%j&J=IsO!OjOe&_1LQFdG_* z88dzL41>YU;ad0pGSd$ZKl1d&PeWrUc3EUv=kWj+)f$k1god!lPhj7jfRgG`Um$>! zEcOrEf7io{%_FaxNWRxG2y?1xpETS~ry-ff=j#f2F0rF0Pt4nAEJ|?sQSd(ujH9MX#f&K*j}yV7^Ww zIsufv+|vkwE!D_1K}<*?CScf8!Pj%1fDcGMa)5yHyv5TMco(t{7=o6`f{Y-=8YYy# z0>UeIPzm<@8(au6Q$}o6A2=vd^(Mx~i@N%+za2Yr6b&d=)qU8zIjjd0jGNBP<&7;H zPjwn9)-~o4Y;Zql0@|k-YVN?qfE})^Of-HOQm=XxN1x`F5seLU&1dW0_3~a{zcCfm zk42x)@vCWT@L6W!%6+Xc-3Z)FvZ|7$_B9&!f%5r|#fM|whMn230p zN>)K~A+EhWmV$8;G=uA36zP?LF+N$?{P+#MUu>@%*va{fk0PY_tI<%--%3$@Jow%5 z1I$@9%i;_}yVt(B%Dr`=yrbTtMK_!%cX&erP-w81G{N*d#QMpf6HwOGxF(f&Y7%eD zI5&_RaETVH;Nu!ST>> z!SmG1W;)4z7le%LvaHBfS6k@omE6+Mm|&enC3qi->X8n))7W(H8d@t|Q6O(9yX)6#!yNsC+FbDpT8ji~zKtZm%3a=FQ4L{UPpb3D9Dz9{ zdX%}=>YC6ot@!TDte$oI#1A@Rm+d5^|5vR*vwuQe^hHi)^H*HIN1OC^bROOVc*Ll~ zx|bo@6O+p(_0&y2z2K*9Fxw?tzp{Tg`p6P#>FlkiU=YzZqUF}J-85tc%d5I$mlrEq zh!$D^ID^yrN;fe$umLmnc;{91>^H%#0=R+=1pKh-`e-F50KgU&JJv0yjGmplt~}yo zwaXR4yQ7|;TYMv%B6KNL;;3OJa`jLfi}fcj6zcNF-&8>n+phZ05?TXksLUp{$6 z{#aNp7>M^|la$(hjtle~1i#x&_OhG)Shd|~_J-x|wJw8rIue)8!M9o)4A?>;YXg_u z(VvZ>!`x4V(Dbv+@f~VH+0eP{pi|wLNkn`25p)8fBM6xK_922ImtOWB0nHWV3XAha z!M;rpRBm~pgBpgxl#SA^a~N`?AaM2iZI!c~yOv_6VvgR^Mt=!#A0 z0M9ZTMxHoROg(z$Zv<$R+;Gcc2--Ah*tyiG-WudsfYNe^lU&R4^tCI7)+zIICzh3G z%RcS|No%kl*C$OGl<*Sc~ z&L-^&d1fZedKX^f6JL0uz2nm$OJlOhh+YXv8BZ34?X@R7py*3vQ#%4cj+Y}<_ zOjIU@+@UJz1PZId=r>82qrqlY6MU81#=bk}@C9UIwYkoF+0uLCN;jas{d1{^jkLor zzZ*4@xcr^V+@)&JlPZ-SK>k#zd1fhL5=1t>0!bXk`g-{wjL_zYb~?!6fIP43u%!lZ z6PF{_`zZCRPkOsX?Zh-YSx@>E%9_cKGT@9YhRXlm!8>ja3Wkpv(|J8lA9;H zX}=O^dgy&fShhAuLT*@e*JBa3+z!h-N@l|X!<$jxd()95<)cE*N$^d;#}u&~6d!lC z;Thl}TxA`Yg#V!D>k>EjcySZu!<$r3YLt^1^ZcJu_+CaxEUI5H0@5#r1NXm8pxGIl zSpUzKWpQG^Y%o1S=&esABpEB=2LP$=qjB^|)M*JcaI_%!=6su--6X9wpxvYJ8Q<kb?AY)b|h{OR1=(K zp7UjGS!4>Ou@*0;ruu$pNFic z%%WX#PdVtg?c2B;Lu=;f2aP#HYDiZj_xNa+VZHT|vfnOX1QERL`iU>5wDNsM@IcVB6ZlX5& zrVYUy60Q?*6s5#EL*(}huaIN|xrGz-5!pW*@U*m zN`z^xl}0#drLLYLO>~6|>6AGivuSO1RZ}9@-xy_*!%&yr;%UR(TuAfOhtCZX1ZOb<`hz^ zVqpt%iuNVwXCmqrtjQ?Bqiw+6@)5iW-FRN#?_;O;{n1N!zGC>^o!#A?A6!TsIcmKr z3|<=`DlG?_U@fOq!RoYQgZ>(0(>QEFHOK5`dG6Z+no2PPZ&TB_RX4Vs=jG!?7te?L z2pSFN_qR`HFW*eQoNsrB_xpp#`#i*Fq=w*;Ti78a;lr8gVGGTFH2z$pEmeCXbz%xt zeDYoRG<{f=%W4Vh?R*-vD*&C;#WIU)`iFrgIOBgY*tE`^1j$g*saaKL*WY&6x+z6o zsK!Y`lLrfbK402$4DUgSprNK8hJ1lSg#bZvCUS?#eDqZr(CIo6rMo1IC^lppHp81- z@bGcJTQW+Zl4>PW9mv}C5pCS+q{~7JJ@O|ngvzpcy&z*MkW9D@EM-yGXktRd0*EUi zb69VRPW0qiB#Q5kuQ}!jb{G{j(00GQtD6Hqe)dFYGEeh{`gx{DRpr*6v{c5VHxBxw zbp+V%!ty;s_zN`Xsf`1#K_^u_OxJVM&@$5JNXDR)nv1FBW3{<4+h>Xl8n*5QPsYU? zfT+!IzhQPGz`Rf|%BxKX>Q^+ASxJ1qz%bBp0m-fhG4jZ+T(9E>B~8}Bo-xee-~rNK zGzN0{ZY1~rWOfw{TpUIRlQH6oYCto`HozOJc^O+w>VXo2303vw-a&Zp9e{xpkf!j$ zOv8FG+U`R`Ry;@?P5Vt2dNteWunSRhSD*YPOXg?HXhglR53*}U3}+LL4D2q;8K95FXQJ7&hsO{z{OJLHhIg`d)yZ8Lj5|Mb?vC|+lC$J@aCfz z)g0(2$#kOXH@n>-r2%l{Str>wh3mW#5pm3fjlFC=iN`PE3qD5Ecd@vmGtVT;2fmO* z5{MxOpRxDXz!i&PT`tO?{?3RUM@-DC8Q+)#t<4sfL;2c^Xsgj>o(9?o+@zm~TS+YB zCa-6*5liNGW6pifL1^e6;6v>!t%n+BrStY!gcKv+!weg4Bv>O1SJ&Zq&m1;xevFn*c6MHdHF7Xak+YbwuVCU%j3;KOveFn+ zNay!!S$mqD?WxSRdzsiN>ztqqf!nc1R!Xp5wTwNb02*WMwkF#Z4L0GIc8jn{lGfN| z)tNQh>svXi=@R8EZEmq;lJS7u9I0xiT{ols)QDu@rfYgNFo8gb$aDdvJ_~k{PQm(t z002J{9SU;hk1v=Zc=|&{*w!U&taKq9$Ikl)Fy55XB`G2 z7N#h3qRPf*r^iNrnGfC~vzIL2oRiL7Y8BGOyMkzcEVEcJQdT&A?{|j&ht>P|<$?Eb z-IfNTH4qwhI4nRg>%}{RTp7Q$6fT|89&vgF{;c-w^<2t#IIH)4_8sjtOz;$NDo~XB z5i}-52V8BRPQ0|Zx-o~qF}0I>*^pP)2aH1Vm+tW)cpLIkli%Hf%%;ds4j7|dvCn3$ zNRyiqM!C9sk5QRRakCCm}iyftHK#}$b2=Ia2+S>&fR;%@rzqs`rmZp z8_a&OWwA0XHrR}I*=9lA1H|+=PSOY2ywJmUDdMq?bo?XGupKxb&?3>t!Q zA7aee$cWDBZYQ~{r*!wqs#iFm8!Kqh5C2Q^BK*`4$}<)fI(LV>e|{Jp^ep_3Ac?5@ z%QoNJjs$q$+{IRo0M5u0ce0^YQawp!I(HG<{M+qbYAEx;PmtjXUaNy|vg0`5Ea`|~ z|9pu;*__Y+VspoU9mxC<;%2csB~^zbn{DCfHi61{jr|bTb0y!`lO++hxU-Tbo;OqJ zw9>c1>g6)zWPxr`@Cvx?W|?qiRvmQHM)MAV-s+W9v|z2Ebp$J5OMIP@>o+zeYcCvt zBrz-9j-Q^H-Rxh7P083WgqTS(mxkn-gVEDuPRJmLFum!r-EG1t+z_Tluk=KyJ%bd= zv{wU!3H!4pKoXPFR!W<3IKrMzm#V7 z21Zr}|NlOAib}ujCObm+2NeVzkc9u>`dR{1OXNYg7R_hG>B`DN;EJMeFwm zoWy*=A8>J>I-2`w;?wCVqjKXI2nwx5N>PXd7vdCwM~TS_mgv{h^(rsD@$1wm8}}t} z9x58(N{U*0p%ha}`z=P*s_m={aF(uq<5^+CxbzbfDU`(q6^=z@6oeDHC0mTU4g(H4 z4kgck=ez0R@bPwfX-G{__K%##5diT#fc=#_$-~S`?mg(5tVld@q3N3^2q*IbVxRAx zZ`m5Y9c@3N7d^Gg;|t(2m0Wip2BABLDxpxioA9QK)$VMT#Z23E2jZW#LNLi;!O-v* zZS3JZ%|qkN^#cJ9S|QZ?)C{f{S`y(otcyIrDt(d(H)=n?fgdfnsv?f`9F+4jjt9&y zqeTOBa#)W~e;q&5vrk;l#04{!yxHyB=3^0pxOIjj4MAK)^s;4`<)tI8)^GNW+j=^_ zT#gPeFdHgn&#kgl9bL#4p=-{*+MgdxlMNcl6XD2EFP5@8yMw~jqN|lhd}F~X50cjzRm~V99=$0JeVBt=MgW<&bub}^pqj*(w%z} zd9*0B6xKMi&)*F9T4brU$G4u0)kfwe5{FuqAkm@Ee|airnG%inj4eNl{0wI?7%6H< zn$~AN&)mqs(VPRR%PqJ7PQat-t~2F?KzjspP+6oexM$wi{5e&kxSlG1omZ^BN7CY) zY_`cdpzhWFZjR_85M)EYo`C*?t6{qp(#Q^pUF?MQs4Apx9CTM>l!H+pB@>-t`RJ(xPkwqiqc1?6UbWUH79wI# zQWi9v(+QbA^U0qbfk2K#js50otUu#l0rmUOfdh-{@0M*FbbP97@96AokGlq>g;#dy zzap3W3|K?`k~D5j2+{Y7CB>zA#)Rd+KMREa1pME50j=PlWasaZNBd1?WdG&pJDE7U z*gM#8MPi~Nj*@haRhY`JfK`|h*F}MOXP74eypzp>`R%D{Fl{!DTUECx> zc6tzSoJqr6LSF?&<_^54C))Ks*V_x_(in^db7$}IhL>K7(dg#Jc?sLLRl4+S-Vp?4 z3}SD;vGAt)R7q`@;$tH5pA6wlwAe{;(;R!NRgcVhlL_lR=wGT z-zkwY^fp?AB9oL^W=6M5b@Y9K(1*)@z$tPS_f2`t{|&Mu$)_I{Xg;&;(BxH zDHs62Cdz-$OTU~xd%a)v-S2Y`t6TkI+EBiJ^Aab9wNY%#O}9QCT9bxWzEv10KX_G; zfK>8yCJ|_&s+rzsZq0-H%sJ&k&8MvdeV&k?nm zvWX}Ycf6PbFN12dLkqjvk(Lx+_8j}p_VlbF# z6-AG7ZAJ0471FfO0&Xwa+NI(S5PbNRMn!LwXdbB zoq_Eu>!CfYxKX(fN!PCe|cUO%uO9fAa8F{X1ZG)K{4(7J-f)$ ztDJb)EC3$Cwh*bC1HI}_A*eGS2F&NDW`mJ*ANO?aK=RcCEy+4!%9TTVLMbpicOa&R zWId-`(Dfztzz8D{GeBp3gG8iP9H`WJa-Q<>=B3=Yv6C6V-RSu}#R3czllFrM?l}`B zI*CX-DdAJSrEfR{+np2?=vMm-?{`1}!bnr74jq^OEhNpWSfJ zM8Ip6Hx6U?V9#zWbwE9DHnmcm!UUK~1YuhQptqqZo|6}#+@G0wyR1yEL3*V&S^@r4 z>2J8Vq}~#I;sDE2W=QUOa*#Fk?*Vu1EY&qoI7Ce|xMGpYB@eXSNqS6i!wys|0Y@sK zCnv1%J!b!UxXoT1b6{UI)lN7pGy-Qq!|!*Q)(3Yt~;&v$R|v`gXp#WgU&6 zZ!8Fcb0yatGnPP|cQRQo2aut|UYXtNYz`}4>%;0V=ftiSIJ`zt|1H&W#>chh^*Mg-%uqul1oly0DW(Asjt+-`jN%|_D6$h zCF=@xa7(J0j% z?G{jMST~#P1j?)!oKwQ)dyX&9VTs9-h_$LL;YeKj@xeEPNJQF%z9^Ybwr|ml5Qxg! z*~)!5j83y!32pB@A>ppOHeK!{OwxuCSBL%aC4oXla!wv`!4%^xY`NpN+$qQU3GHES zkHxrBI@KAS;B61W;SwFQeH9{(HoW5Ynp6@u)JuNKy;(Fp|3V@NL}rM%nR^}LxfoZ6 z{8v9n)>T8$@e~HfuGp?6#Fv%gt-=lw zl<}gy@LwI?YcFJ5rUn^GxAP#4Tz_kNbKotu4vek7pM|$YOeBDOSzE`6SJ~j)cz$GG z=50jEl1;UM$x1D#R?)O;EC* zufzB2dKB5DnB1(M&VVdNUXL7Fp3mD|Wo_@%Fan%0q2w85q&UnJHFyc{sv1 zj`e)#X_V>s5a$~CvGc#-EViWd9X)esw4w#Aq*Xy^=y8Jny^``k!`RlZ%%?xG1N2<^ zTw9NsI5M)D0>K~$mar$UG6AK3h8N5FF7w@9QBipVnIV!1!qtrN!%Wc=gG_jxJK% z+I6GO2RYhGOHq1*7^8^)@|ZFToeV~w#OD;1s0%EZpOd_IM*~v%qX~5fpche`BO=Gb zUnTQ!tE14-)KIkc#g2bKeq_s#j%yJ=HPxGf(K!s|{ky8|cQ$8$9S8!A!LA8d)rBG# zeOgO}YEGqlMN7dfLT+UWBSyA#g{?-tbj_7o{WE8)Wc$PTJn~ zdbobPe9tVud!ALgm5{t$X&A z5vJ|@!@2^*1+r#9zEXpsiX!56R&GE|iewrU`u*pj6`!J1W0M9Va4iuJ-_Ki<8f_Ja z5aGlZh%cH47Nr5+OB}QDmO!qM_YI&BAKQp^kXaU6UBLCx5*`rjs`Loi_yjK&ge1W_ zX;=Bh*0dNF##%~Fik)+pgGrRvoyv05#D)AM(&xy1($?0Rm*OjBZ2xe|DA`$ zqAE^2=dyCo?Uj6WVypzP0QF1oL_mpEI#Xt$Wf0c^Vvl1JpJX_amKI?emkQz~{FE^q zCiYXQ6xkUAJ^B@Zv2-7?0>nRN&p07NPRw)81=Au+b5bzf#?>9M!8yQUNb8n3X7P$2 zExO6Y1Kc`s%aEo;cq~y&${7t_5f;sb6w4B;gjF$sZ_3G@x4FffA_l+Ag^#7KoY}b2 zkJ8ghJH6T-KEBVc&d%=6jJS_&ztk0%^Qv#va*Lu6@Qv#JW9|}{%^M$Alg+WIje4-! z<*Fv$V!`t6uGiObYBXr0ZyJz1vz?Rw0PM0ru!Tk=002C)003bAm*UmM;Eb<|GS*15O8qk_%GNB7M7pY?VKstYF@;To^x-qZ_(qUI9W_1_ zBR(k@C6+T8;z!h6=Av;j!8bP9$)&ONR%^N0Gw(=4Dy6A8-Who6yS{mOTWhyt$WnhK zQ-iE=W;`54jsCO+o3rMTQgv`7fTE%CF)qn_(-l?O(N!6u=sO3$x~of)cDu9HgKj~yQZUCo`U2dfOcEv7^k{p%YA?6e zP*y+NHqWT$pjksz^Y!|&%C_6%>(}YmhTM+tMCl14T$SLwzxwy(IbvFlD~ zPpvP-Wz4_|sYjU_(n+--Qd30{Pv1m24zg0ED@r8<_lJWF+G$MP^P{9YB%fZTi4sDP zFZapOFvvI+gK_)~&$py33@(Y!ClmLsQV0yMQ)^9IU4`*Q&Kj=^F1SK#!7h}eL2!w5 zoy@(RWF#YG;3myM8m>^5r0uipIAD=8Ad7r%*`I5oogTn0S97gOiz8nBhd9-(kFQDV zdL&7tqvn~#&;FJSG;1VXPa7~Esev*LFU!Mzz8If?UWZlwXdSKi`)eVed%vTwOnGnF zS%_saD3blSjyNhqiw7%5x3$()dTo$9%Tfz0JQ?yL+t--NOw!hzTuXlHhO!yR3}OKp z%jKS=*h19$N0ed@qM0z&f4)6KO2V|j=wP>$>|~)RUYfshc+P~N|0zWgrO~=d&Z>pT z)LS_A9_6y`wnAAug>X3iQ9UC)nX-mCkGWu+=nbqx&@$-w{A$k!K1HD>JmS#z%`wa- z&p@0&Qy0)7ARZv{qr_{dcYJ^z@65}WBRhSIFRUw&9iK*yve1aiqpCOX09~%y7)~7@ zh=W6FWYT{#?5gk&tKr3JXvKafQIer*i@fcwWK1fTf~Xr|TYZjzjuQLGwjV!w8UiXD zN3>KwUv;rjdk4BD5fceoDoc}aPL!ZYumUozv2z$-vc_cQQuTqC4450?oEWsZA5vO4 z)eRvIF_N%}kukkdMCd;J>IrZ{jM~)fezH9!9CvV!CiJtR$Oegl8U(U-x!vS~S~Qel zKoLaLkh;P^{bXC}fmR4B_>np%mMlmz9hfLtwnE!H!R~sAZdw^Bz0Z~c-X_wuj(TiP zNuC(~P)a;A;SlBTTs7-vU4zEBGpJ0Tfhs{{|3Q7AhrThXW6!W%0CSolg~b=TFU0vu zq9fdrw!5T^f)S9+77I)XISmrhgLQKxM<`C;)5<8Mch@uq#X}bw_hw6Cep84!F&>9c zoE9;wUwRYxD}hVm)R_C}6}0XyA-v!H@K@+}BLLawB^kpEbEyTl400MR06xV2dZueAC|VO9WPlft%x$3oCd zke;?mE5S8bE4Ej_kV@Jppxd$?tOsZTyYpJ^6s&^`t6+ziaUy}81KBRuI`B34^p5Vd z-JNqWGpTe{3ev%c#_IJ&Xd7oE_A(QD$;4Cxy#d(d!v#sfk&Wi~Fz8KdopI*8qG&S0 zATA*!z}P(C5Ui+g@7%%f!8voZ4&l!*|0p^|NRNH*N56JJ+xil;(AQ8~m~3aP5q8He z;pQNArdvguZ5i&eXW%kwURtH184SFYfR>T&_ z)3gWbd*=eH4$4SpLI}>-Jz(Uy1mbjGf(zA)=74z79vA{9n6E$(_%9j8Y12V+JwEIR zQcEm^han_HEYP-JC49)w=;F%mm;mxIl+T4&r5n(WkkD{p0!IRHTqBx}-R_4oUPAu` zg=*dVI|qQo1cZE=Ly$!&w1u5%7{YPAW%o~1yLwXZkIbzRvYZ6VWU+Vfx?J9D{wvCD z;nkZ{C#ZizFhD$RUq{$B^~>CVGIu)5@79*AoZM{B$HinXU<;Vu&%)39vNJsM`$};} zUiKXL+1UefB+I!%gWPFA?!rp?=q<=KGMAZN-FkjUs7jAM9q~J+Y@PHEt|^G@W6O5n zY#9;u#XRs*4ICS>q2?unXQXZcWxdn`rq`4FMD!QsMT5;r8xcpW+ab9h|F}oL?BSyC zk#m;}gPCXeK9lPL5>bS-+>$f?DLqq+B{b?>ywxnMZcJkU`c->o!|8RKu$fSg;2%L5 zN;77~Sq%pVG-@&bg9JnWrLW@_MFMf|n-c^ACLXE+9@*RKcOGW&y|2!gbyGDl*tss< zEOD`jO=CB`B&9VVZgjG6TkNp8^~$VGE79Y4s54AuOG>ld!*7EreR1b{lt>3HY%SpQqpQSQB#<$`YjDA0?}~=1WLwq7S;lFf`86{ znHREDcQUX%S}1%Zma<@r{@FBnHZ$fV7RquFiPpeZWBEaXQCS1(DcwF%1=csJVC;kh z03unarK%Mo5h3z|6&2Ldizbqk8F1V)%}+4-jp_|aeGvALE)E7N445EYa|gV@x4cGa zQ~^laH(5ebE=njvY=I%IT;N=4c)6`#buJk!?GXLNX?a$}OI?O0N}DA~32{qap!?&o z5Pegi25+qp!bGkkkHNrNm*O^J*c_=+34_;qm zvnKs`>@O)o0X)2O;Dp3ZagUn*ZOFC8rM)2I6SuuI0uQ{<_Bstbf;;%n!kr6wH?a); zh!*BeL-86UIEEwk#&Xep^g5ii^Tl#qt>^7`0^a<|PfwS$06E;4iDm=`Km(S&Uh~9? zDdKy9qizzbap(x)wfWchq>kQ+3&kqWl8w)!BIn9br3Ro;wXKpPJQWAog6VHa$G|k? zgDoGRfRs>3ym|UFx7n=KUaLYmK)^MN>T(zG_+bP?R=9|RUf6imd9z+>AU4-G*_DpC znC#Qz@kHwJ@gS$xy4LTvabwo5EjznzO(s9>W|YQ-m6;lnQO}k-^U@wf)~7;g(spqt zeh~4-IvWfk8rzYVPdJt(gk;2E%$G9m*BP|15Af*=a8(S<=yuUSz-jgEZZN}Ly`0E% zC${@gID+m|%;{R%Ve9ftSoC^6xL&G(lBAabS$Hb=QIhMMiOBbQN=~5mGXt;q_yQD| zKtUPSf^7A!wnR`Qq<3SQ&Dp zSC2NS*9~3X@Z~fUJshOD9^Z@exS}Yd9J~t8Coxl}H+JoQ^*SdA-k2e8E1s`tDwoSp z6d6A8Me3?2btA}84bX+vOcOpPw3(GRWAkwuA0xNRWRCUI5JPU;UE3|uE2Kx`~TR;tIgR{6K)eeskg_W^fV2F$iY(|$Z>RJiqTmm8C%8@u}u z0?O?7`CD`59yIknXZv7(ogxvnh2#0%Z>rOUnx>1?dy<n4jcf5p@&a^tz;3!o7>Au?8~cL>bRL+vvQ^sVj}?Pj@}R;SzCmxMWR}YSgzzlB{YWXa z@EJQbd7 z<*ZQ6|5AGn(jz8A&ifpVVFPfZ>11tWjZnhN^!PTIqk3y3#y!aBkqj>>J>S1>dn-yS zK)CfL^B5MoIlHMjrft^_yz^ea=FkW134JiS*@38>Ugs8Rn+o7(GVM8Epv@AN9%ZzC z4CDtdQm+Aszqn~W6D(__Wlb)#np}Z}?0sZvlIh5)TNFNHYGPo=_ZQ{uf#LxIbmx** zOSlDjT*;|Fs?m$E!YFrfVkn1E&H21$tsCIsQ=sB-(#lJ|h$Hv-F89#U1YNaivZA%M9IAY<3wjr}c$sncI`|fLoz14Ryk0H9MW78BWTzcd*42-?O}S7dY(s z8qrnk*o)Mv?`cc>@68;}UVW!}NMAid^24vJ#V-C*MaHZPjOz8rz~C^kJDrjxgbuy1 z==_+dw;nb)R>Laj|omrTBQIhra z6zCr8F6FFT0HBCv^JOVNla$Bm5~*X0PK2zo&hZQ^`>s~U&**UO#6_ePg<~n*216i7jPRO{g>E}Q0->A^@$3=hdogr%!e%W*YSjfKRHM`D}KGqcE6~_NyAQ1O4t~&F_Sh_MutN(F&N$Yt{|NYnIS$%jY&|g zk#QX*(eg4hYCuh~28~n|K=Zz7L798|WZj})Rf}JMb_UWMnv9@df%h5o`$kJ; zH|p~th8$S;^Zt{wKQvN0D2w|@T;z0WokqBeq2KiNe{$5-+5b|>29SaXF4@sOt_;*E zOR1gqU2Ukb-Fkj}I5{JajL$`c>4kHRfZ1C>gu<@fOHA#spT5LD+n|p8=MFu<6=p!8 zS8wAzN}LWJ_~b=Q*>miH8<0Omsf+ds%0A!*4Yu`;E@zq94N$BOL`S!S&XGseP~f|F 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 z zwg`^pguyihN89}x+KTul#rCoUFP-r!i>4D?7i5i>oRIf}pTvi|`y^fKS>Ue(YFjS% zzk!J!Fx#(0DJ%Hk_{iRFDr7^dHY25O5q`=IF;sO;r1z;|Gs}&dy>Zxh#9JCa4D3Lp zi1Y@egq9O#)*BFX&&BDE9-BpSjTT*c>=r3AxQ3SP<0s)~8UGMQ@8c(#RLKK*R(#03 z>fl6owD7DTkCBMIbbNU~U3JM@fd78n?|tfw41XLw6VDx&pNDYE6<^D?WXN#0g!H79 zOO}RRpNrs@a#*EjWqGl`_1;@i?4U?Grc_8W2?a=WXqU&KRcM+bf-0~EB^Gj* z2-NMgb7P~5)IzavQYM2{}v`Jhnn5(++-FED}ABisepZ+lmbJ1<%KT{^Nza z4h4^aXYT8OY8S~O#?+y!_!2|m{JI0?t6+M>Rgzx_H=12Upl8WaY8vS*aGrC4Vhw2J zD!S?5f`$LYqaLg{#U3W$=)spnY!an-{f@p>SK07{4Fv&1bpqU-uTfTX#Kh-7Xlnw4 zFx1Ho#+vQsYGPq$wT4-^%9g7HT~lb&4`~^z8ITdnnP|hm<^e@IBh*K!Nu-U&9i1RK ze|2=p$+@Gcg_E1ror<%c1W}~l3|z5j4OLh19AP1@O<--FJ&ZqwZeIKk6j;0}Zn%EM zxXoD3vnd&<`ON5qo_Z9O%+hl@jBo;sMkFgjpP6T}bmR~iedQV9qO}ohc~?9}lPpKP zQaOtllA+1Gfk{R5_FS5$nABDoPb-{iVC9w>S+@XVbijiPk6=R7VBfuc&qOVnbvA=- z7I)4&wn@eV4>f5!Mo#!{um22;Mz_=3ZFL-uEDCfB6^cReB;CjAooKa;8a12gce}me zbbLG<)@-Q$|BgH3&JH>Dt5mu*4TAaEsDw(|m znhF{KZUAPb3A+4}b8Yc$ki8ShE` zJrYGvs&ZerB(|Cx`a@%G8BIM)jYvqK9NTx<)R9ZD3ivhlk50qrunH8atOD$$WZ@>A zd1-F&jLWo@7HzO~vZ{0Lg(j<%^MeC+Y!#oz1u&Ky32Yj=fJ;|Vw9@+INB9sT5g1Ho zfqPvBRv9<7&WJYxX3(>Lf+O!%syM7kiAZX3Xc=74B@r9AQrm_Ho(2isy6uZ@z|B*8DK; z>LLMs2A?Kw8&vWPPv_zkN(vYSehq=*->?fcCnEAjTi?GPbw=O4es%We(;r9Qoqd1y z;e7|M!Y|P)FPddTi65GpCCX~oGc4mx$w+cYma=*xh*_3)a|=#{2%23C;%F{jge=b8 z`@PNdcNS!GV)1_l9GFPz*8$!=BP%8*gm7dm&EBvut2yP-{Mu)i;Vz+!g5B zJW+*`zOTc1IU`M#-YITJfc3(b+d=n9@5upE znjrQ?nrAWEe?PH(?l0A++FHSJ9aiylJ(1WBen3-zI*{cVjoPf~Ma$YP9mF(ZqfI-a zX+$qi*?FAO%B@bS#q6fc82FM?6DjezmE@SDJjDcq%-j;@xVlX)lvWWy-1r93fe5+I zOX{o)mU5xs{H&HpvNX$Az`m4?c2m;9gGZ`F|L{^R#mCyw8dc;T*E1az=XWKMXx*I( zlozoMno)5q(PrLoZ*Flj&GM6IFR!%vAP|Fjjo>Mu*-dM?w#ZZ)!cWZWpqhqaWQb}#H7g2suN*8}@Uc}c; zyS_=lJ$wrjYFe|K2Mq7DEJ|kF)li=G)>{qjI}Q)ADjFE5f&pvUOSI+pPbzpHC(-00 z=82bIiM9dxgGWCl|I8vjeLCkAf%_vDfE&W%u&OSR2jY>4)tHJA)2aD+Dl*5 z<#8>zrZf@@b5J(wa)#GpX|O}8w?>I{s@weV%+0icN`>K^ZyX3-Xm(Qs8>SV}h_ zT&~TrNWq&C#2%h&tKrsH>m2)eEm|1&;2fKuug_7g&z+m=t(bIvD0im4B=RtUP|Fl0 zFk8egDqEr&FYF2x?)zQ$pryOY>fNX-l9LjlmQpdzA9k@tIk@np)$!K-?rk^wm!(#j z{oQBTG7ZuR}od+ZZ zxP~cjO8GEGW80aVEgEy@iN6r+d1Z_?DhB6;sXMqWfN!eR&R<83(L{$2lUhqg5+mt& z&>{u~#|!b4<~Pzo=YSQQo3d;s?+S{jfF7W2?!x?5RKQPoHYU9Ba1~uG*ckWAOLMNg zI_@;PRxq)&i=ewy4X;+iGT_(Y`&62gy>OQ+$iFHV5KlW~fY(U{H`xCeU>&b@UAu#Q zT_!NuMlCtX!uKW~ZgcN-hAZY#!Yk>@V+wMBqozBhFlKZG4-iy!zFsm&hizHp=!mX=Lqp)wUlADP3 zP`K_Zy4S$3K+#!vz)xp#%MNCiBgd)z3{SvtL)>OnCw;@JiLttQT*Q`#jmNxb?82c@ z5jxqh$*qo0+}8y|J3eu*(H&&5M7+qCc`{@)$%Vi@gHbkfmlEBOg<&ek!r0;n_eSt7 zBKJmPd=yW(I~v+Jnh6+x##?Wck9HL|XlbWcVFW6k>fB6fv#co^kwdGF$PE80xEtCk zkCs!=9;hMIya!$HOP^aH8yGke9G)WYseL;?QthjMd+}OteB4kpendFB@BN_p=>@pK z4_$8a8tIoe(yM5sU)qSfyT{KSPVTFior5ajwM9zzTEz`YIa;67{YJXa=v!)Wjey=Z zf_W#@lA~0DlY}YX3BC9P>ljV$z@3NSr;+!DILY%q{YTjJN992M?x)G65spFjl-UU$ zC+P8`Q9+qj74I3v{piW9Wcwg;y^~Bmc`7fK+k{x%*erKrU-6QZp5~!q;71RB<%si+XbjUNa+NrzsOTpEfL}ZwG=KnSK$ySE zBg*yVdpe?k=er#yuj^h#souvB0wwRXB1so`>GEzIy|Y0hKPP)mOEwI$hNzIs3Qh60&eoeZ73!9-V~3ryHwT zb@V8`+^$D*7@%IoAl^pgtPGB3bI**5A?Mj}pC!n@spzQI3O=C3W8LEr@ifonHGFQG zBf}5-qqVj?;OX044hHu&`Q2%}s{XP@bzNJ0(RI?LEa-zkaFPGKPm3fXa!BY0-`X3Ggz)<$n3056s)bI=D7juA zjiW(%50EdE3SWY7xfBSw|3`+4e8#aq0s&kDVkA|!bhxC+$g141 zOd_bC{iLciovd3?RX4Iw zRQ|orXraKo?W-uv`fwCQyta^}_#ik>a_g87i)7UBxfsNrn>qFM_>h{-^Nc^i6fVPW zxlH3cLAMOPcdn=i4^N=GMowEIbSef8IGVphI?|!aO5`h?{1`HQ0dVmJIPvC;`Cx*Vr1HYu`s=yPc@sbh6qAxcqi^r%Z?GWdW@VzM}?gmL;3jM+Q53<9*)c{0R6Wp+}M?{E2q)xl8>GuWY5<7sTJ z#^&*0Tf76|u8y!pHJw6r1yxN_SeFjlWUzKcKLMkwJ zkH8WO84ze;$Oce~kVmg+Gw<3}!!(C)QrR4qr@eg30tr+mfC+ETK2>s83Hs5`>PYg@ z0x`C6B@98!#d#saN-84{EnFV2E@QrotNM7|XQRyni;&G>*0vcwB^;m~83esc?)Z5h z$L!}fuUP-^*&*w9o)HrQ%cRb(+mUa_6hSa+IP5Q2^`v}r49HJBw5NQePrITv8&_pX z@3GU{W$Tg>!K}67a^nYpwdGw1UTSELL%`=z?d0rn81Ou*x_we7Kilo;Us8(e6dA)e zlSHIL`Zg5f*$wh1Kf4kNR*8%bvVTpgx(%zJEsy`)6sch1?j;^ znHj@Dm2YW?6v^%EkgQfE)_IbC9>I1in%~mSBY}M)aCgBf!uT>I8uO$6^WH6GraQK! z)O5uvxh+@8WmLqKLeoKJ9son4g%F#l@7{sEC*j%FKT4zhWO;eCPoSdFe18?6Cpkii z;OUU~b>RJaOTo*YZ6|e6t4ieO^K869O)Dk79?z4>JqjFG!Y?dzl|rT^Rw1x;s!(L> zPi~{qtwh9=7?7wz$%H=!=0v)dMa=Nso_6}T)IF=ot@O{RS!ph_Y&ni5UW$FWJR>IS zI4=j^LGyf?bp?BPTWhM?+s>AXY7P*=UyqtRs$pOc;P>M2#|9ig@Jvj%$Jmm@6F^5) zq6ipu=&}KiEl9u}BBC;1toKL^*a7;B1HnUIsS{&%L|^Q&*T1Y`-pvKDeE%sZtNwqS z+lPJekm`)}8e)^8u}y(=pFMsIoc;Ca$JcMa|L}vxnRKx1@S(a@_D_V|FPe>RuYY*- zbnxu>xjg;fF^>zTU711NJ$QcNXcZLVQ zi1)St2IN2w(BB1GbwTM0pN7KZBzoE!v;ovNMh-s5>e5Y1Ace^ zL0CMCBSOQAR_C_$pk&jCHAN{IH6T!D@hr0fs})g8aqesfSNTyiCRmM)xYNGzelUWp zIYGUaSx}NyS&FkI<5M63?8A@+DFHm@s*M-6~rUKwPZG$J8_a>?a!;Q%`9eJe?l83B8&? zGEW7qwoDG=KWuVNKA43Cvb&G@9Xg`$0VMgOK}3jyy-G+-TGCHFZz*t}Li8pO*72Ha zHcsV5I3Cv>$1GkfiyJeWPOX7L8uX-Dv(d5dx#D#`=bGw?)$}4^7&Ga>UVvFKc%0kd%B%9JduTWC~vT0ygzj(47dCny*N^$}bO>GDhswnF74^ZPee< z`$7@ns*n8Od#gqdX}$m0?cn10sd^gdt_23mQbAOB(XjPM!>*Yv`8R}Ure^}_tnDH~ zv^?;H+vrzMDDS-4GC-esNO+w5Gg{%3P{n#S>$ohEB9?3Y!~f%9s(f(=yzy1gq!4rLB|8kt;j{pfFfND2sNA0*<$HZae+^#K3?Dx1CLQ`S1asKN|+Lp zBAS~>;kdQoDT>n!XAV(`uOpg0>R3W<1gW~UYu!_Ngne1X|KK(m=dwf%HU~!c?j?K1 zZwAQzee8b1v*AX!5gscALfj-S4n(^xMz75B!E$EdEr-tG6AZ>CL-3AF0KJfd#aj*^ zsu>IIS3WEzf2p$U0g%Pgw>duWd|lW&?~jv0=^hz(?s}>*12!Wk-?#n?9VS3_EjP!A zu0-1Rs=-qrwgOH>2a{@T)MDDYcGfAr@zWePzWGxF4~syvf}XPbu{S$o@m56WE`tBT zT@5r`tFp29#?uB88@K(yj->RxMPK=k7HJ0J=An;d3Eo}_u<8?84Rpt*xU zNn#-)HpsQbe^I;jDpN%?i!a1q_j{j$HBqSU1aVQsHa~G^yuBBC-Hu+r(@)&tNx3)s z`K>#Nc)~K*^<rl`JDy@^GC+NR&|#UUM%lqP-q^_Kq4r5hbF9brGe>ay`ex zBNe~Z8^O5jX~_m&4g^y)8ePTFXXw&s)G#el8I){r6n&E-@8c+&LI*fviSoi+XFu7O z18Lt&u+#WvYuntk^B|pgmm33}PQ~EUtv!9WPX2b-@Avxsr_Ya{w%qti1`8j#poHs- z98|P{OLSSAt>6{BveH`z0?uZ}tFVDsfIn~Tn`*CTvt*J`@kK&joCEbRmc z<*k}cK|%pO$IG||A9JPfE z^CZ7b$`g@IdI#Qt6pY_c8m%H1PM$sNJ?qs^oGn#&)k+PG|IH<-JbgynfX$LoH|z|_ z7|kh|=5pD5b=f8|FYoa1uzO40khE&3##fb_sA*{_JnuidtrUP75z}HYwohjgYSQ$_ z<&LG+^B5&gVv`)YkhAM}jz+tklE!=oP?}5|`a?SgUWLHzM0;Cm)(G4>4Rw)nCARL( zM@(QbtB6R5x^3|?bZy4(1n!|E$(}4ah`;h_>o=O!@^-(8hg zK{=;__h?~gr0C8gIMWpV7-dVo8&(N1o%_RRPIaT!fyXsRZv=*qpy09_@)UQeH)Kt`a1mRXtldUl4e-2|pVQ9a?o%fwJ>* zTRj|f6jhi98;d=DFvZV|*QpQCiA?=)fm7d7ySIW@RTTje%^lzok-m-)>Gs3tr z!cZUEJ-;tY`Y;&qced{Ljun45jtoqB!^@S+w0%hMR^iMNRfpT`I*7z#20kSN!?fJx)){~Er zwPI}Auqe+A_gv12%o*P+C3KaD0FJ6r5$=9)!#;j1$$xSWQf&OfiXY8<=8|$y@_-LM zlyb|^GX!AZCFB^M*;rXEl)KN~CyQhrt>!oG+%t}0N`E(P1Wezw*(^%v?VZ9s-~!8Z39FmB%}S2)RRX;yjf)KgH|}mRo|`;lz*lF-p(gM= zdFlW@_)3pP&5D?x{~pMPDCBWM3wh*;wN8|W$pjCT@7%`M60uAAeQ+bQdxpOfgi9Vq z0!g!!9vo*g0%GC0?=%Xe2k4a?9JjbHVx>S3X@{8A5c9}(t@|jPa+{a-Lf!J1mAg9f zIown|kj{mvz}(H=yFHY9B4`hxMbO`868VIL+@{RNS+t%PVgxCWm)pU7`rPTn)Q9i% z(MXLGQ-?yW15+KIkw>Qbn|g<);qni6Y--Z+?*+)IqrqyBl0sy14M18!+{K|G^Ns^e zQ8f;xqg-$6Dy6HL>*aE8hj-2Rn&~Q(2B=i&I_Im#;;=D_=7rDX@oVV()r07?mg&l9 z8ozx|9w9Pr6_v!5tSFM*$R3!D>qR`20yvQ4Lf8iZSnk`$-)aTZ@Q#l$7V_V~F*DCAFR|NEmkY`9O4RD)wDw{qHD z?RGnZBis%g^tz4K78mU|kqXla=P}4z`bh7UJg#&u>-&e7%mw=&Jcr$f;9wvfTkq)C ztJZ(UH$(@=s*aaR;8yDQk3=N}i|?jzxXsw&k#(F@6U@R^LbK|3HIwadiC&E&W?#$7 zIASa-_6&9p1750MUP{Csy7cDThC;n(UFVg#ipLx(3iSrZ8@Yde-06u@Pb*73?R9YI zDjV&050U-e;f7*IU9B`_W$Yjcf0B=iiu=7@UYDnuW-FpjAOXa&_ENvF%8qsXqVflL zh~1c>4!p*o9A0B^3wVve7l79o@Gn9*83PX|M(^TX>8qgU_#^7aFiJXYUsK+ZV* z)2r`Zzlp{ZSc617G=x_n8k8s-9$>|IolY(cxQf9Sgsb=+VB)_Gz{Fi}AS`Hvfix}u zZqNuk6g5yF0$W@LFM~l))atxbfVZ+#H7lKus@)j`VespKAjn&2_Qkbf!-}Y#rdGG< ziJ%=&< zzvPZw5LpIyAL5d=9Vh`3on^Mfr2}S=ZC6AJgWJ6zvO|?Ps?Z(G`kb3+xs1~(Y=E!n z0J*7HfBBO22Dtm~UcZ4)oyw}NQK>=;L8}`Av6;g7lrV9ubn&^Ti?qCpWEv`kI4ZGt zV|ty-#btLm+*S8{1y&Asf(%Naj#CjR0&@J&i;hvSQB(cV z@n2woZX1&JV;sWN@)?_a3P)3QqowHYx`VGms*0GhD4}2-XOv~x&>-_6tcdHDjHFxG zl4D{HG)ZD~k;p`P0iu$LOThf~$K{PUY#C>l@xeHrW#Tgw3ep={DU9r(n0qm!)=PK%pKoyp)5{}#sejwgD19{8NBYZUb)6~ z0~)7V-9KUegShfGHWUbJpwOlth0%ibo$qh7Ho@#d5;zQ`X908(`KeGUjc$Zu|N9Ue z#9!74l!L!l%rS3Ow8U85<#|@w*iCcc?y#kpMl8>%qo$-ZX0&+g~Xl$7Y)IuS|afTC%;3CBM3xJYOM#A;B~uV z0618U@3^Aq@wwmolzxe;w$Z%Yn|=5~w&DIJ_dQN*S`)OMl&uNfN}JHFfQ8$G#qFxi zfy;Q(IO(%GckK0#O-vm}hnHeUVYjbbB<>o?o&xFUmld~ZYf;C|6YNiC-zLdTnVIPW$;9|a1T&= zf{i<3>G6Ym4@(b-OP9yFhOYO3NO(F}ZKB`>hfXVv1>l9I4ZBx@h6hSy zP&2#qm7v`j+`-QFsB%MlbXT~$uqb{s1;8H-qu@Q?Q1b8PK2`>|3A@b=cA^^SCfXR~ zsG765^Q4?i7mZ21P!U1DL`g$ygT?s7%<$%N7R8B zOej9d8#jF&#ZMwtG6;tlYVt|R{w=^cvR)QLd0z;3F0xb?!$Y~7!e1^Lf4d&whQERu z5`7tS9}JiQIp;hs@xX8vl>lRx47Br2y{fXa-gkDyICv6Or7%^31)Vdkey}@UE~rCuy5_v=W~O^3yoLHU^Y)+(6n9O@D=dtxkbp|e0~KVTMoY&1TFY|qDVcZZ<{ z@j%X_6X=g&k+&Tt;s6ZwT6da+1a-`@r_H1r6qKn``bIoz8yPG7zhZm8`I zn+${?mf{fE8n2ogX=~%;{9IyWf)LcxBlN&|TKeJ`KXk-h4_(yt-YAtDLoouzwM)D9 zOYY6ew2ci;Yr{IL5s$Ic)2-&&B1lcZZ#5ou5Bqcu~}|{R^z7Z*lsZ2B0x3-shf|HKFd%)NaJYAn_Nv(t4)i z%Xv|nSM8pi)lg;y`s(U$h3ZzxziD2Mab*<-ay8&3luq-Am6xAgJ_$sKOHYA&2XGB( z;}!s}hfkjm=oPGL09V{l_ zT*AA6w+sKnjqce}mebbLG@d16T;h!5;R1BNf%L6@+G3BsYJag z8Ww(wZ+yc+G>@M>*R$*|psL0j(qNp6lIwutXoAxR9bBi$FKZ06P7G8y<7SG+bQKLB z^`0L-z;GTu?eV8}2e%wl6k^>${SCrJZ~Nr+mxYV|0{2ggJKR70{k?GY+2*})?Ki1p zn%@TA@|I$#fl4jK&?|@HyF3~#FbhAV1V+GyKwx;mx_v*Jd6696VUJQ<^6a`6p;kp> z6vx&sPkF>r`KEXw;jmBHd;D@i2}ot?9r%YZ7St65x~5Pj-vZGbvyg_-9Xwdc;>9?g zV*HgCg|;?7S0?MCc$;KIV5>iwCxmka1aNyq;<44uA~MZlzSRcdMk}$qiX<0uyqdBY zKNCVn(4s=y{^0?LwVwQ+4}|=&Vi!KO$H2mRuxJjBTJ~W02!&?d{|b*_=@910b&<`o z^@fNhsp_D}j`WDuoF^a5+WT&8%JvnJH+xt^L9M{BV&X@H+tiKRRSjIP*ViN0ztzmK z=pA=k?hG=5k`^So3^ILbNOalmEg{k6smOgpqHpM72_pK2&V22N=ru*Hr0^RDM6Vhx zYp8B7i*4jkGDZRH^zEc(Oy}Pw9J(=1zr&&bTf(6mBm6rYx-%ZX!=XPo9J)GS+ZbT~ z9S+?>JF8^q*MdVY8UM;yOem;9GtAOUo5n4I9-*K?uo+3f^4D!}_rV>(-DP?oMGl;p zTP33Vz&wY>?d3raVWBnvx`z(2v2rP@yRI-C&Nc(Om(ZV;fx7GRGx!WQ{?RP~dxyR| zpiK7y_b%Dnv>9{Z-X)9WIUMrn=mBy#v?4K{VC2kN%=rW@+u7{I`)9n z)z1{zDEp(jss{#82O@qz*J3Rkc87{aW#1Nu-DO9kvO_=a70g>%ky^PivhV}u#>ggQ zZcLEB^4yqUaa&*l*Hnjz2}~W&4B9MC^Yuy`w_U{?I)YBsxC~vv^OFV#Z5ybZx0!Df zIdmItO5FPdI{BF)puQyN5ke{(@|bU*=wnj39{}?b;$Z;utEdve9Djar2=mQJO=!rr z%Mz*`{3=JORclja5bQyb%)dfp^6h}e?}8Rye`LIf-hX4DaV4AIfyOK1kHMf~i6AQz z(*8}6#;si0-~{?@AdT1Q$2Jq>S3?@dy$AgqIGOvN{5tSv&kFo6OftlEf^APUp2xfv z?%aLKBBBEWA^yhYVHpYc?U4pOqKTqf`x%UMYKm!Vk%+ zvXg=_`}-p<N@%7IywWP)h>@6aWAK2mr};rcN+~cai_*004=; z0{|ER003}la4%nWWo~3|axZXsaA9(DX>MmOaCz)~{bSoUvf%IjD^TUSq7q86oVMG# zao#$K)B2j&x!B$AKG!SJ5@oZNNR_1QXxr}Je)9o<00>I5lfJk2uG(!Zk-z{L3z%DS}Z) z>}+p8>F#XzzY^kYw3v$1o_I6*W|8DE6@DA%v!p1JEEP#1uHrntSc=O$O3Qd0ib)>F zBAbZORg_=Gp(ryErAsl7^8zYl7iE;B&@#Y@po{Y*mMyOUP?1f_+bEBr_*g_mk&TiF zAc}D|TFm0Kj7n^Al1$@51mzXFdGEYVb zC4@qw>0-?NPz9#RERn4s0K!LsU>6091N#~x0+R{;jcIW6#l)`QVJ&T>)2(<#D8p!YQ5s)tkt+5sSQL~SXNMQz_+Wixv`fU3zNPodd(OoPq< zb=2lh@u*}tSYeV)r`atG5t>cM3687Sr3pNRx6ws*6Vsr0-qWmv9&=A{Hs;kN%U8u! z1Vgw$yfgNodBAmKj4Q`p6eUnX0uwRMa%$8aZ;w0i?SVKses%i8{<{Nlcp~1uJO1n8 z%Y&DqwSNM?TcP;j@buf`?@tAkc(;Fa`gd{sO6(u~U3_^XT|gygqz$cnV-okEuxs?C=2Uy#gR_4&J@^79Q+B zKYV?7`u9-0Iy^l>sILI*zIeO;?)31*_pkTgiMQXsdwYCx09|+qfR7H3UcG~M4&EFb zox+HqWq2wM{t7?E$+!EjUsH4Y-@_Q*Q6FC%zy15W!*9Ml72h7eet7^7pC3T)_Mg8# z;Kq*rjw|u?{^6TYyxf1Y|IGo_I|exKsG#iO58ocpBWQ6S{{Q0i@c0OE^WymE^d0;} z+?*c2JJpqcI6OHB#s0g)6GY6bcgN5GA{Oc#6Bwv@bii;B>DY6Cp=SpQ;aI*uIjH*c z@?ifpKs&+e=2YV3ZVd*oXa@taCw|;&wOU)6-zWyu6)&c+#DQjz;ASx_z;VGVc#@<{ zhVlD&1glA?s=#4pGx)x>_c1?PTeuo(9ZaxiK-*=Ur@#_msYLU6o<*Z8?Bytr;UScU zer|C;@mG<|=1^C4G!!>Qk0`&)BVK^8DyH%K$IECm(f~tTH^|R`&EQhWr67FpZ-;-HPD%ttghjFW&ge$GC@F!q!5FmJ9`k zH`^KxTThE~Ma-?|Xv*v^^L+8;T70XH;f@ZK9Rf zfmdNY++vms{1vv3^b!z)Ti~M1x`51^I4^m2-Cmk7I=j1DTLM0l95#!2GVcv;;&hzl zy^5}ZG=Uu>N@0(Vrt_<);5rY~np3j{$c;3rsR;dm#f+5$uG`wX}}HPRyjI3Y~%>rO|mP)Q`PQO_5+Et@->8o$+)=spu? zZFZ$ly8|@2zJY9@1HZQEdHWyjidK5uB{kJVTkqmxF)a(ADBj-l zxP;9gXaeVY%POkL&_Lo)jDU~9rVShi*91yd0(nG%bOo|Y3H^fwN@5W#Zem7Js#-(Q zh=wuVib^TosBYGH<`oPGg|i}?#R`KkZGf(sd) zA|ZCDnWlHrh8EYcryfK);ARBlA}V5=`_8hW6dAnBs~Oo+C6W}LL-R;1J@I|PKwxuL z%m#Oe_*)24OnC}|Qe9BCRw+(C0AdXYxO}H%r*46VD&}o2Q==ZXFb|ZLT zh(=IC+yYDKUgjBaY_l!q-X;eo4vsC+Zv=;U;xQ=33o9Eq8ExTpU<%NG#(8#}zsd5L zz?oBVoW}Bv*==0Q<~{&y{Tb{W`q8iLr*9BhuadkdtvCN@KRwRjiQ7*5Pwl4%AP!iY z2W_dd3uMnyxG={6Of*9xNEUwGAm&WBY zXj*Q-yzsVY-Q32}bskUD-i%*?JKy3nRU8j!y6Un}U*Q;)5@*s?b)h^S(3*;nMQJG0 zX-q6$Kbq4XtbPH99mN;X=vqHm&Vh`mmt&xz5)h-hseW&5mHBd4$`EoJeNu@bxYo-o zn-;1boZR8j1XyznGV>^&m*SA#9OQYH@2;qs7*!ENCZwtpRCiEb;U2AOzI&a)m{zvN z6$}xH>#QD}fzV!bF;Z0zk-uHYJ!e(HHz2M;xi@eIKx$~}pl*7n_h&E6jT&xf)WMvm z!f`$ZA$|N3qyt3z!1&$RWerpV&bSuJ7@GjbdQHIbV-|)*cm$lo9SRYzYU_mf=8@tC zjU8u^%_+SL%o2D99EK%_AT|p!;za^`;u3eSNpiW!NooY{z;B5=IFN#l@w!(XkdZB6 z^ZT%0Wku25pdH$@E9q+j+uR~o;sA+17qK9qIc&R8A@ww3vcPg`Bt7wb3EL$LFgI|3 ziX~qKVb^XBHlfpe0WvR7@Kpw@P&dlrrHE4`EoulD3-nL6!V-o(m~ng)PqR7hE)0?c zWROTvAxRH-vb%~V2OusEV22%)*>y|@)yXs>;hUQUhQMdt!=hNk;=vbB7#HvudKkkT zr*XC@1c?;tPy-)2Z1W~4_ec~)VLwA$mpMqFZ-6mUeD z(Z!3!CH4{?T*TJAR1*oi5$#e2oird|kD!A9`ru!t*|3HxNBnjNUdk0ZIs4yj8lOhsZEl9snN8 zKQxk07IW%4em_MT*I!;pB?uwu2R!-7bNpESl@Rf(hF8h+ijJ^4X(`ghjGAGUMfL5= zi-f91>GH)CSlnrJDSsZ%<5d0{os`RI{DMz_^dKY3K)EwIiD9`#Qo`kzD2;x5`sVdP z3P+G7KU?5E$$p+k{ChrkVU91RHm2F&P=$NFVc}BfH{d=E-HR@s6UTq*-cFIRPgWl6t;PDvbWSj)ZKEK0%qv7L~3z4 zb(d6;N9iTMtQO0b{GqWL z^5ilBo^%?&FM)G1)Jw%F6Oahr180l4#WvK6j5$H@q|!&ww0<-@q&*9SPR6Z$QnR1Q zK^Ws1z@`ci&$qTn;&eP+ z_TYR2!W`_hvbX{PFD6pdi;^kpICSku!8=IlUljEb%^>0>3Xq&U1&s7`sfO@WYFk;` ztR`BjMt=p#4u2O2jg%{-T8k$U?5r9Dl|c&nRrGp2@vLWJNPh>4Okig5&_1Hhgt9RM zqb$#3cd!Rr`nh%BVrn~-H|ikTTo-c4)g%en?D)a~WL`k~RfOy|M|x95kdPdhI7qr~ zx`5;IHC@NV?-Q0Yv8O#>M-{xPxAOE=pBZ-y2YA+J3`5&4aG*kK>bM|rgUh&-lb~=P zz%jvsy9SQ2$(1|JTl(d=RziE>x8fBbRL z7LNpMw*f4lpakY~wzJ#qpLaU&_q^l7mH`-8d|Kf3mb?mq5}mv7l585IJq8w#8U)D% zKZwtq(<^zd9t>oAg8`qsVQEkB7=?$L7O*7bNRlCGe#G4-ZbauLBqKB+08WIAsMRax za6}9YvagYMt!KSx4g%UZfQiRDioobtNFC~QT=LT!p@;O~>Gl>xf{SIDI5hsKx9K^*af^uV!yyZAxsUOfo@uyHc4aKuiwD3lXE*$u5 zF83LjFRa%iWhGB{G(&3;x+aGu%%?{p;4!mAt@aoc%h?5L&Gtn5PtTsVer&h-z@8az zg7%-UR+5+9w6{d^8V41>%jOb#Tp`pA* z_esfQSsAk+x{<}vu3>2yY=v%=@^xcZL^oM7E(A&tP+!e0fWAygJxGegDV$3SU}G6t z$Sf}OC7P$Zk`=(1f_dCyq`()#3;YGt&|eF$9YYWu$UUHEw)k`m0%w4|+5L2khNDyX+d)<9k5*#>j1=FyO1LJy6fic8vzk!`hU(AG4KELq0Qrz%Rs$=L|Ce7OB|K7Q5Qfev4j2|R2=3i&u&w` zHQ^(Kc}dUKiEJ`LEq%==i;cMN2eI7`;kWl?v=TLBNu$ish~(Y#3)#z|SlPkjBi;`N zE!?Irbu<#03-Ibj3sc%Dj@yeoeBt<@t55KH3v=ty=)>|y92&5(jCj%Z%2X=9h{#NVv`{V|_829eoaKzl^uipg zK|V)W8Sk=IF^MkI4B8t>`&aI;bi+_RvTaz4ipgmbuDFuYnX+*)kwFjrLW;NsM&X8R zvXsFW;9i-14<#ETJ4MyNCED91c*BrP5<31e5}+}%L9>k8kMTHho3M4_k{etoTScZo zWjCeZBkO{L4;-LjcbP>??BFP0&Jjh>2AcHrOsylcmkyp1kzkBnXpxSArj?0LgML=p zA*CprloedS0xuNr;gesn8XXQMIp3E;^LTF;SUY~DU6Wu9bujV7#$DL}q7-3JfdrzO zl2H|Ci?(fT0NY0&(2Q$ya zwxeH*rc>aEFk*>L#7&Z>aXvwASx~nI1I?!qIBvbL$?g$Idssyrvy^9IR8ojYLNS@( z!i#}*p(-y9WbvDCbvau_EAPCSBj*dO>6fM#11mHpkGJXi)eHew;KS`EGR8!Q;R%I z+++a3_k@F0d(n6-huf)RlS@q}gVNBjs?xr~4qf(uEP;N1*{O(Ag99RBvlpPCwL-f8 zW5SYzeoshpO!YzG0as(YplPjhl3IW6iK>r`q&j-M19VT^>LagBE8=bzq@oU(9vw2}Dmy_8n z9;12rbg6bqHkCAb>{t~Ao?%pd{t0h4EQ@hZ@gX{Mm1-DDsFwnuvffkmNtJT~JxA;O z-a!9+HUtXlR(>}i6{O7nlVlbgzd2+OH|QXM%`H;grf|Qy)+V^p{|-$L zbGmQ6z-@|<*|QGQ(!BIvQicC6o^N;>hbp9)fiWcH9X*vGy7p}zUG=e!i|&N2Lko>T z%{D-+&OIbUF(6mBQ_(Zj=qjxZIYuXRu5i>qAPTRpQJ`Uq)(aWkIf>bEMp~yzdDg{| zI)E6L5iI4aQJW)-&06;PMa`E>*8qP|ojbx=^WL zsukR5-siiIs&SZ$WrI5j;3h#2f+6xqH8;x7Zj>#iW5f*z+&L~!SZTTHhqZ3JcS(k^ zBpSul?vBg?r*yE~t5v##&bJXmyW-OV)xG{k6@mw*B_^7P9Zx1G#fs%ET`Y2TOv*f(4TlVW1@nxXvZJ$>SLign$YR#G5H0nYb zYs--6u#o_henKmIkpsKnH7gCbDeQyvQRYKBnikCBh|j<5^{5V}%DowNEwHUrN|`Qu zMUu`U7!Ic~?!N@TGaPoRQb5&I25slwV@X*G2cmj();}K(D__E@rdD?v6?;$f%D3v- za40?4HuA*kH0m6cqHfPnHtLtS_@rt(kOdvcL2DUDd5g}3kK2tx)g#eVeFkF0)d$oc zN6VHWNj?zq&x-^YhqNG@8BEU{js$0SziP(mm-&Jk+%ljVYFMoZjw}k5W?;tJz{hOs zz>0fImD~U7tFIpScOF0Kn+@TbL1X;@=y;Ou;lk?pbh&uF)O{wo3KtGyKuAz@ItHQ$ zR0}Col5eNwzU1dXuT5{-grs)U`yQjpekJRWMGTellmPJ?EoE1fQ4K6+^PtlTakFhw zNegp~?B|UL#^b`Mhr zemmQ>p_1~(2iG%I)G{aANmdKsQH_o7 z+38SfH%7}9wafTW|2jN>I~G!;}bY`4R+^NwePe%h(PHYl`= zDc9f6eZYB((}+BJV;r>p+>htIeC!FTbJJrqRkdo%@8}Co>j1U$W z&92Fc%jQJt9O*|F!q+yiF2|@3s@4K>FKFSc+dp>^=${)2!J>#Waf2ct@`xLwBNcdY zZkv9&D7y~D&1U1TA?bRE);(ZSQq*^R^W7Z*_J#>9}j zQ(cF~#5VSTCX{+`<7;5WMBir=P0RTP)~$Dd4VZ?vt2i0FHpLkVw-FfkQ_{#Po^HHO zk`>6DEvIxri8=*$)3&)0wCGt&RuK|F(H$0#uB4a7CRgmQ3EGMHc2`=6Pu;s&{Z>5M z<{WZ8gP?R4C`YpT?fZX|)* z=p=c+n5*VUAB;YSMp!GWJT80^JThQCd5#{TMV$}yaQchDgFCGM6CdQLTYem3DPR-< zDT6~i7*GVjj(r_%bYTTkH%jqRYFsLIV{qsT^!I1tC({$Awq$MkldRBO64C&!Fc_gn zEqYx?r3nOP*U+hIYsbdb!L=^3Y^wE*zm z$16LdoS8PPd$x;yUnT@BbsaB@x@sAg%b^!P_!j3}mDDd=9- z$0&MFwpE?l$nuYixlLO9eek)iWu$KZ!gd?>W3sx1(2-KHsgSNGjJ{THpY+~yA3V#N zHdtCRwH2c}+qA6LbyrQq@7ZD5H@C|TjAH`?ck8`IWgpM%$M3(C9}LC^tldu?c)^w6 z>47Jyx^k$x5c2iC^xvYm>(UYvFI&-!z`WxX(z=FB8Kzlw&EA1*4$4Xqa`Qs}TMqwP z#RDWmO>2m9c({Q!Zxi!uuEc_e=+*{*9$w$#w+1`zcO*S=1ZXv2#F>CDlMjeAC!nh~ zWrzS{K%BoUhQn!8l*3`CveZ0bTh0PHSYBZP3^2&?G>1d%CHyGj8Ac@^F&>6P>}_W_ z!~g;s4kD2(uF;#CLe9%zsOmmVJr3FBUs|cE1~r_jE$jlcBxKko?JA>aPhLjyYYJw- zebAsH=uO&n+ZO=^{X}D#=~6oncie9A&{uVftR_IPEan&?Uc~`ZUVb&w(4d$^#6G~p z*z(#)R}ut1o6lCWU;eylPxT`%iC)IlQ+-)jyW7&H^F39;zlfuw7hZN83qLRT?6=3UG>(9w8oMhq}Vu|d05 zlUAG4=pvpvA)4(@fl!HuE-V+cUhh9YcuhB<-fnt^gY_Nnl>O&b7v-&0$33rN$XS|K zzr78Q-{#Z-Nc56(`G}Jh)lM_&R7sRes|zoCi~w)$QCkxbVPYc!Qb=pkF>%ov(i^6n zfPEB1*KbGhbJm7xE6KDgs1LgW3f`rz6SxG=U&!Tc+)2k~RMhF`d?F^58*dE$BR0Ui zMqkgi{7beMH=A6UusxX8rv@!1%u5^qn(@WT(dn9_!c`os{b|w0tM}`U zIdb!gK=%aIEh5WnjjIoybZJw>A@*05lpxi)$Hfxui+ie+D~?EY+Zh!*cZh%5_^!G- zU8yLbdEwki>vJ8xEP`&7I3GihG@sU5t(FB$*|c(*anX z-0Tnu8*O$gjd=*Azk>w~&*A14EoMDtW73!bhbem_cQME8!e8SmTjc0KPRbpH&kBU~ zcq3Sn+uT6mTxq?9#zoT3i;Bc4O`8qI%|=YX+*cVlKevy zjSVh)StBykXj&*DlWd^9$oJtY%@41dJ z1n)w6L}O?!d%?(EK&C1I;-vt28LJD@acv7$CjzwqDoUX~#s`DN*Hd;?r z`}e?DC_ek_vyB#%>^stlK}7NU(jlTE{&^)G#Xm2UzC}^VN2De`*Ex8TC&1cq%ugLW zP)>TscN>a8NW7{Np^&xpjJ)mv$P^YBoVVf{ePD?}^?ogpNR+C3mEcU>nUKy(v#R3U z<6fp5r=;7IY^v#8#kjbhPJX(cj*Fkh z*TuB$r3L3^mI)^mt8S{99urC`rE09Y&v6J?;#F7FG(5swVO}+){{8}skQy~M+}a%_ zp|_^z9@{XRbM_GK$?6zRZV0EEt&J(4k?Bi?BDSVc#x&k)*42TshI2Q&x+$FDgnMsG z7V7NpYRtlxK<67=0xC4{BrwUz3E*&F_AOl%S!cdbVx}+^$H|Z$x3H< zm)R)6pwdA15Po8WP~kUIGe0=r0QZK5i}P;uQ`5pt-5%7?!Pp)3TXg!2f8^wtrcF4A z4QvOo+)C3M)vR&x{>Z|*Wh-7=cD=0xV%|lN@sDkbW9janHW&7ZteM;i3%m8jtb%0#NFK0R$t5y#T z*)llk)J>i&QslKw%_nS1kl1{Zmk>ZcZyTM73Kj#2#@qjG`1?I>$&hh%e_Jwh(o zr%S&m<&h|5)~D=cS%us0S(!las6+#xybgu@!cS_4%=M;$50~ttrar2iwBz&}H06x-_Bzp#cbyu9l1+PLcH{o42cl9E?;Tj77Gu3Rq z09du%ybLN`&HuA{<2I>`ACnSz&BUu+L;l*7j)ODDQ%?KOVVmcn_@xcKZtsF%ru^$Z z>%ikS4qiUS`rGu7UHj-Mf!gVu|K=U=KswlH+J4ENHmhlyj3}&e@*`)k_zZ@odanHf zWtZiERbR2EzqxDH^L1#mPZOAjnTg7>RzRrzKSp@HdV3dj$>v0 zRMMLyT433woC(r1>3^RbAHhP(6F9E_QwQ2u16@ypYUUS7%DbZV zq>ncYNWky|5sE))0pRbQ)^FbBTC+8zhiEB2(a}b2dozz0M6I|qQ8Uia=MiqrpoILP!~gI;%xQ=txgsnkh;y&4S376^Cqeg(5aifeeF5Y|C%*=Iu#}RyD03 z)9Oi0=C8)ArjyR`;dQ5eO!rUp+T;GJkA2*)V5RZ<@-@ckJS6PXHcww3i585}40nKO z2BSHueHW!HRZtW-o-7#$i6dGSNp2XZNdpi)t92s1 zgG7GKvD2!WTyhm(o|r4ZuMuHT=0b6CAxn8RhSkz&WPc7On!SIyC#}QNgEt1EvQ zP^i`&Y->+jp{fJFp0$J_(sQ6hDauw?bj|^J)fQBfk{kSulGH$ge;3i+XQ3R~OjYG9 z*&y7u`q=0uHc*iYF{{l%+2p!;MZGLKb!X4!oz#PaJNEbAc`&Fu zT$h!K0Kig7qV4=*&RXGOaba*aDSs;GhfQrGZbHmpqjqaAqeSmkp!b`Va`v@50#1aj zdVVQG%R82Xd6VYBl!TJUCVbtXg2WM&k1pd@ z$J0m5kZI{Wb0mv4m3PM`a=_#xHiW*c3J+VJRofo-zWilbS7!J8}=)k1R&y8f9oHG@9vkdw# zGdadU%;T|2>!8)e#e5o(T7xh5C=cKNRL!v!K5Ya4h*e5rtEh~xrUR!{&t;UgCw=F+ zjI_4nC8V1E;OI5{#>mfR5q;gpBhX-pna+~uKOcHY4O5t$Roc~}&H#Qn%>&FzyfwS<@Iw+~)rekuzm1mqebI-eY?!Ea+BieRawr9-N%o|*{JBv$-lan<(H42Jf0>Od6X|7bIIOSIh#Hk4g`n# zuN1X<109bOxqmAAZ}^IAsq*BaPASFj#PGY4-Ra${R}ZYp*vAd_SE=(f3=SHP7VxBb zAI1bj7|}7yVYbGO5D7DbRk^WW36MG{v;*9UsWxoOowf(+)2FKHBU$NKN+p2!ly_Ax7ai+}Ymlg#GR9mJftPYjB&4K}h>-dxKpa z8fZI8g|l|;k!WAk9-RSNKmdS_!Jo7C2!D+6ALt@p8v~+h>c@5;-}%i8EXuHV?)pO0 z*`Cp0oUdbfT_vOIX^auB%WRZQ4b21`m@t)E+!&_Yy@T?oT3mxHX1iQPEhtj#^cUjemt3kj)%=NI%?I<7RA3Dqz~!y3uv24!{VEUrD;}>!s1Rjt1Ya z896saL~S%&G@G+zJ3KS4yy2*uRl?5=OvUY}t~Pn4G0|otfjQ)5VnzR8iq}6ms;kk= zs$7qDPe1>!AdJTGbiS7`1ExDImWP;eniFM@{-P>2#1f%1^bUA zR0$AkB%rxT;#`G4A;{SqC8D{iiZMK^k{yWe75m= z06AU1BA|d1!(&lVry!l57RP}1JO*x%K0kn(jP7F4ofq%qa`DnTmO`CfRmv!&OW?H_ z7kXyd%Nyu8-e4t#mP+ zn&2NAM^2!-_RFjb0uP#dw}DwfIq9-UUWkRfrQtW1QU{Ct$xfrI16j#TTY|2{;ZS&u znLv%GUYOrDODUftbHMkUN>oJ!qrpehX@S|g+T(bXacD5~lg*P^mF*QXOiF%(q=f4; z%9C=bm<-G$2v_YbmFEd-52!?dFfdc?d&I=vlPc90srOR4H)OZu{rvJd`-&LqHYlhf zk+Gjs5l+K$m#PNRG6>4h@l6M2hX<6GY@hmQ<_C}+l)3h->5;EB!U$wo!7&TnUL|mX z={tTZ|MG{-<{`+VBR6?Qz<1Bmn(S@~kMj==2Rc7MjX_ z40>HntSTkdW|X>?Ocjl)Lz^|vXGEjt>daiF^j6lQcokcyj8QV{+L(j*J?VW;D;#RA(Aa%a?osOo4c{IS$Q|SRs2AXeZ z02Ixu`qe*wq?e7UTKDaE6&pmS?}i<(VY}O4uY)>WCrVl&ZSa<2 zoQz2U1>1@Y5s8W1d8@z-UQYZ``j8E=(d7n{ChsKH>oaSEriiaf+qEsgl$=z?A`13!(1hum|y zEXgy1_H@$4!d@wfp7yUIPATD)l+alQ=PetmD93`YyI^2eOZfD~|%6*05D zQl>d&sh-~d1=ZEbh!rE6k-?V!l8=5rTqUra=TPs(74#)Q`6;)2iY+U`V`wi=#&KaO zm2Nc_KBya_perp&(Tc=ci)jg$1L*m)E|5iY`Xj)Q{=qRU&@6p0+wdg$jaK zbmD-8Y#KHOR ztL(n{Db1KmKN%${qTn?}t)3R&;}IaRlmD4bVuEL0C!7*_QApn%5Kg8Gl4ao#A}yV! z5-6GwWh#nMzW%zkqAUqPHc5@a*-3WRs`KAw0<}KYqMp!|xgnbgR++c1piAE*s%rnX zXkZLHX$qESk8mJKfg!&jdf3A(l~#ZnD{*5H0e8j>jl@d*xusc=rE=SJ>=KhGnd$&S zR*xUd=9N;5Pe@}nULRe>qib~tpT?82D-(?yZp-qbF`l2|C5W3kla1moQ((yl@8{GL z-?Xz_AUMT)lojH62WCP%790ZSQ;MrU|_tkSPrx&@Ou@a)Hw6pe2vQyEKS z6eQ7Z754L4acMi{ad+_cRymE=dIN{(Yulp|cS6qRiDqVK(ttTL=q`aQ1V)S5VhWqc zO)LVssRyd{VUJf0MSNzf0^?uN5f4VN2g7m1)Daghg?kAbm&w~aW=zxu6y0PAnlz2! z0284orW9qs2;ZvvNE_Ho(mkK%OIzgH%pv&=2i8-b$fV=*-kS}3LOEjKG!ttuPhXWI zhADMdDIf}5==z=xy|nUF8EQf6No<)fV~s3NE)z1ZB7jmjy`L#Diall!KB)x6>xf-J z@e$w~n*MiupuVfN8fmTK2KBSxNmvj2+dH4()}x&}THm$2@Za1YzNe8l?#AXuxzwZj zwd#QW>IiqAe<%9e+v1DQw!afQpMUYDwSkrM=lz}S5UYjai_brQ@&)|e`QppZo_zk< z=U*67?SY+O9m#Jv#Ooc21CDG>vMxWzM-7v0VDQ6{=UXSEIW8~kSkGKk=6h#5c6Vqq zAR(5vxwy;N&C<%G+PfFo=WqmU?RjhWJ6Amp5GwvrNC%mQpoo^M0?P`vFIVN06;gms z^X3c>RMj2=oV$oFp#TME+(g7S7PpT5NkW{ucz-(OOXH$0-L4|6Jf?kS#DVRs&|FsB zA{=3Iu_&vN%ey75>bBxKR0h6B$EOFoOusrOl6Z)VPbF%vwkH2pDFb(WZER-%4E<*^ zMLav@<_&)C zkb*9&fpp37S|M}5D$l_tS$V3npxV}It(j-TMrEEp8rG^?N635Br;}zaC~|CXe!ESh z`p^@u0%?U8iEnB5@<&sZPUO8f9T!MILF=K*7z`$Kw(IJ-owaQplw`}!;m=}Es)!@^ zqq^LN>~bGj(PBW);jDAbZ0-WTzM7Kbdfnsh4SUy7^#2>+B}De}nsh$CklPm8$z4%I zE8N?pvNW-@8qo!L<&kEIEwOr}aT*SF2VjlBdy@MpA~zb6hVrynW+t$4Qs7H}kQkUJ z4bq;T0W~a#q`W@o*5N_nh#&y9I7T+(Odfw|`a&VkEX3tpe?{FNj==@ks=b0|xGV;w z81_V-kuzxayJq*JyJYvq@obXg=?xTzerut^Y@xo@4b+)TLeV9>QCsYssZ=#=`Py|? zPrW_km$&C@H(FELl^gBDNov^oui0GjOslLQ)xizVoN-Q)IeXr-tr&XzEvt>!I-AK; zA$!-WCf=Gi!;_SwYTy(iX)Cu@+Nrj?PqhE3oMzm|3s^jpG$_zYF+}klcNud7now$u z>J>k#eq!omK1E=>E_!r}0X~eq1U4Y}chBD3r4INa)&m`*5kH0Cj^Xh%yX_bd&`^&d z=!79=M0*andtq3zay7E1+cT3x8Zq!y$kBN;x{fXx8>^#*Rbx72P|D_pENUkyX-AUD zlFe)+c)DvvQ9z{?yTX)+g&{6!s7AKFi8M>44kOUSh?*)TGD;1Y$1D+;*sTcU7~O<# z6O7pfk2nEVLsFpm-I2Cn;t0OVkRUC~u)>kw|bq3Z}m(rCq`4Nro>2r7cXXAKc+1WEE`$)$2^!aEO z_w@O2Z3DYG;x*WY z2_UX++18RVK!ld40O9+T!s`y*YQsv1s)PiYkeJf7nIi_a@9fBGXi_kIjCYNSw~th{ zJMY#~5r_dflvYGuwWv47wY}u}Z17)c6Af^asDu_#w1a(}4>K&1ki{8c;}sUEyayhIP&9!5%KHga3Jek%XVbht@RsUX6ztQAqp9)EHY)BV zviDl#x}dy+5mG@VcuNMXxKX8y9YOc*PFunqQb5+VtZRFFceN|4Jx%5zaf6|ok>-K& z&U`N^DQ<5Sd=Mxbjme+B-JQxNTX+^G-HF zio_5FWC`yNpNYFJWnky?7Zhs><4g-djgra&-kfM@4x?9bDCW_B3pD#bmG`lKjvH^$2 z=B<>gI@NVhd6j3kRxI~Z<0z~3@@Xc|gmBs|DFF>tv=7MkS{s@`G0Y3a6_6o@S26!y zO=z)t|Bbz1qyF(s$>WA_G%0@;g z8mUNJJ0a>8wh?E%kXV=JPPRMt8dTes$p(C@!>?CYyN*Nw(5EpSQ{q%Bb8Qs!tYPy{ zs|vV~RdMt-rwDnso`_jkk8HYEBNH)s2ttn+o338jlW&Piof+9o;FMoB&yURO$ z!1Oz5RsJvWmwBE|5}C$l&u9})ys|**GXO_C(-cylI*hHu!9&k)#Wmser zf#Fe_yWFMb#b`O*wnDzfWmn-AZ4CEy4|a9jLCqctg~TR(wo|UA!gow2WE++?Ux#%u zt)zT0JY!?ERZDmki}Aa5Xh=xM<_p$el0P@R{wA0|i z<11;7(3rwdE^U-GnpNoe6T|rINhr}IJ zqf%R+b)2hbfzW&99SEp8C%c_k;nlaw<q?s2~NM0rJIwXlamAW|KgXaKBtnLa1 z#MpDmwKDBeDzYTC)Qc+ud`qA`G{(Wu)#!cZc4=j0trDnv6sk|6uL<4IZuVo1!!^E- z>*#r9?dDHy72Fe!f9g4Y41?3kycf3NU`g}Aw06%pHT0iT)D??fBKl~9G$p9n&>NL2{1L{l?kVU$wsBTRhY8Re=$5?qZV zyP7+a!0uycuql5g23vF4m~Da7gY<&^YX{$_7pOUm$E?w@oZr=;wU;F!!*QU%YQl<~ zs>cdk1!@jd5$7j26}V2NoEJyp_BwXOSz{~&i0(6>SZIOw04+?QA*;bXu&MeP6v4J+>N&>CLZjQha+?sdG3T2Tv;w{%QR_b2gzYOPwceWg#52O+2ORo%RP$_(c_#wr zrqTUK_V-=9T%l@EAC4C2K3%&)t4?`WsfMv`rQ&DJYQ@hzR;;dew^ggF-F@Zis&`(! z_Ez(6xlEnC2|ut729tymZDC&3SQ-zFH^FM4wt3j_{)OyY8I`{)U@G&kv za%TS$)}^JX0wU<6tk9K>{jrQ|RqwovA5@vFc-i22UB)iJTedu&bJk{duqO|P3mLoU zn$4!mdpYdC+5OluQ#mLw~c?AOW zxMVidAv<`CoPgI2_2vd3WMg2!cdy~Eq$j%oM#{l+?b&uHwyUs}*sk=sz+?^@57VXc zw~!X@7Ba{^LwoUSvlP*lU~gmc9$-vhfI+hm-C$q_>X6rBeA-5-^|hL zj=IWu!*1|EV%ZFNVHh5TG;b=go(_b$f}lE3xOrS)f1le{a`w^o0v>j?oCPXiq|`LnRau(H!!X+-GX`Bi$3<}ovi(>`?; zjjf6vW^&!CUn>S*+r-x+YWJKt@ws?Nd-B=})nMq=0q-A{L6?6pywj+SMnVM9Xuz>0 z`#WFS=8X)w5G~nKOIg05i(G=<=i@PM7_*GGO$_90_!~{L%VcDkIlfc-s?-v*$zY*k z$I||xVyh{W!+@K*A|cDNY|18OOgi=%x_@D8>1q64T;>r*&n-H%=@=$@+EIWJ8SUBbXkKr91c71kkaL8n`+JD=XrLMjAJKBDw(S@IGP8H z;H3SqXzID$uMsS1)Dz_kK(1M-4UXdgj}#<=jz;-P`$k~49T>6(7Pg^bF44&Z4=p!1 zi_-0RY$NQH5|Ga0cnsSzntGC#F5p*YLxpi8VaTvku7?yqHsM{NNKyc%y4*H;&An2A zO8|6%yMe-uwg)YA??`4e0WPzJ%!8s_p_j56Kt9c=BRAwDXdrzOlb1$_wXGX5IUF%V z&s7e&OhF^?JSqh^e|{5-1q^K)WEkE>T3WFP zTs3$;2*Hk{^JLx|+`xefogW=sxfQAwRt(c%#*T|TYToRM4pX(aqLoE`=BUY}zFvVy z>It*z(B1Qc)3&3@-o%{bPVg(8hC6`HYLxK)>U(VLwb~j~`fb!ib-pm2PFDwiIUoid z`z^}#spJy)Mrvie!Oy8YW3fMV!mKi%kRx(tg+qu5>Q=S7moRpb|FGs$i5UI3~=S&sH>vCk}+4wb{9!kiID zA~3>iD?g?qbf1m%&=>=w@CIk8}$X)`alIpPI|BCKx( zv_oLI;SdB7GxIe$(2haQpqQ^_5>byY1u<@tLqK%F#1HtBww6Y}XBtBd=F*BrfLLaq zYii~Pm^F+C$%w|SLJv>6gF6+}%o!^=C|s9t4b_ZdAieIW4a>#23I~Lg2@N?B8MMb? zXibGMq7>C;u!3ne)kgX%j43g?2V@77h=i#8WW$LN%cCxhcOM;mKL zZ9CXkJHpQe{MR;u9^=PJ=e@SN!4N6F%8CGDu)0;=EiccsIkS1ZaW_U*=2ZbfJ@>oS zTW1GS@nfwxt=9Iqp{q&kZ^P`O3Ww@g0?NIFoF66gH@Q;94P2#!X%A_sB+R?>?YgPD znj*h@#GPz!8NpD8qQwRjgs|eto}z2rXjYqUxu!ob8kp^^oi#yCb< zR~z)m{*Vlan$M8c<^`pv*Mc7J(;R?>66IiL{CyFo9Z{o^KV#FAO`UPZ1N zyxITT;PB`aL<2z1G@7p#RZegdsBt)21dcNu`ecg(Sdz-Oj$@>#$SWG66WvZGWOKq| zAU9A?@U)5tqgd&3X}8a$-?fH299E+=xGbeO1CeM>2%?Z5B>9VW+EyK>s0@@{16}SW z21tn`4%$gshcFzB6kOy>%$2GksWT%B1lDQqNXLYrvnq|+9V>T5RfaDzsIL_5YC%(~ zExS27%5YsSNN3lU5%yvbUdH2?W4EjiI#R$cMd7Mj#dQ4Bq`&iIT8w}C>3Z_yv(Mql z^-q&8|NPbT`ln(t{_4v=x2(D{uQNe#(hyOaEus@bSQwLQmznUp(=#Yv!tmMuV-s!B ze#nS_B-;OIKMVj|mmYYOi}fnp6LeT#7cF)Z99R|pfuA}EuSW47|EQN%AK9SyoeN=2 zA@1>-LU#kHKa7M`$J_hv;`iI1@3%p79!Bji;oqm%x-s%DyKPVuyTiOn-OaZuV!wC7 z;B6o(DRyPHTN5Y@-^xAPxl&bsYV0g`a9hyMIMq-$bEL&Irms!!5>IXAR$^U{$vv(H z^bS6^y2tS4QT=Y9`Hn*-YJH8qLI|b#LSLb^G0hNumKaE=3ZW)PD_dx+1)Y%F)oN=U zgmb^SafUlxKV0?U_STI6Kg~#X;jKjBdNAv|v>HYOvHX84&1xwX3Z?}LA%0P{Sz}gW zb}SB7q2mSVeSb(&o(ut437D9}nPeFq$4@d2lEP+Dm0Z=#6-Yymtg}0-x>2_>96BQy zLfbl~k5XTls)DF2Q7Emt&g3jBO0f=ODpkA4j(>QR08ME{UAlwnOD100D{+5;j>Mc-5GfoOr z-l1k}7L8+ZInDAUTfo6#F`Kc?3|+$%3yPt+%<}8r2AKzrpuNL_LWTUm?Hy0VF|_xx zYVQrU_l;`rgxh<*WNq;Yv=hmOH$6EvPe;3j1;6$r;Dp?gdJN9=qPI$SEvPkkCMx)5|(Cpi@IrN9@qd!bAaj$ zV@htW@}?${(D@=P!b)N^kI_D^WZ+EM&l#~M5O2H1x!)Vx6M#a#G5udc)AMD8e;7_0 z>~f`cKWW&eT=3*evmWd{Ha!C+WxY3wrtEFPsN-PK$=NAsG-H!DQoh3z6l=U0XVyeti%o@q<+$DUjOtkKmSbVrRL8B>ZRhZ#WE?A8U{y-b!$Q6ACd zklI@0E=?MlYVDe7wfSz$y*vA8nj%8TI#tmI>GIHIW1f_h9~*ju;Q>jPAXO}|BQG$; z<%n}u;!Ya^@aZ(W<($R;jPpzfxWuPsQ9D`=G&GzA-NyTAKDNpq8*Kss9e}9v~$>fkDDjuM@c8=F;zC;0}%v#KX4qrJYDP1hwEC}8u+T_${If|Z%a>Jd`WDlYv&i`Pm23rLVS9d=Ie9;R- z5l<;P$MFfCx1%!4rSoJ1ll>-6V=AT$W-z)NLc|5)UO+ORG*tBzX}wS_RpQ_ZzRCQO znsB*gWqQST-6Y~+!J^6%qpmXzaJ2!O7uB9X=D@xr$mg`aH1RN4p?mpVbjFZzcDPft88Q0a!y&@^e5#E(*#^vM@FX+H4hxhD@Duw^<|+m;1g~?x#V;WipN>EA+}nuYic64JJhy4t1JLXBq;0js zHV53du!fXn!2|UeNz}yyZqa1G_ ziynRnS}&p$p^UQG1?rDfz7aHoz^J;P79M{K41Pz^XsNx1m!4U%*fYNIgm?9Xhh8=*FP$mG3kIwGW0HUONyce}IR@a~gA ze5rT;SnB`IRKP>-)|UEgF;z2ux0U|TSm_b!G77pm(TNkGz!N*8qM@0g0*{38XNWnP z4=OKJ@{*wBj05LUq>Kt65wm!TK_CV#bmfp925CqR*?3Kp8xLhZ;L6h3nP=)R z6;1&k{~70*Om~dWI+iIceu5m`fS?x?I5$Q?I2DR^i)s#rLo>!z)l13-p4K{LbR*cN z_l@mtW7)g6sgUDocGaLODE(C+sw~k8f(B7pWz}(@vv%?69?hYRpPvZ-JRMYk_w`WVx#wphPf>_wzK|u%|zDi9lC1bm`S;zYBjfEc4QBZ)GNaq z8078`9pFG~h*&S7Rg~`s)_kL52ni2$dyiIk&pVYCvT85;=N{_8&pHaK&!kbNyJyzl zKu5?c978XVB!tN~XwR10!&0=Z-MP&{UfZ7*a5ja1I#Lf^zzMk8wb4>AG=BEYOgA3G z-uv_cTlY5Jv8~z+bcm-e33AJSMQ6)~rfqQt_S!VQWYbh~(QH{FlQ|O`v{l5IT!wdQ z>G4VaffwlR5>vPdH0t|#5lxYuvp1qq+HTw&C@c?)a%yYu9s}RT&H%UA?zC(S2S!t# zP&$|?UL}j73tOMVILe#P)~sj=Baq^I9d5Vpv1VPn&@H$%4rpN2+iM5w%|nnji@uJV z_`6&G0Vt{~&JgnXL!&R9JGIlm8VLSoP`r`P*W;$b%f|g_7_Tec!yoG$XGrz61H2XA zQOf^Z#srb&_dN*yx=K|_I^$QkwEsBt{r-o(3ft>+d>>`H|2X&m`;h<-`PbUH|NZ@E z{2!|p_;LQntp5J9dYrFY&>v@h|5(xgesj-5{zq*^!|dF5#{aZxMWeIdAM^VA&nx12 z?N!`Ind3iJ^}pZj^N{~kTh$4f3c#ex#5|i$_rF#x>7%UNPnZ5_)qTVws#UW`Xgs8e zFpXyM9x3J;9E-2Ayc{jq(9FmH{jN$fFbq{-545e>pH7usi8Kqc1C5$V(2c~9z)athC<%(=n#G^EG z@?SJG(+JlK$aV2VCjqu&ib$vEoW4no(6|jn*WJDU|V6XZ4afk)@#-#O)+QLc!9Th7Yojddl8dqE*tq38IV*ph;D&4=%k`l zq4oUeWh%2WmDZBXHsxBbs!;w?Wj&9$Dw-zX82EOcjO7eSV=fc>BP$i^`mS0oE>xt- zsEUD9EpU2ayyS*|FpF+5Xe-9fYD%jHss^cVq%fQlN4gmf$%SY*EZC4W!aGAre`?y@ z_!EZNs?-xpyH#1w4fI4}O$9`G>FG#IvC__2(e&8cK=;pB04wOI$@9pIOZH9=#0FxU z%-C&ap3cb1l|YO|5ce*7nErGo^`7j!JC}ok5r!_N(NE&>L*1o^kHxgO{%PFq=y*j~ zqLT zqkDKAqm0TDG(A9%BS(Z*@oe`hQQ4>kKRtC|JTs^Ot^KO%*G>p@Kuitf;A!f1>~y!M z@$WcdRooXFv%|QxqKlE}?>rIjm;V%Bezo0NYr*}7y=)W;1n2G++d)6&S9d?EvEe!!9m9>x3e}&@a1vN*TWUxu<{iX8#P$e!0;| z0B4(xq~AyE?0mpjpt3WV{*#SH)BhZs{^CQL{=C-o7Y3D_R;Q=pD!WbDYd)ednd8NX zZT3tVm>G(SXW11aknXaX^Ozk4D^8?>a!IczLzQ4|7{i`;n@h=4hVM3=h%D#Q;qZ10 zyrPn|LfK1)13^Jf3@DyrSv;9OQ^9ijT7mY~#Z%&pcF`)InDW-bJRs1t#v*r})3DKMyE;r2 z?j*ioRIY&1xVf*|u2*iqVy(obcH|Ataf1PfoIdTLsX###TWaQbzN!w#!zyAc8KV(r zt5(kq^5s3u!uxm7F1%|pVmC5BUd5y9cbwb?lSZ<*K`Tq@B`Bt+(S<5K8P=D9^7WZa z{XRvf&%LwrCVAxrwyX6WhVd{FCdbi-aV$n0N|w4QNqmACwqheA4?#(sNWnGH(jDoU zbtAx$n?O9$5*K_&(+&KaQqJ>_5UN^+M`mp+LPn0HTCk!VNBXf9NKphv=7LCq;9O)C zHz}*&(o_I-tZ6>CoJ+Q=|Q)2yfz04lh;cS!XhAcz|oNrloCJGkm$Ge&$3>Ds(s zf}nH($nhk>lMb|T8q^Wr%3B@O3s36jty)jqrdQ@m!Q0!V9@sBgsURD7$nnc|yF)}*i~74atNloW8u zD9^A0Ia3si3u}YnQ!s|n7|TnADTV-(an5t&IQ!N}&Y~%!Ym5|sWZX5?Q@ZmoSU&bL zVpN$h6o#CvE__vnXbn9XHjI?c;FHu(ti^MRy74Y7a##j=8fsja%!T_-PK@QFNOw;*E;U>ImP zoZ!62kwIEmB&>i{$%xokAvYVsK4To@|3k}xEOk6;$1MU zGom-uzs;5r9$F0u9J(NO2Ffc4mFl#*rA>r`kN=XzWwfF6+IAB_KHP%C0g`l_j5wc^ z4il}e9+cY?HsO#SkL_#jC#7Sm)NZ;5Ai41UsM$S5v5hDg<4c{Xs^B>=Ln*0uD1%WS zQ|KRGyy7%`?Q|9PWJ&gPLrLIe4FqjXkFk6j`p5b*o?xjF!OO04oGmO+=CX4@sZb~i z_c(}&G!bCZBSQhDtwBEt09Fg}jr~>Y*lB@X7&}#<7Cb6roaL|e5A-*LrVs2RwzM3u(989%+1$qS{AZ$zOUrtzZZB zRMQ?oP1U;odXs4u$vCaW2vZlq(Qt&K8d*=&Dtyt~-iddfcmOFS`^KR9aksxydkRSL z#rJ7RbxjK?g3*c|aVTqx)+?fwPg)-V`xy9gSzR{!kpG{aYO|!^osiGykpop?-fe0X#rdesj`II%|M0axk56?`@Wj0* z_^cKY@J{qwr`?r(`X!HHJCnZCO$Zgg3bWX+!X~fZs?luMZawPp4VxBG;{v)nQhk?L ztEZc?vlvpQcC%!`oTDou#Gak`O`Qq#9*x^)F^@19gES7&ZP0cXO1-=~=uVUCn2wUZ zNE3$s;x^Mso+Sw&!`SW%Gj=vD_7W{YCZZboBQ0UU4(SCrSz z+r37+MKhExpS&6sH7r}~ksv^EXrUA;vy-_zwe@oP6?8aa91X`xb8NRK1>_YiDiL~5 z$arC@P6ZN#9wn+;5udg6Zar0!lP3ojhd01s)HH>v8-{r&>uCA8K8cs|^1XvcBHaNj ziPb#Ol2rgpK(xP^6;Xy!{z}q%I?G0gp5ijpaQnx!%|V2 zc!Ry?mUTN(e$64_&|Gw?o);`x5`AdGe180f@^xVd?pmM_A&y=f6Q5)6J3Wx2&G_ds z%sZOz1yrD;tf78hz|t9?IH^h02V33~?H?DDcrvL=1&FSr*R@FLWpBy^4%Iy#$yzw7 zX<5p(S`|4>iVzr74^L?U9u@c0dC}8sMbqk=qBv80sZ~S7>w{CH;j+d^Q|c4^%;y7@ zI9`LqG4m*zvuj`%RMoXT@L&m5R|-HwGIgn$vM&QRium37W&1aIWZD(K^nZhYc7AL1 zIQn~_$JrYU@B}^>$WR4w$9UrQYULfp+|#c~RKgnC6RqIY{^|bfPRn7T^H^%}Utz&2 zbGwv2TfSMxbwa$(j|Kw;bjLZ5dz^@`0mDXlOf3bxWvc3woo>IwnW^Ak8p~b$;2p>e zbR9Tz23hF9*pNgiJ{s{ao|OwnFY|fqo7~m+PQEU75B~Pz;O*(*@ln-TsQ8h4tFMaG zhd6Jg>G4KEP;6)Y1hwnEmHEc>u0wI^?LJhyw*qAF4Wq2S?vZ+ts@~St7H8W&#Te`M zRgjb>K;qfIz%#+9Y%uM|I|zCak|@9z)@b2TX0wFT=`Do>4ZsiBY1`DV@}SIOQZ&G6s?gH1%0>NcoWcdZOuVv@E!bckdRp<95rjjHHWh zU_(^axwxN2OV(Y{ORvQP6gk9Py>zjx%{kOSk1{d}str}9j3M!t#+k+-YTS32vXu=7 zDocN?p;|@aJf9V4)zbPtrNNN8m9bwG9!6j;>$3z&F>g6h2?Ymq28@qJs~%9QuA)*r6h;5W+^d!?3tiE z1zzh!f=0O&_90Z0A|}xSMModI4KsMQ+>)yWxzcMk#e~`NWG($8f!yU_$stas0hU%i zt<~n}8+*&j2sJcYgMmsn?Bz`D)~7|QEj~4D(-@JRCMHu6v5bGqR&dT#IE>B1wi=i? zzJDOz#yLsGls|ldcIvk?Wm^O3WimtBa!S}l8feIZRriQ86vHp*ej_fE(4myuEwrtq^s zhQ@mQ&|PF;9NM?mI=~xc%fqY$ua8#g0{Yr$_tg z_&A*|5Aj{Ef~s(1L4{NE*EllzL3g{gb}ZQ39Df(@_xf#2_(vgJ;X$z61K!kD@kIAW zIPrxjZ!_Z-HA~s@6Yu?Hk_)h9eAO48sA#HJ7D7 zl>>tePt|Y;0?vJIR0x$>wY+^dXb8n%=FD$$~c(woi>(jw^ z2Y>(J_}$CFi*NVeoxn0yI4&Nw2LHZu?E3A0-m;X{J#VVqR3|-0PSCf9!GtWG!R~}MOiOHHt zt@=?b%ig7C;UX@B>Vazre_#2-8bs}yBQWF>N_1Qk6vVmex|Urmlyqvc3w;90o$RCw z@7j;${Zq=;i>09AvMY|Xy)rH>euZQRfW_l<2$s0NIegYtk<=#S|7upBU$em_l z)kOSm6L4QO2-YRn8?-)hti4C1dadt7(o#tm>)m6Mk%N<3+P@Tdi$CI&Xu412ltnU! zgejwR_~LW;!*YCQh_?Qi94mXP!*57&-O+F;)qqEEZxYx;j<$fC6y<_M3o}j!$$|%7 zf$v(X4`rHW>OLty8i#d}K(r%IrM}fI9vz?7%5o?Tv`A={;41fGcigQPZ(g=Kj!-t5 zjRiaxFJ|NZc1s6VfJYcs!T2N1T7nl@TIQJJfOE%i2dscnHQ}uDVX7Qw95wB62qcW2`rq2ffN&iPjktxa`RaIZEkZF%o!72@huFJIW9rXYaiG)=01JbOQGd z^1gh`UZCpuApceil>Vwx0(eFtGe|t%uqPqxy7FROZ@!G}Nvo z1yOS`)AjgJ&L^2swn$6X_wde7#ZL|6W%9I(>Zabbb12JZb8A8NPf)0)8>XpJKa$1> zpCE(LJCcPQd#IK9H2HUA1^dI&1liHYOsqX0>>IvKwKzsq$-hxa<|V;d+j@@Kh<|BUqiFAnv$LNkpzQew!W9XHmEt#-()?mEPYy>r%2hzQ~_115_#`ELO*dx*RXf%}VG70!PVZBBy zksBU2&d=-Pk+sh%7Iwatj;wkHOT?NUZe3MTCl~FNW|(Jvn8nEtjTe5J5J?zFf5^rnXI@~M3XGt|7y))uchl92u`}m859I@IFv#Z$;MRbF=melHY*0I)J3W9wG8@6@gNUJ^%2H3^p)|dvyS2{OmbQorQOp+tKtlYG9UU>r9&~{+ z-N#}Zw!Szbyrh{HCxNK=K4<5Mg^C)fSY9-3-b5pK+ccBuW;GJ7JC*uj&ef%MJ*R6e+isyy>V&`8;!&N z`%`RIkISV+(xPnVP$cD%Z8_0fU$vE{PbGy~kxPj&uk4bRl_>e_?;JP=SS(2?PSf;P zwz0@vU@#Z}gTY{qhV5gwcyIh}s2Mx$sE*l7cj898TrY~hl;Y6s^2t)|`Hh=g5a0roZC`0G2! z1>pLYC}nxyyb3pFUoUTruR%3-uRyLx(*gavqL?-q(7zpm+SUUW4d$h4$^2eWRJCS) zFOA~pH&X6SWh0_XC9TF=bCXC)4LHVa_!(kRzV&WksuHBKAcGcwT0&L=D}Z2Q8Iw?y z7F)fJZ6FtHs)EGo2I$C@v-lsEkRFWLJ_x?}ngT>WKs$J&s-z#5(b<&kyx99k=iuex z9d}`&=&_^~E3StT=l4NXl?;~YyuY!L&ob4J;X7z|roTIVt-=2sy8^kO)&rB0vL7Rx z+iBBxWOX|mD#R-U&2V5r;m{%w1@FbhkKJM|D~!D`4x)-oVEG;SFxj ze8XP`8c0-aR8nriiX5#a9PSo~#XZF0xKah;ev&+EF~XsSmjr7!pGAFk$Xjo$lHWE+ z+?#i8^^y49`>E%ene59uoyW&#@w)SLot`;0gKoX55(3FuD1Mr-tG0olUu#9!Hy0+w zy!{ATTuqa_6d6)_VM7n-{AIOKCB>j}rssMUK|gP4Mx;Ni4^&RwsHqHw)Dyb3)_Fde zPZL+2?Ane6*;{C@yFKb5ML8)lcZ4Q$spcGKcGqm_a;jG=*Ttq(E(B~kQNJ3tdD|cd zkR;8!u0)yt9P%l#tXrm<>7jW#yT~V(*00y!laTX5ouf- zAnx25)7P7HXVo?1>JCe%mYJ8n_q;BP^-ymiV}HUarM} z5`KkvNw((KU|jU1ETR3MX!i-JMDtL>$PmSG+~>EI@EAIn;L_hOa(! z2adKLf{@Z`waRe?7G|@j$|dLXBy`sK#OD$8G<1C=yAFH&cU#HbqH$N@=mIT9r;jJ7XkvuUw)|9)@MEm~75(3<4u z_aEGc8hM&u-3O9f%tpiA(+*FU17Vhn$YdXE&N{ZFBDtraFrL&IzSuZDO}=`)P5DSL zo5ksAUE8~5+M4Su<2XY3droW0;GD>w)h0+7Cv7~( zNSHgp7ONpzS6Q0x9`}BJ_)EQszemuc3wUtc`-&g*(kt~-1j$%~M*CZlrXl&#Ox|aC ze>l0sd368BImX)t$@l)|r=LCe;*0wilgnmr(!83?n=~Ps=t%7xoU*nW`ZX#sh zBQl`jpRUdOAqP)Z#)_0TkpP-IOMrNC?34z%taNqG79ysQ9)rrT zZ0f|M3YK@qmHf~MshfJCE%ZPutF3erwVhJNNK=G}2Lun+9xOd#toEA3lvPh^|ZP`u>^+;->S^jEeWBbB8U{$y~rxQg5XVNGz6G;&XF3HX$5r8i}{%vd<=am$5@Je%-DImRr}ExvqYxk z-DXqb?>YCR$M29@_75Wy?ea5eINdKIcPa1p#fA1@fu&Ww?^a@G?)Pb zu@{7KO=rG{w=deew&3=C_-X0y#aLdv2YS+*x{jVx>dZ5cifR0~yYetZYkYCQhLvSF zUf5imWt@6>uIp`{A|JyP%xguQ6tZ7Qq>M|__bBp`2k*BF~I{cdmhFsD<(U)Z^C_FFsK&~GR zW~>{+_{zQ$AwhD~P_DCF*^Mwlt2qkQOo0!Y!XAokZP~m`nC}_wrEr;p55dqFTI@wD zS<97fAygWUvua2rs*VK&8CX->7j%5<0 z%ZrT6UzseFq8J0!3-~%tzDfrZ$n4{^Hy;xyn^kB*qd|vEMVSj72}%L%1=16_V>0gj z?IX-Dov`2{bEle(I~E{#w6lv@w=y@CkeTihO%+D{J7WO2Ph(uzS8CLIku?&O!+m;M zJDyQ2FZ?#9Z)BS)VzGy7hUizNDE$#n%nmoH#X_mcyX%idtH{z^yG19pVevz+AH|0% z%AX-(92LXf5B-|hWbvdt%szAi4gLIct>FykPVJXpN{w3pK_q_uSz-}08o&HfMx^+0 z7(yaO9Mm%3sm0~abG;P_z)UiZ^)ilQwc-S2?ikokvWcUkS_xe3gj?K5+Q?+ zLPu9yWIk%9bwjgSWjt!grEEzx=h5n1mo=z-ea<+m*kBb)#6Rt@tS^Ucf$9_0@T1B5 zjMqlQwzuT`&GcZyg=Ta)8Dki_9P{v9U8XiRr`^1E?03$Jk(3Tqrocjp$%0g}(-|wA z+2@+sP26w=pxeto4ucGyW1JGAmkUH3uZsLxqK%-BEVoq6>9p}ND7BPYBxMB$yrPH= z1{YxZtcAqLPeJO+xNm%@uBK^qL5qQW>gyJjXtbkOZs|3PH9KZ4y9K<>eaBnUZsE$E zZl`jEyQZ?5e}v-bDV;7z%`d)vet7Ww;N?E0L25mHb-4HZc}Q2Nb;)_{ZjpSob@ct+ z;%;$L3t9>$k!SB{hc$FqS#+H&hXW=0Q2j&?jGuU>0$Rdu5UN%kY;@+N=k^;u7OsVpQ2W$Z|n?!wzc0YBLm-N*6HllAl%!9 zpOr}oz^k*d$PallqIQ=(gu>)$wi_FbX1h))KI-KxI<8xX;v7rpnG^l)7WEow$uyyK z?Ya-Myi-(yY?WbBHv)G<>eU<0F7(>q7K_@{dJpcHCUYP`5qpG)-@m&&U<&j18J<X2Krx|Z?|`2y17~jwZP=|&_bZ0emI$N4sYWp1uF&*KJBa zXkrqn2O8m5;jD#X%1)^0N?-nm7vxD)i!kP$mU5vNaTv;K<*9(9*gpo)pnxX?hpzkb$@>9nkjYe*OhOTS6aLL~#Kn5hxRgM65mkDF zq7;**_J1ZZNewZCIw$t;1XW^%kDQCC0qEYcYtV<=V#ISPXF4 z>zH;?60QF0d;Af^e^<6oTof>Z`AU)OKEiRJ}`N#<78!p zHM5hnFf@HWLR$gtTxDgjf`i(#se}#Jbe^ZM<>y691*YN#ur$kYJp~A6e=!+3VjY_o z&vO+KrvUgEb}JpvTH59!GKtHK^|27oQ1}VPmvQ4Yf2k!T0z`?8;^_Ezc6^*4ACF@U z-4*Q(i;0R1Euy!PK-Q4bRHGzLsccac8BDwQQ1W$k+3toJqaUuL8T9~!mcls?W4H%6 zi*CPty(>9TexKI1^^qE_Be!Q`G{o@{r%?a{Ws0(l8=~d zufBb=q~NDi@a@4rmX!O90Umt)?VJ6oGM`hK*WbQ;a`^2Y=2NaJ_=W1nL1l?OD)G(U z!JDcQkEz5z_ustge0T8l@SBQqo6mTf1m?-+#v^|D;zjA*13lCSPxoJa{buj=HwRD3 zE&NiJr&-FlEOubk&S1@s;|h_w9GMB1)+#wYsUWPsOYde6&W%>k<|_zTx20%ERF>8; z%iJ<1lGlinYvNaaJIvDenQf;cZgQdpQ z%_Po+Z}_y+x$!!#IK^?VzMdRTo=k@G(b&T&&0_jMQtOkUs~A(lmpQ6Q-{%h14CLoxT%BBcp{I-Ub8Ou-KmA6ciaT#VI0N?L1VjL_9SXj*HpoQa?SfY{b20%lL71Uq9>f^h* zYrl$J@^mY#Tb?aY4I|J7oXbq_L@rzV*6F{_`&7;BLb>QwSC%ljfTYITCgz(181Y9E zYBVp5EHf;J-;?{PNY(J$GJPQ>_Q$=-J!-XOpbXue1z?Wn&H}j2NCAG!)b)WwgqucO z=Oz5^n}frB&Pr%5J!3rY#Btr%(gsFfb@XG7J;uFqcD0iFtYq4O2v>RlVVXENw_%wT z6lA|qIOYhFoTqa^CtTFT=sl|XwKg=<~p4AMJEJTtQNmKq5RxMHQtdMAN-3TUb{cUs8 zbPu)R0F4V$~TdX;21f}%%**M zdVB_z&a#X2{Q#4g^aF9gD2IqHZ>eFzF=vQ^;bIISf-&b;Vb&5H1|K)SD;MxfG|ZT(E-JRpxf6oR_+#;P zKa;o$!|8Qml9%{!waU%*^qQ@KKoRR1xT)$-kL)kU?6olbD!nc@Fv%Wj#D zN(=JvRz<~?5pNeS)mto7T-|@rQdMhJ!P7H1aSmi6KHBQR!K!HTltnbJBmUIY0NkOr=Ha@b z&UrS*B#4vz5F;IW<3NRQ@}R*T{iuw!rvX}2WICCjp;>dAJ@;sn#B*l4iBxxr6b%t7y7~88pD;aTN$(9=-tvd zuxgk4m%CuxEsTwxB0%}BwjqpnnTqu=Spvb(W_gy5P^7I=$%H8(>ecVuWbuV7uA$O@ zm`;K9j5G4D*cpf{gMp2y@}( znBvn3;)W8W4s!jHlIBe~393X#08NI2ciANhirD8@d5z-;(~0XDx*68o3}T7!kLCf| z*@-rN?!aqgM{X<|CqDm3Lj1;^8ByJch3*HqPC_-K(FqgZM5A^RtIK^cpfGeRF!rvwmdo!oA3 zB*Blo^` zgk?IFf033VQ*+!-R#w&4YbgFs`50@fki@*GUQ^a*3giB7`OP>jz>+Jq0ngl4%=;C!akgurotwwIXt8M@lLlHl^Jsr7>*KYW2Wk`{k5 z&yf$9f-(-M$g!tpraO9!QOW$xbgvPqF(fX&qtuL+J?N!ZQV0Y{e$?JNDO-pLomeAs z*KxMX;#@yE4?k~T(A|X zx0m-23pM!Ea?n2LBa9w-5f}hUL93MXupht6t}5~XnDw^4BkK4p$6K7v{*v~3W+z-x zja98w*C(D8wCTR)#|gOXYCxkkI>sM4$~ISm_2gSFNMoRopj;ac>pz3?Pq3a!!{L{f zr_Y4ZG}TLdV5KEw9kNHzgt0v1pr~rq%(C^X(-7ltk=@Q$!}Ch{fy_MI8wer zd{D}Q;y+4o@h|ae@jhOa4j=Y7U`_%YM;jws;0}oA*~$~apy0zmD>~p?-^=TT2fK-`CVFv^^+PiSla}3eZD=0RX0| zEec}(nJ4r|-$zgAR!|A}{BS+0wa_xzKJuemFeuktIc{%0h#s`s58IzcpMCztq5u|0 zH7Hv0nLydQ+tE)Zz1&>4uRtK!kWQjQ(b&itI*8k%kIvB_2I z2oriK?nu+MrHnZ!egSfuv}42DlF4P+$wkUWj$8ynLr{oZO)6r!vBg$4S)+d)MO;`R#jj}ypQlZD`Pv^^Ha@d-6)l;u=uxe$KsYU)=J zz%3oLAbuSZ#Mh!r+HMFvylO!8ne3Kc&)%s!2OL4F9t=N;n!B#N&VNcmyVMlU zXROeNsRhy|uqb(2qH!vBY_+~Xrvo<@H|^Nt45NjXdiFb>MC`=)&p(lfzW(=Q;)*)A zJB09M>#f8!afd1&-%N`8@A2cd#}C02$(raKWJ>n`L#>|ViYg3PLkWUL#cji&X*E+1 zYO@7?f1bl1!A#5Rd1blQr_U1E7C#H*+b}Y=(nphX5u{?we+DU6$Vq=TY4`fS(yo?v z_tWmh3UcmEO;8$Sb*SQApvx3nq1?ySgrm$szs~kQQ36a5K0> zaPrcxEs70hnoszt063i#V^alxPz}oYnizAE4`f|ZYt*ET$rVVH2~`o`h;RlT{UU($ zE#U`}FoT~2!tjF%n})0I#)fk+N_bfHP)0DaD(@ieo(OXQa|*rr#&$*tNC{Db ztWdEJWaOIj{OvW=1fcW@fCIhMaVLFxW5^}kE-dl?BB=V8$i!5(w5iL-h6XY;u7TXj z=i@_Q)kT7VRUBqT;~S}Y#H3cUkj61;Z)`N8_U1;YmYQ}%^61fqtqv2KYd_j(eC}4| zGCcFC;^u||XJ#)|-P~wAbZh#kSKf}?yiZ3pu7janxEg-rn)r<>;}@!5qx0Lw20m!u zKLAQ5C~P`yipSh~pswgw6BU+Fz_69~kmy()zdYLT$?@&J zON~diL!VdC;@kZIDZGk4As&_J@Ogj?jIw;LI)2Av##@n?c#)ZTkvsJwckUgDo>O&) zHk;G|OFj+CrO&4A=EE?32y%cxUQM4snK|kj=Nq<_ z)0V_u{vQWJdD9=>^U~Mw2DljEt>4W0 zM$_jycAtC*$BCXkh-=`|TLOvz@{ulL#!Qx>L-Q+AG}E29dGRjGrZ04ib&soXz(!fZ zQ&o+o`^unSqq(lJSr5*l^<{MGr_f~2y|<_5dKh(^H@NIHbPeC(tJf=DbcUN?wDoB} zWRe(Eh2Y1IjIJ&jR_i>Q5wk)*71li=TTqn2A*jA7RRvm{cR7S5V=4f`NG^m2?<>G5 z-5e99u0s{+(F>R=dJ|E&Rx5D9{*4A4wgApejcWCTsv1hqT&V(tjVFGgpv#Q)X3;B) z=_1mOmKqo5q?Y!2bncpub#5rlXbRltqAvPP!>Rl#xoe;Y=8N$p3Mz^!fo!4FK9yFBm|11cGGoEf5%uT_NcJ4Fc6B< zrCS9o^ka1y26VGiziD+5%)OBk>p1&o2BB^ne!seM$Coavx0Rr7O0X5gDNV7DA9moT z$lf{z!EcJl6Bf6Ahp0R@)%Xeo`K|GKmWJz5QuH$wi1YDPh#XdgemshSyX&ylBsnRQ7^*-r)SZ7^gzYld7tHj{y6$|EHs8WW(@k6qgG(WUz7@G`wB6bYejG@cKKEcTNnDcYXWAzq(x#}w)Z zZ$sq)UB!yQzAZO*mV z&E8Mt;kOMaVc=qp@X7Smc!%m>4vg7r8?Gj)MKwAQOD75o#kA}tR$h9E3V6Y8JIwmC z7^<=b=^}?U0w^w6$xM{s+8b7ShT!p$ZD3VP((-0&=^eV7S}AYZM-aX{4IS^r7pyBm z1oS;Um=6F(>ZM)(W1C#&wF=X{3d=gnfRWskXW0fc&!SY{%Q=>b?tM#+C2%1ynq$F~ z!z?kAYQE*5%slIkrD1??DRUx>&?`9?as_Q%H?jR;dP$ze3`BD(#gbq+00yQn)vKe) zQ@2@mh{gN{%$vf!lP5};0;#niY?8}W20)rlBxu}8PfzRk6jo^6WQA8o z&krI;Ir%i$4N}u%s_CzV3$2iDMX&JqfYId|rZf$~nM%1~T7=%?Xk%LR1@zN|qliKg z#$7PTxO6isg!VE?G4``qu$TS)akH3R4Kt84^8rP~<-L`NM3!Pe^8Vn1$c6#q-htAn zMY2pHUL)HqlkgYK%15wn20cu`0i70_BG@j<_5WvS{b~j-)qjfcJ2+9xCnwXO%^h9M z&HaOZQeT#W^Va$HymoOu`melO1=e-W^0G#p<{e-6l(m9R0}gh6sAO&-@z++pvO%SK zg9#_|Mc%4W4rg!IY+YTQa0`^M^Anrva|uEpek(e`IQ`}3Hdbsz-6QL2>YFzOOnf^( zX9gKk;;lq^zE&u&0^&zN`oR3SuKW?y{Xu_98YIrQBD-}vqjS-7Z_?WArD%5~8gh!Q zA|w&0MarTzGoqGVTQ)6N>m~d%xx`HxO+Q`5EP5t)eD;B&xXIh&>6jFLonknkkuyQ? zIm@Uli&3OB>|4^aPe~g3nEC-M_~ySH;OMMERVXPlJqv_Qsy(h<#K$bQ9mF8(frv>Eeo|K$Kjv z9QS-U$7<=%InUlkOb70`H(pt*0P;j{P^5UEvC=y4^h@P+Zt2GQg^w+*i`Jc_AOV4W zZ&*wkKIR03>m$32ChzHlnD&Si){I})bJY_{uq>%47Tf&Seyy!w@4xr*X(M{|rV+h- zbr^AQ|0gj0hd=-$+Qv`_%3zVWRZNEiI5ayJ53}?gV8OwXDOSP=@WW^C7(_wq-wIYj zvcqT4?ym{9agD89V>@;20qQF#&L$I}-M9lRa0K;?ExD>g@FZ$L?5n7o&wH7!DrNd6 z1$KZ#J0<~!(TB=#Fas(3ob9z_5ZpCIO{{kToj`}vD^4#n7=yeDgC|Zi0#(Hy9L(1v zYjc*EzGDw$F^9;?H$b~m=b5ADiCZx}gWYlt%k3)a4=3r&5ur=&6VTePDDfmv*~ZLd zez2;tf~V|aMa7EQ4~Hc142P!T$@Fg>6qryZ|m3Dn5{Osy{hvV7IMuvcWP0UwQ*=raT+}H!ZFeM*TyVzhRB~{onQ_BlBq*wJ7z>p@^pd@CD|Rg$AP`0hL#efJ^tt4U%Qez zn;bw9ski>1Gy|$I^#|;DH956 z7@=5L@;dhf^2AZna}yG)sJSKh*}xpCntJV4DYFGg)}f-nH$bO%kl*!!7X(V^^kPhr zRi;K=FuI(~hp2XjQ$?C%K=qLcHj^822ynLfdga;R-{-b)rTall=xg17^(~-(@#kC% z+B{QBFBcKIy)#4(%#m_1Vz%-#tf8&|ai-;m&tble5i9O0ho1576d4~cm<~z0Jb#Qo zFXxZZXp+b8`^lh32;iLIHp&sYaS9+(A7><1zqh?DW!KzDJ;5v3&~t4cN`PIbG>!zW8(^Jlp~Y6H}M}{Hsh17MpPil+|I%wp7(b$*^l> z>Elmv20p4<)F&%1>dwpga7edG$>i*ZtUGfKy{LRrx0~f8miBV619J2j7a_&<)YVEf z3xh$H+0p)iFDJ7X%1LTR;#Swfp4RUz)HfS86gCL?y_t^o;7UxO40uTHTq@FwvHVgD zM3?i-3pj%|Mm}6{eg5rRa#~3-d1eo_u46h=fUQ-K{W5QCr?8rhd6=Hv8%z%;i#K7~xJj%=HQ1DPVZ7?Zh-k2T1Fbzg zGyuJEy>qzXa&u@Eh$l*R9F<20Iw^2d+-tNaDg)r?TS`7i(Z+DIsr=08nz!CEh>|k0 z;%qZ#w^en|ADy%JN&#qGO$S}N5&UsJ!7ZUs`QzOLpJ@DsuI+Ut_YBT2W;#80)F(z{ zlATP#w9t5>O1kn4rtq`1#C;~2lS5wd0tcjoXrum4kOFy!#iz!Gb7=0Sh z#Q6kY55{zQMlH%LDz1uIHj27=T3m!M)t^tj?tk%+LRuHFya!#R#55ZYk%E*n4ULtb zPtIY?liF}{em$<$13=pkJ)oa`0dHRn#+cj{3%+IK3baDGyZ|l*A}YCo&nDcTlj~h(Otox$NA#J`IxvD{3oNPZe%58nNnB*_Z&m^6u(XE3st3y&1hi}%OZ_%d zd-jeD=tOti(C0jl{hJj$*McEpM8P&6Q?2-_o{q~BI|ut)d|76Oea=_9PZ3#U-+FNoR^*&l`pv3y!k+5Ryc|T z4J9qmkMa>xF@}Z`qQx1~_nY?ajnSZ$eynl?^ouOBmRH@OV-s1<($59w*F|Ra-2Vl3 z90X3uRI6BXaM7jl{tZO_;$m-&pI&NLLzb_Q2mL;lPh=)tzVfE}!)zQ?C3*5~o}Cvf z+L15`I?~=s*Wp)=DV8~cDH4XwVVnl+#O!Fp5Z!=%Wo$-lj6*x07uek3X9grM(T=Sp z)T`|sL(8C+AV`FT!3WmZh?#_MrbO8*w@RfDYE5YM8RrV41CjI6hZ>^ul0ImQ;wc*B zD6vYMPD(W@O;BhUs*Kd>r5>XyRLcYi!m2b?uWmX(vLLF$gv7^1u3g2)%gU-?Vmx18 z6;&#%@Uw$pCJvK--3>88Ml{GU=*Y%yK?KWSL`b`U~c!X5up=3W=RwsF63%YKk zc;ngk)eX}2ob1vk^O?P!a9YNd;Oc&EXU!?Z_p|w6*uztVQt5DLIa7dVA(PGWDa45x zpK%4zJlS;#!IG?*^L2e1M!l@Al6z)ASvoTAQwsyhHI_{|f!jJ-v(HNEEhe8SW&ZA=v4lk}?IKV4MKw-iVY;THiHH$&`U0kd6j-&|C)@F?t$6X^yT1s7*T0 z&R`03*{U3Q7d6Ccpzlz2^D@x_gL^lgTpI6P=ngO!)}e6le}%V-ePH}9g|EQ&cF9@b zC7i#uglRvCjSQOwM+sOP{-eeZJ(ko7gPh241*0970$(WjZ`tjFbW;sFuU?S)3-v#_ ztP3aFF=1%VxAM@^zwFTlxxEc_ucI^gPo?;yQ>(FuhcU@;9Z&*=)H(Mg5=Pwxf?{TN zc16LQu-j*(#_LA7p4rF-&R7q$AGAu3zeZQH1O%fR@8TS9BSKfId9Oo{0WU<0-IF?=bDCE=%1+!y30)gyo&0sXU zuycpF(+h{QyUjIVATph;6tpT1Mwx;sWG04~7iC)pI+nun;{h}EKT71c8;9yrF|PG= zQRRB!n<4$yKLaa3b~dgUe{A&-UN;FyrGs~=SaD8K&$@l3&{Y6QK(@cP?cM4jtd36p z1u31@qCH~PC?No^%QUw|CF>Pbm=WJc>$cH!lBf9j%ZwfUv^ zz(Wr)bcMAf4~<0?weXJBv?fB$%$Ztf zCyfch&`M1kHshu3;Cw!r7g2>X^p`B1i$P{Q#_VtZ0il z#MA|>aXMb)T?~7|(04iY)4Q6&Y*>v|9J6bkqLs3^qD^@10jj@Sl!%COw+ar$k}OgJ zwe{l+sNk68vdgU0B2>2;Eo;{A=B+aGuF~IDsh?U$!lyDiq|g;QULoaZtwu6MapPWE zU6QpS`)(`QXm37%&0tkCG4uf77Ixwo)i`Png_H0ovQ?~0(dj~ml(k;-O}gkKV-t+5 z&-MxdPkt2=AL=&ws;zw$+dB_h1G zKRoHf4c_cpv@MU@>mciP(>=f_P*NCPu=%LV8$Gbfe7h>-Z8$;Dq~P1#ii-r|nL{tu zD?kEHOvy>~Yk#LykuI>97wv*-u9vLWVilR+LhPgk4+ZWBi8of5Hl`7cCcSjH!{;pg z`lgiNKoeh>xRGW-AyVadr)YI#5I$Kj40b!mqI%C_m!Fk(ECoOqYU#a-H8n{7CMp;D z^C52KcWkR-UlRg=wdp^l-j;nGDe3|h4{LjAQas^opLZ4r5t8=^6q3fAC0w`N6KfydVrPy2>1U@$Il^|HlC4p22`Bq zP~~i%57TKJ#QArQYP+V)b41=&)GH71B+XH1yk)+kKP8*`coAfbSE>a<^;HOUH9=|d z*b+QwRIZMmE%;gq+Vk0@$yWkiKq+%S6oh3F54l*DgjNI<>W_+{j4k(I&S%3O(GFK- z1gkI~WCh0ML|y%q)%Ex)2wwY{o>a7+7SxgY0^2FyQB~#A^xRZ+PE!10XCnSmlaaVG zO-CW{-`WpWG(j%{jRf*~+FIhBzn;V^H?ymK?yWEL#w+-x_Y&vrTfUl;IDDROtcm9wqlEQ8^;1zB# z83;TSIMB+nWrq<;**1Ac>DxBS+B8xwjD3AEY$hyoA8nL$t>X3s%QXgLzf}Q(^?MAc zuFXuVP~6!GSYep19U(~c8tKSk{%$b4cts%qF@ej#S0FmjH$$m55x4e9L&6LND_j{1 z1+RojNR^4)>%H=Df_my`6RkNX77r5DgYC=I^@m6h)s(4!vJqDO)NztQ7o5KX(i(UT1$|c zFVStQ(wmkXT?4XRF`4J2afnk8X&X_u(X(>TWu?S-+3O(cnE3Xx=Z3GVHBiHK+4Hwf zUB%hqxp{XVpY&&FHLlM%GQ^!aTlVI;Ru9w72E6$Jb)G`O$)GONt0)CUXG5(1o9bPy+Y37IHChy-{mQ7_&DdK zA41WfaDL-ro~s0!I1wmB1M0yjwtaWeCe582WwVP(?+MiKZ)6b)X$OI6K>tUb6rFMs zQK4L(u2AjGEw_g+bbCc(*qBvZ(=q^`TbQhu5~qaWlvR-iiPAl;(f@D;O!GKoUxv_Q z6$KLefERnSQs(eLr|)2CyzUOpP!q%9zC*(Um5cz$Nhxv zDzMQ8UtIJIL^_4gLZa%Yr}6GCivAg~3m&&7N^b1#yscukc6cRr@ZoMF+NRbzIu`&w zQR=P^tFU(Kv9?hOW7wS_o1Ni#gS}p=5!~JeSWf6p73!Zo0C~rY$fD*-Sx}m21f_Oq zC>MkaDD!jk>VN$)6Dm?1e$4RO>CMqh2}H(DmrOmF9ATYgjnB5g<&YTl6%v1FF%(f1*VNWZo$gs>-r5Jt!{!e%Atle3Q&WDq;bQoP^ z!zl)TUZXw3RcV_56Yy{+Zp00htT%Hn^e$mIK`GmaHcyD4)^%HK^_uJ5z48_v7IcB0Cwnw7`m)}5-Ov1~r*^)fQs zLE5odr0zLx=-~_Z=%BCm6IB+A6=?axcDY>BGZ)ZTH_9o>bvjpe2ds_O!k-D$F8Zz= zu{jp$#O9x=Xv=HI3sg@)Ld|GVa?$SQ&LFwXd3nLov~hOU=%NRvx&ujBdS>ytE9B|` z%!}*;-6QGQS=*}F*-2?D+}8H?wjMv;dh%rJ>C>(KecPt{++)_g;Y&8iQW?NeIl3N4 zN7~tnn#L#kfhxg~pA;8XNR`BHZJ5A1C+8@`eS&AKj*4g#MpP2Uh*^evrd3db;LOoT z0j@6seTVI%<``FdFVE8}%?4mip_!0l?;BqFs&;7MtBG@ntBzTZs#eg6nQUkD5fDT4 zI2Vk{#hXw!{{XF(X*n5O5T8)d7j=bMHXK58l}Wzr(~0Uk&Yo#vC?yo-b! zo1U}&r*g46!(6>qYnxGe7Ik}3*00$s%aj*t&yS9z%+<+Mp%EO9_d4hehXR8tXBe#S zsv+Ri+8Z@^(?eN{)hp1&O>K_PW;J$1OhpFtWI_rua~oaTXxB=T>@Xdj_0kBoW|UZG zsBnrlh3HpF9J>_U);yxMH@4?`)L4i46>l3-Qc4Ui>w=b+W!4f9vFlOI#PQJ~ zd}_dyYKoP1`a@)EQ~7z7d&8g+xD)^w+LqqHABb@a>N{Jg!GRhB zr;}t@iii@|d!1+R2a|cB@_liS7Vvu4%L>=%prB=&XI*rp(Jog`+B(HHHJcsaP5)Fi z>}6{ufW!#VgQ+kEEooFk+kkXdQ_9wI^;U!{NnbKKK00(2A2dfPG7#zTfF7gCP2czPPQx7smEfhc>T%84FrqADYb9%tQ@y@CcTv70oywtqvN zh|OA6T1!gBXti2{+d}&Cj}2;u5-Q>-v59jpD=>~KB~77IV7`FgI>4~DCPw@t4|)qXg6LnE5yCC-K+8pF3@bSDCYt>COC` zl`8*JwTPmbjv3|`nPCYO1@&^n`)86z>*bpe)jD!nJ#}U?4$U%S1vx@lyj%$aIr}JL zWkJ4HBHkjdHWjQ3XHv6DDgG#)aCYUI(h^9S5=%;6rV+JC3Wo5d zXXM1fm37OcPVmXuBtk{iYD!F_m=LI#MOXctSp&XcmLu7QJzaXNV|BKXZ7RQHDH-sJ zf#;hyVl70gLmfwO;p(QP0BeQ(rQw`VWL&QVQ%z|7eig0({LHEH$&SPJ6>_LcUM1M5b>10JWon~*~$nfC}CMRUiMy(!Q`xTI*5==OXtW|79-#4vf zMG*?}_!yqW;>HB8aaz#M5Us?!jm}vCJKn{*3hm&&j*rK2BgcQkZ)fy&7CU`VE>TJX z1UdOtKS2c!5xSs6ZaQAWyx<->cK8lY{c%3%zB4=%)j}Das)cj2PJLYPIvu6&l-U>G z%1tm?*Kh(PEM`q+N*JO~nkVKN=TZh1)gPi|jOxxgtU5&3jiCSxl00t7dS9l))3O6i zuxHp3dm^7fa}o3hkMt?s2U3OCfh5*QCitV%I%C7^RUj3Ly0;WBz6;0qtgGDJ^eC&^ zx~PV($zK&&5)SZ`^%H%8bX}2-Kv&n`^yqouSk;HnQaX-fT-VXyr<6|}$f-5J^K4A! zKhO;Z#P_aWN+lj~c3n_c4AYuxN67%S3TCQl%_E*Q41vh+n_Ut$B*Ng7c}u~YxMD5U z`ACrEV~8tqk*0|rZ^PGJjBT^K1AI)dBTn~RWgmW46}?ZHh-2+*RnTcZ%?HKAr1Vp% z{48GU^vKlU3o5Uk8?Y^Y3~<_;QM9+Wv-u!;yuGux2j6$wn+qH5tYFAfuH3O(ZR0Aml;v&Pq;b;jPsZ({@INOTS7MbNGBo?2U zA5uIi$QQ${W=ggwx=4ZBb7El0`cvU-NG|i}Vx`biOel1uuR@p5Tme0a)-rT78q5H% zMrV_u2odZau8AiHqkP$lSVm{qRDBBoi4L$;kY9o@hUAqp(-);KbwIMgi;AL!Uy}Gh z#TQTW^Enx=V+apiS!Bt`?q8ZW=A3sJnvG=uRsOua8qd-X-!XK`c?|nV_C6c#Y}Pd` z$m)U7Ea{S8PB<%{n(~84C%5KsOM_^e&S0u~y(x}i-8scP;5SDDdj`YJ;D-i#8#(5W zrtErq>!fS~ndmu`sAvz+Lfwz^fFE)dHn4tJZ0xvQ?C$jrTUGYAz^QGC}2wlqfnx(VAl~DOr=+(FUMel0xHh z5V!&^b`2BbTfZdD`>ED`s9Oz8mJ3}YLA%AbQizJej}PH=&%<%jm26A~R%!kYFKf|G zZ$8FIODuJQB#K7>{Hx9M)Dc17NHt1~{`JkB#ED%% zl%bmqgIpq$V+&UXz*lE%`(J&N^=EW9(k=Zq7a}UHeZT0h`$`+9e?-*feV<5@MIIG& zD5MzL7+VUDQFP|BCcMTANiA)Qe?uUAV;7{*%ViEk^p>vX)Vay#^;2$4K$UlBk1`1Z zSnh%JAMGQws>_h?2Xq53qF+2^AZ<25|25=I>&%ksdiR**gL8~0a|m#sO>&i2O}mP- zk}9y92p4M&p@G5QkrNGm(y1djSsh(r8%>!}F)Qy-0tSmp873&BcIC*#Q3}5~eDRzE z?ed0{p4%96d3s3?s6CE_K&N;Di%tkpfnf$Xr#fvPctlb<-jD@UbOsx}jzOsVW-WwR zyTcs*@s-}**Z@mgL8R*Jq2fB|ZNdOkeIy{p#KB3hb$Y5t;Plj!<&V24<$X0$T2 zFO7vst}!6+v`((?m_U$YX4>XJJH$3#Px{k^=#ru1>V#(-6f{16LVgEO2MZ(Xceuw~VN3jJD5qBM|I*(e_{$X|#QRup4dP zho@uQABIdg5eJI=swsj<5}(D5c;JWP!no>i66_8q1!;~@>xql$Fg-64sOrl2D52nC z%i{^+i(OG9(HidRJ?#b%rySzP-W&8jp){#P9Zkggq+|g9+5Fd+;ec8GLR~Cflu~9Lmz)^M8kEjvT47QmQZ=Po z-y8RwYeXg-S!MM}36A0%8vJoCpmCEdg#0TyLeC3J#saK&b7U-lX1rV|FeAEnWW6Q# z%H+I}QAh}7y2?D6I3NaPpaEiLPbv2F2~T^Fn4^`$lgs9afN|l5rE;07y{Q1mW1bhh z95~`0n<47$K=Apq3?@wBRLEP8dyjWv3ovzo6+K-MK*WT22Q8pf5WO(XoB^M0Qq?1tD_J9I62yAevvl& zd(CGj>+xc!^YNg2ktf=UvNdF<{JeI&@u604v_HiIkZ$o+cUEo@8vE>~%^bD2P8y#R zXqJi6AML}PLtk?Qv4WOgt{q)%#^oNa)OjEMBRCNzy~PN-nwCM^K*7Ha3& zV_;+NGHpVt&9CC4*vXq4f6twNW8KM!E_&vQUyl0n^VOKb=@_(Ov=vI@VwS`7ufAWG@E2EsUv>l@vsdib0`| zUnvEEx9QmMgoN5H9pl{(`-vD32xWpU+eMJrHtm>anH3QX5Yvu%Ggj6s5(g4yQe(A+ zhjrpWQKB;uoSq&xl@%9!U~0gFlhf0B0PIEfp&In*Y3=w!%|c25&WFu59=0zp2DlTW zH3*dYq$Y)fIu+dbu(oEa>TH{+NG3N^w)g*h0O+MgW+Iy6+(2NIUi_w%x4@ z6DV4AxTj4~?r!im*q7GZN_Fbo;+drI`sPjHg;zVuj1|8jWS8N(krnDKWP{p_tm>{y zWS}>;rWl1_Z}wy|Ova_t06UN?zjbx>;<&BzHA9~LI3MJ~`%US4Qte;U)v?%|V*#tJ zG8bX{L`G7Xsdyk{N=6aw zj1p3x7vS(aF7O_Jr^dE>e(>Jzo<<<1RURY!NRm}fCNMn8vj@Y98ebCvky>M=m-qLg zmwRPNND>pq<)SrC<(-YPNgAgrW~F&yB?bxz>3ShP*n9|wg@+L~3V)3oB0R@a1pEW7 z&^Pxyq0{6zr-man#wU98(Leofn4#0PNVS9Sgel;hH&6!`2PXDpW`@^?14k(&x`v}v!W&!mU}%^}v9^X6(o z&h*(t+@@G!=R(sqT4Fk|=-NSDA@nKmsP;ji%ksfk-9msI)$y_mYwzRAbhl8x5#c#Z z%K$8?aL!&6Kf|L~6ZuLm!`e){SKetq`p4Vls6Ki|B1^LAglBL6Pr zI3jL*P|$Hy@z+=V=#|4?qZbJFYYp}-gMEC(YUZ~97OMOofc3)-P_EX}#f0|3MNWn@ zXsnqr-;u!s5@A)>9YG$ebW~EA^K3@BZJ3?cbOe!F*g#BwO0`som|ES$AXz5hOC$;f zit9{MC#s1qcSmkZ)AY`r`4mkXjWdl|Mb?8`#i*y8D0B<`p0C%KHAZZ20kEK9c}qNgz(X(pHBm64|`d%p>J&eL~0pVZ)u^PJVxL#TCYguqNu3OpSKj=dLdtZ~ZB~pe#<-mR^Pp52Jlev`cn@$*%D-{ z(7hiw^vPrAh_0+p>gIA{sgizYr*^+q(T13^p+WTs|Kp9R4o65DZ`xhamcKxKI31Hn zQNDxA;}07eA9cZ*$A<|uB!&0x~&9$#W_15kXi>ss9mTwM(bIHayoh5*3l*|v$V>Srn) z0UA`n7I6ui0~&Z24o+3q^U(};<^oeMWTQ?8@5=C6Z9O(N@PxT_gWQT6aRihnnHDEJ zyUWxYkxuqfFHuu}g>f7AZUI|d&kyLkbM$M^L4i+KjZ_(MIAa~}306BCjNfS^^3+M+uM7)G)a=-;9VBQNd6cDOI?m5v^c37UjP9FZ*)}XeafUjlx1S#TeHTLzQ&o&a9l%jx zQDm6-gmj$-4YgS-uA_LW%D{eQ<6T0X{s3M5<-#^~O+YkZm-dcNCRWF(^qGJjoGAw9 z`syqe~*;2+tVFU-ZpyQ$(u7cA9JnM@(6EF^R`T zn$JUzlU)e1T`Z9M1_$kw2cEvWF9O zgJ>PIZ1=MdKx!2uRl~QwbIc0nN{m2#yg&C_doTa5^Y^{y-|nN4KkMO^L?gVIjnIe5 z*K2O~2Jd&BCvRaqNysRbi)L5TY$ra?2fcW=9X*UTqIR^geZK_4DV$C(pmgIwvQ!AEJ~=WB0l3K09=m)Sc&;de zgC8{D6xEeIft1qBPMzx9tF&OpSIel@2n08={*0P<0H{OtRwrP^Dv)u6kXn|Yrj45r z6<=DKYKSY6)K-=hElXx*0fio!CwAR9vIyFbgJfabN7ADP6rbuepROjwlu)8b3y+_L z@=(w(kCJzd_pJMdFBByV-<*_G=zduIzGClqWNf5HW1|6-oY-|)o#=jclTb{Qxa-!*jdvEl_p=4O6&bej3v^;K-7AU-ItLIl$zE#M zz>d_r*7N;mhmuX{=Wh z+ft{U#{lM$TO6j3R%O#nR`@FX)bfnn zhQ~AQB0ZX*^pF;Vu1UkJ)UHNj07qM8WC*Z$=A(O@PD!Co_vnI%H8afU92g(I+|WSF znVZ$r|B?X^RMb<5OarJom`rH_8r>`^E7Lp!yKmdtTOX5bFQ-?dX{IFw_!(g zm~=Ap3MinZ{+W97B~1%6W9dU-|4rr(YeROH>C1m!7pZo1`I6Y4!rQ_DJRURzQmG;V z_WyF?UY={b;DrTXd4jT-*CYIZOkoS#bKSV^yNc|GEzx5JkF?jLm}nWZEsO;=DbT@# zx&`cxfd;Qq1fUk=BBR?5NmDFE^+ZopC>X(l8X^g}8LFm^QEYtVER54rhqI%G1H>2m z6!!t0oQ!Z6^To`Gvi?+~Bu%L4<1%ZV&cz|3m{^Gq-U8xLA7wNoieFDggBeRsU=ky-aq?SrF8=*c+u`nZ&Afh5f1+*;Q01@}sq z85yrqiUW%KkKp&Z9T~OL*=dDOO}-d3?`SK-t~2Z^@qbMP&oSE!QWv;$(;BkoFgJi5 z15ah=XO#>|fOrpOC}*OZ0Nh%!mW+Qe%2U?UcCMxd08$1kr5dnN0-uK?RW4!?A!=Is zbj2Ip_O*uT8U`IXzmi%LU2c(MiDl;55+!WGU%MCGN5N>*md52*QFuLSE-!pi4|S>9 z^77I8gL|L4&B3F(_pG_uY_{9ZBLD>ac8-CQM^ndWpe!!CjT{|4YDBelsD1>Dy><`2 ze0p*s%pZLWj%Z1>%0bQdrEq2ak74ss8D~NyD>%zE9FO>XO9yLP@Fkf+XK)JV5KC%EUCQ-Gm1h6`_Ugtok>GG z%dd#5Bu;fN>6>!GK(IQ&D(CWWqm!dSw(>qTQqna>G@X+FDppx%p2FohA2>4dr*tR~ zK`~hz5?Ct%g>nZrJfUQYUM-1+vmPawprui-A8kFfp6j>=D;qO7HqlQ!HEGG9PxJjM z+J=3dk4$%qQZdUnUz(es&&XexhkwmxS@8m7N`j;gpq)nvQ{77BcDz zt_3r})+0?#%mOwmIo-Wl~%fRY)>0-e8t_nL3?*7 zPIP6Et$WjS6~a~4m(|TsU`m<9t>bR`Aln7_s}KS;C?hZ;Nc~>wqA3%brtfR3+VYN4 zCGQZBNYKHE4r=07%c*qQ(2Aowy?ipA>ikOmxe~pH8JeB2(}(LiAPk>X1esc#e6@A- zeSADV&X12zuHjc4*YVHsF}?Y4a{WQZv#HnX_iFX^T3jo|-*Mt-^d@sWwUU`B3Tegp z5=`P6wO13E)N0ExiRLK3tcvQy#5|dt5 z>TKtEQkzrk;DC>VXiU}jQn1A8)`Jzk6yA%2FYd%itgNTud!4dOlOG*rnuQaciH5fm zYIl|R5Zoql6gO~-Z~LolJVnyu1kfY(9-tO!r(31jsaGq=Rba`cX~M=gVZFS-DWouh zR!>jsU&`B%MHyf*1~3Q0Y?@Bow8i?3TU7pzCEXa=ZIDc+H1To(LT%$n3yqr{@&Ign zN0;(t+guG=4xed7^F=v{v?7k2&1FkUmcrYSK~IIWQ3=1P%i6ZGVeT?i7X=LV_EyRb zG!M0LcttWJ1(9H!WwXmH8%zA11l=auuVaD#t+GHoJ+*X`k#((;zSJX=US_0H=c<5! zhNh^M@n?|^4#EkEkvcFzX3DZRwSFbl^^u5UHf3xWqgsbGnKXVXNxK_VS=+{rU_1w` zBenfuuBMW}>#=^7ld*0fRTAGC>X4YqTq8I|*ani$4y81CthZ;fbNqa6Us*)*w6<3s zdPo+ePsdp7$`n9FD4`<`=IsE==Q9rCk3^07!wIR@kb6rziL5*9NI05*+h@X)it{7G zW+Y4qNVV&FA+FatwMJxJ5#eVbc~ePA>}6|${+p<79-8aiss;M|_1>Gt8~BIJLZ-%J ztP#aYUD`_GUZY)g#O6}_8QsEvsW}@+;>@<|sQY$yHO!vyWRnIX-Hy?>??fK1NsRx7 z9qOV;_auqQ^R&7Yc2JIlo8=xzRYyHz9a9{i7vvy<)Tjh!$e=Ac>VeLv(6Wi!ZxI4+ zGS9nNhqmvs4bp(Zbay7b9;)-B5B2Eh^07pvPX2Irv;L*?_Ln;)U_jT-Y|^;^L5F7a z1^yd?iteuT5_5{xHfqsd{=$VZ%~;|Q{%;;zI|jfa>~8EPKO;;ts6doUu$MVs)pbOE};bk}Myr6M)f z5q3mGNCFA%nyOwK%<3|7gdV(b=#87S=r>Z`3Y4^I%+wi>?o2JsYOwq29Ye4oCOGGwpoam>Gc9i`*+Jab4x$?=TR!kj$~QWzrgK#p7~LknqIS>LAN zD0@VGnl3KzG?{9zQ-N*W?Ew;SG8twRDUNjS1J2@1rf)nrdM#T@WLFbwA4Il&sLGh< zXtKnXlV4K&V;}&#OH%}20ygQh?G##aY6xQV16hxGr1#iYSfZqr3@NsWQR~nw;Plj; z5XPal;&AL8OK{ojB|kaB*`74Ap;W#b8{)~=@MLdOmUn(UFh3qUtvr65q>Zyi*J`NoCq6~h0qmr-)uM2>p_qk5K;cj>u7Wsf{U`|K99=aXO zRnjumg4mmbusB$eKIqeFHj3&ML z(5PRmjD_GtF|yJ+%rm5&sNzIA#noLe*Jw@on7b&)9?UH#jva;s6hDt@37$)T!hh`T5y-j{bU+C`xcp!lzggXL>5|)o2htNzZ$shjH zT?t{}K?-AP0Kx8&y&el^PK?F_bS6UTosPlGyRzaLqdcUMk;$t8B0Ms0Wd zFHwA4LqL2IMLZaq$sbkwOY+t0?TjAo)_~TvYn6D!ZM*d@yFykFt;h8*r7em&<5J#R z1_R^}`73OjNks~ST)0iCN>K^wKu7O^v+f{|RJsar9qk9ra<>wwmJ=ZIeRN*K+cUxKj908gz2=gJRimNP~?9M^XA7 z76Ll$+;J}F0ya431Nzw z2HXM&W=c9g50LKtTFW7~)(@^W8`rAoPG$vZkxkLSNKoC&Sx^~Bx7MhwrrNi<2m%;K z#}uM*rAq<*F?R}aBUX0|YEz2poHP!NXGYk&#AA=?0rW3sCY-+2DXPddddJg_2vh^s zahR%3(#(cPj$@U#PPFQ@6qm!0zs@u56e|?AFhXsdb0duOX-H4;PSCyUj+;BiOS#3! zweH+GWZQjt&(OPJ0CR%XG2lC> zMpm`(3bvR_&Vmbr##xVy6E4|knOGBdxT24q*vWDRL>Q@k3)*dxA~tBFrGhI`GFLuh z{4gI)nu{dgWI%cbj%;;N0B~P3YZIbG2fSwtF$)=9ek;xc_mwOooL2u6-2gmlpLC?UA@|#loIEdv+rN=e)uewXDl{?cR5L z*?e&S;Z0f|4L(?Z{6)=E!73zfhEjV8l7kTjl#h^uRU?jXEAt-FOJsxMz9I}^L64pG z32&95wuxVw?l=9eqFd$bgpa@_W(&AvbeL{ zj+z^-&s<A+`L+epVf9sPtteW?@aK>1yi+a#$-wn%gS#%-!uC7QHr$296C7c`j#`DCWv zmeZQ}^fAbZQxqK_2$zD@{~YHsC(p)wB|l$PW?WXy2cRAT3(2Q=9M7hs2NroF5? z7^TCd__^U~tmdJ1wB9`V>bSS=I2t;A{wRdh4RZu;bpkgTtFggK)b(TL>DnJ_aid_q)S5MU{et;o49xK3)^YD%%~6e-?Rvo+f9CM9%Ed^C5+j?SG@v|u@Gdei z=)5GA4j_PPa+K|#=pWaFxbvv~RlTAkDw{-E2VFFTe4HbXbdwUe73q1QMw5 zXYsK&=@!v=(1rOooJ`(n_eJAOl^BX%N9vEe6kH9W?l1~)TIXZiwNsG27;|_&os4Og zs-20PnhcjRXq4yOSLN}O!`Hvz99&uAv>RrH5n9MeO>Cs5mR;u1=Rp^5h0x(ifKBuY zCSZsff$pnoTV#YAM(3$5;IPexDqFY63SE>SXR`U|XruY)Mi zc4PCGdUD)aUa0=_gI{DPQT?SAXS$p6S(Kcff{=~>0|o}tYfJohdRkXVcSuPFYh@;9 zfb}wm#veNE3V}g2+rhYI9jR=?IV}LMM@el9cQgB}e(y6mkpMu1Dm$-39dd*$fi}Cr zvNn>9#;0s;x3%S%<*imxN*3gixf+Vd;Gf`%^Y%hu^hujtL^;enMal5b#1@T~N>Y=| zU}KNAqt8`~YB%wS0$uFGhx#dJqUZ!~b%9QJu=Hh15*XR*VEfl0I=GWnv|0JW%;Hb& zEJiQb27AOd?0$|Lw4TC3Od=)sQ$A%+h6QG@zE2Hq7NUo z#Q&p2$92VA6d6X-BPP+R2|sU*_5Y%6^`Oh<`}BlNk)*yg>5pbR@!kJx-W@gX_F`cI zqy-E71d=yRm!DTqcdg?#*fWdPXt(f-Js6U8e-SmUY6V215t^t|{NS1Lj^^;8I5^T{1@G_z7r!i7Wt1N180hrWC4pbrTk@TnYhGzEhHv_k4F$ymJFgTC>LO zFTVH!PPxqoZ6^|aS>c4ABZtHZ)@{H^yAeHT*H41uOVi^0tkWNtOw;h=q=D8SW$92F zh6LsD298~w+xMK>IJL8NCc+*0{pv|3qG5v)KfjmR&J`})g_Y+%Ve8EQ!@J*X-F>lj z_igKL-&+f}S^}29s<|c00l)nIOTy{pO3P!m(&C_|Lknbfi{(Ls6J8>-g$v|x^TF1m zFW~3YUofCU(gzV*Fp{Iea5yl(D2)$5{E5P& zDk1bs%DOq7If2$sPiu!Yop-Pn)yNnIu|v&lg>>`zFG*AW1}ei@!Fkl)bfg;8)#_g3 zckJm0^=StF(I0VaK-;kn-ThAKaAu7hrF!N%5*Cl*#e!YHxldM$qLkqYR<@&)CG$Yc zw9RILl*_T7Pe##Yc1G!A`8oS7E@i1}j0D%gw5AH!7&-f}oQdZT%YsXd_ZqWaFsaVr zQ_s|&%yl{n+nGpi{8bxTVY%EAZGrjM`jUL_Xr@-$9jZRkagJ;zwYA!+ zMrH^kWNGrdnwmwfsf*Rf+{(r*TE)i9Xk?`I2^wn)eq*mK>;b(q$K4kuCMD@Ke)j=p zqog6lm`q+z&gf~HckNqlf&dw(-3$SdQj`!-#%Y~l`qLGC#Vc&6a+PpyBE?OS<#sxQ z@nF{JsKDy|vEZ~6IlYf}82z#Pu+!;Hx}6Ta(LekWXewum@UJ_f-Sf;g3us|*z`}LC zfd}OfFEo*dNKuN?1T}rH8%$J&xt$Uy)`)7PvC7A_I!+dCg0BNPBQRz zHbSa+s8T4Ul?rM_+Vb%qMCl7j-z)_pgy4T*XJ_`~?$$Y98j(ney`G)IVAK+1McbDq*8T*Z}hmJ1cnDvQ@3Iu{E)dDG3sYYvrB%`E+8oz;p zW<;e~#T=R%T}_(m$T34<9hsF_4h|M!UaQ=PoK4j;6aZ2^YmZrF7M;$86=s-6Fp+Gl zDZ@?p6!>j!4i8fyr_S6Q9H`D3dArrfj^Sx!98SIa~UGy!QMF-5eKk6-jV1Ixv_Fg-wQDXuD8T+2z9ovd@KgwoV_*`c!HV z$pDwMvU)34Cy=rBys3r|@OGrcP1!WNqqROnujg`{ZI>B1TvhtFY3q>OK;vy7xPq$P~B1-*YT+sx0op4`3b0Vs&l+|$@@TSm*qZ127?9C4+ zTaD$GhAu|KpB_Bt>=M$o&m^!pStt2%OwHNrl7+y1`pWd$iLF0cK6qf-vuF0nTo6sK z@xXYPjQE4RLE-^du=Q!FIy9jb6c#pxBGKKFmEkSG45q_}SH|a07@JeDjTGmDYi zJ=&Wc;;6%)0*Gb$Sk_qb4xwhuhmiX0PvJB+UNWNtK78fbz!+Ar3M?3fmWINvxW}6& zMV}GI|Hu-j@WkGVM(RJ^I&<6TtKDU}#ogz~dGt#FB@3eEq2^KL4L{1UH`}BNhjGi0 z)RLo-WE2)rB1+Ffm4pQ>BF>~t1oSG6kEcRC&nwe-RVkzj4u^{sP)K4Js4f1;2xdK2 zXdyh-l3R=;p-FMCd;6hCc~gv(Y4(;$KssyLv_Ol=&lq^g&XeJCh+uYz{M8WvX$Ql= z1V|)H(R-Bl9YGr^i62V@!V;(^_Lraz3k4-P11|`KII+hD0CQM8_nx2BB-7M64P0`t zf8so+=7PS$p%IO#sW%;xVxP4H5G9h;CD3&Nd%_`m>e*gX^MT4T*F$nIoE1R$vj!o= zjY@=Duy1@(sLO$l9|rK2a32zNWgv#8NQQGSi_A4n!!;;4-xg*w#i5UeP{bokB5M+z z#-75M(tZqfk70TO(^VDDj6?>pxsGo6fDtGu&IFj@u5t$(1$Oz^&17CE91mb)_;7M; zW4qHGC?o}1w`U|#fvBq3a>*RZ)*+sQzJQLg#gNs@xJCspB`kI_C9Fg%#`!OJtW^#V zJ_@k{*@#+2-j{+?Wal4m;JBBp+nKKt3({eEJnm7x+bB;q*x{=Sss_U8@Yytl>bXyO z`!Q;>5biN?Gl0 zqpIcUCYqXC?$u|#)62+H&aI*bFfsN+hPtYsHTPPV$IN)(l{j}?O_>(f9G#7gHIGpr z)*Roar}>E(Ri1lj78`3`!)_j{-@13>oAX0&0*)Tg*uzHe*GJJcUE6JApPtPwljC3q z+MK1`_3Tc~hu`+c#<&PfAUZFHNs5ve-|qLrz(((u{TA6?hu87PHdWuiu3X)i!{|U} z@Y^w-Tb*~W*IU%~l&OlSsam({Pmjap?HK%b$J_XLeD8~4$77!MwO#cSn=MvHKieV# z_uszr-HyL{ep`Bdn|ePjeZ9ZmYkf`=zoV^E5P-XZLaq)Fe$$dGmo{Z96{||lmTM1x zdQKSo^8DMzsxyH_dUCrL1)(}y0<`2Mtck&)5H+Ebq{j0E6o~ilr{Ajz6`d>`O1AeS zq#6L{Blkxz zh65h}YL;yhalcrExBXOKosmrIp4gX9r6r|~rlr$anaf%S8O)1xf?3TA^@@tave;GG zGJBjUUNduoRQ#>c2oE9*{F?aw4zrpIVHq?6T3QG;K3}1e*Lf;wd*IBJKu$&E7<`X}y#l#WZ{TSfQuKFS1&cLcQz;u=OWqWx>TX_O#AhoH-zVOLQ z0fV3b002M$Ot_ZH5_ok(%|QYHJdy$cp#84eTiDa-xtiD-+d0xXnm9XpSlF7;+I#e9 z{@5M1qW*0Af$o3ObDSz=Ye&JYYcqFAE&R$x6IpD_|`)vjUrRaX;^*0YK>EFq6qQkNf8vP4Fzv@BSaOgSYZ+q`Bi z)?BMcfG5i!NFw9Y?dj?6?ec~NT7~wVWg;a(yxK)Y%fGS|Glv8kaRxOsb(Vq>I1AFJ zFM~pHr)ocV8_FIhRMDbDA0*bM98gPfyjlqd*W3irXUI%CAHnJ9%u4Lj+0xmbK|K0e z`GRNT+f8~wYimPWeNjtuJ32}2?&pb(hFS&~ zJ~Ed`HE-HxI0=vcBTB5%m|n&Ww(>75l9&FUJU3%PkZ7^7;Shwr!jp#$)LqV9;ReR(u~>&TlE*M`LrtYH+P0~Y&`ka zJXtQ4qu^}+BKFWB9#;$4QV-;uxFUVVk3<5C56G$3qXD|CZ|AGoC4Y zR)h$*r*xPYLjBRokqkB#qorB5h8N$7 z)Am>b>(|EaI=B*FvdVWXRB9^hd&zHhev_G;rxcwE%bp)=Po&0JJ<# zEDJZtCFu*nVp*^K-)VO99;QeBFpGom%M4scbR?XkWnO35O)+PGvyZ*Q%Q>y1O-CF8 z496#A+@ngKzpTuc5gms&RX|A z##M!fi3OKT*A)Psh6@D?O=M%vj&SYX)^;{u?$q#!KW{;koo-KAwY!B|y)V*5orrE& zbSWrE^$nkk93x)Q3`ym zk?7VWEf;sL*7Hf-H9*&^sY>bE-gTvV>uOMdtZO;}PPW_zI;@RqazoAi!UFT99NnWl z%{0{nxQVS>$h*qwRS0)yh9u9i(+-Kl zfpxnZzWy1`o-nV+DT`g-x|w*ltvkjgmQV?@>t0NFE`c-odhexL)7U2lb7n7esc)xP z%UYA`L>^B;ACW+Yz*-GX(gAfyFBw_0->#np?;puOH@5SWP3Y{q8({M>L4Qv|x*^*8 zf8D5#7|MG_u`F(45m$};?Ow1A#Hg8i_e@}|Z+Ba4U?WVbJu7+vE>$^c<^oDy3L8}? zT@*|rx*9p0H>4aeo$0-4YOFTwWlUC~A7S&+e#|&F99VkHU&Wgueb~R&L~iPRFhZE1 zy40HnjvcpgTfpXDRzz=^^IqbtQemBSMLT1uAytI{TSy@7@rQo`F@~{sG&DTe+HtwB zEvGT{=n9#%pZGKObG(|C=q5zA6-qqj(OhKTA>@Lr}Lwj)z=yypym!xQkw3 z78(`_jYS=RTBywX>75(B8tNLslPn`@-ZpuTM8GZCFF?QP#(0E?lzMplJ+k>!^wz_|T z>~Im5Mc2(bt71KqTXp$S8FnDK1Ba6!v4(y z2uL%n;bI}*`_TQ%F75x<gDAGP0(7)CNuI?v_mv)m|b{@1&7Rz z+sBwyS}%$9KV)3Z+5dtm0LU%T|DB{6x?uC(iNOq4a%(do&|ta}YC3w!>Q%VLvF0k{ z;<2S(GQR)`vL$U{eKwH$-?~?{*CZhIc>5h?mki3 zOUh(SQg#l{O52o-Djlv(3b*;@TuGbKULGhC8#_oRVDeg9wLSOg@c|%tOQ!m`)G7-D zZO4eZ6)m_UxRb;dt#Cfup;gpx1+4jf++1V5-u{kv!u;5$`jXR{P#zLPdDVH=?UCrd zOB{$5+#xr_H)Pk0*jxoyJcb(LN>LPc*rUmMQ-u-61S8juMBa%oOX2W64r%Q}ph^I+(42^5U#rU7v2%FX-(3*C{jDzfHNYhcE%U_mC(NfQ;sId0zCTb zOs`}d49KA=q(-WfT3mIBn?Uf}#(Rv1&BA?_)J^g`BZ&bW`P--R^Tcl!sEg+Ejp<3G zXqhzi%l#4Be-rmkEs0OpFQgJ04($9iLx~aw8^@f#3-GFR7$6WZ;GjaWt`ttupBy68 zOtm^Bl6#&- z#)+CpY0uXEF_ODjuaD3+a#lk3Ztp7le-1AO>A(9D*dC0*rzeh-XP9wt4cB6efV#q|qa zEs9H8ns~Yu!hf=G^oe!m(~%xYXy?w0SDDnjRi39LZ^0^UCfSwmjl#7C43TT zd8bgfdi&B>>~*h95)v`JF-f$+SMINeYNzf*@oJL| z88ELQ`L+C`6|LMSyOIQ7UHGm7%I^0vc(d0yIJ8-}TanvGQJXw){Ail+Y?D7FJiS$U z2Qrx=x%(aJ0|&c|HR+n5XwTH{O8|&H>mu=&J+6fOpb`7V$&1qBUumycP{h2 z1wvAdi6W!v&d@P|m`m!%1x76Pv3L6cCqs8sc8W7+4j??VGDuf!)gSoNopbnfzfUic z@2Hv$NZf3fKp!zexaR=p%xK4QK_q$bDNi!rPX+95tZ=pi94B>%kOT5UbYwrc5lB zMZbn%Rt%^StK6K?OGavh2Hz&IAZ`WTPREo;==xcXM~OrB*aOB%s`z=VczFtkqUZ}p zLruQ!-N?W2;Ha9pFvE89{t|y;PuCGV)Xxk;(Syh%{L?u9RSH0kvR_5j^Ar&Y$xEZJ zi-%}~d|Dn{`CCJfHu7s0G$n&RL2{AJVo_EU{S3<{D}^wD?+QcaFQbr`c@(sg+A?kD z7I0d+2ot=8X0Y|cXNCA&d^-6MBD2-5fp3BeTURhf7tpVb@JVAEU@9Z}Nq1{$1qN8F^{v6q=t%c2!*icyCUw0xy=t+a}6|#UYkY)zzeh9 z%?*r_H*NwPu!pbZ&mqkE9C<5rInExFB zSz}rkC9$kIBv-jN5_(VvY$ae>B$>ij+rt=k+QHaVDwu}V1StVQXbAhaf5#0aB{`G7 z*$h)S{jQ&^M4>i#r4`Mb9}OgS;NlmUF=;$)jD)C8aWWAW8)^$6$PyiCDOCB&K+-OG zxTFk*+9h&*JUECJlsI@@zvV?XPOpd9XuX{sp*YhYr5GB`S?(xPaePwQJcEPXClBA| zGetsz)yztsL6!Bv^i*lBWtJY|<*R)wTc5hd=XXg36aKW17!`P$1+}FIfRMK~q%Ry| z$Ns!`kY--kT7)I%sDz50U{H!LJ!ATNdyNJG^9djW;EDBtlJ>DRVo4mol<6oqj(Li( zft~T+z~a+~N)@V!TY6YM8BIs)cJdlde`jvgcIS)ckEM`SGw8FPt$GvWb=>K2`j^h=J? z;)5ayQCy|djirIxy^L(Z^WaCE2^{qk!89ms8=J8^Gz1SappaUkN1O&tEWB_Bpn%M` zyhFnBth9%p5Tf7U*U4)Yg=msDY~UcufmXsep^3s5Op3DotMkM9_2jWAk10(JJz#;s z1};uU2QA!OIzM}NOb64VNqMW$f1)eoyBPYxL<5UcFC0Jsvmyy)Ht&J=(UcIuC|^Bc z3^kTfnFF7hs&?yHYXpF~sl+DQw>0joXly}f?0FW^VX20?{3cz61=P8EjX>F&B;UMH ziqbaoMBy2VM&Tqm!uh!yGl9S z;b_CboUcXxDU~LQVWRiSGZRDHTBg2r`6T==9DN5(e9K0LB( zOsv%}%Zb;TPDt_MM(;uEFA5m-yGLJ2&gqKXk&YJk~0zCI!YLam>gtWLK0mB5b*_<|Tk!lCDhEihj{_M8Pj| zk}B&RHce3=;1M%GO`vwL*6St0WRnC9GbTmn8~k%h5oAF0y#=4&2vS$3e{Yg1z}aj% zNv^-FL{`%QeBCBm|EU-GF<#()h!{R$e#O1Ufz8*f81!!t%yCa@!#;Jk zQcD^Nz)w@$|EU8W7f3|np0CVw#E9*^8l%rW(`8Rgqw)y2VGRk0wh+K!hcZ?><9FKL zbx^BA;4_W`fv-6sQFM2eKXKD!Z|>ca{V~@QWD@@%cvp6NYKye-El~)|v=QQ{=*#R+ zNpSB!18>>E0cY>M>Oa;^$10iz(7$DHl&n{3l0I*n9D;a8ytOfMuMC06O8Kjsgz}** zA*zjL9#3x`;rraqT>kerHzd~Bqi8$6ad69kEP6AWSB|73;G0Ti>TOYGzcx{8Q4^B5 zOJAgX?L^gUj4FhCH8)?kKu%{;pKZot0dw!sd_~ijL2SL&9Xnc=M5u8b!B<`w`H>?; zGHdhwqHnz4!jPGQUIS|ob?Lp7jqUQ|>*?(`^dAWL~cOiUMYSB%3?+QR>94bz-mx3wMV)53b@PNRyzXeewF>_>QNAaX6AeagB zVT1F9I%?!IlasSg6<{iW!$+? zgg_w4BNHTlo?c!~QDN*hK`twaw?Ou>F0g-_D2kSoSQpxh5ZGgsQP?2kyezuiw$Cx+ zs(mg8-wDY#>LP}9PLanQ@EGCRJn@6<{7!?!SyBWCinn6B zV#eRY4>xo}6q!6Ma~n%{tX8s2>ITyTGj&6pBC(yJWOkIM&=k`VK~K+F?4!yu_k5uy z$`LDI9F==ZB1C9;G{ba(Gy*!)HBD&DW%B(&PpO{pzo=DR>0Ih+^l6*2E$T6I0Pv0O z^2M(ayJfDCXxb=(3Le~Z&yOk|{%u4`#1u?AdT~wE8Rq<@@S}?~lK%wA9jh>yma;B* zYJ=TRvIyeK%Hx3aIfn>9@l`lG_2uNq(#1u^$|6#Bc4BQgpL!e&!1tUH6ui;<-EP8N@n>{Z-ts>W5)vi0P4C~Fi|v~rz~>>F~1qXn$6 zh8fnhbCXS84$mYNzF9AiYwPPr^JW3a5}%g9c(z}LsO7-$UO-o|cd5u+KDlR{)^iuB zGVHTuVIoRfkcC=e zXXONP{0&nO=;Y#L`Y`*4y`_(4>>m)Ie6@8G{wa18##NYkCpRJ^zr}T6y6+@8JD4*y zdz#=_*UOXH1J!tR-mcMZQ~-7FF|uJ{yp+2D2lZ-8uOVWs77XLC_bjtlev_ zZ+C6WZgSh(j7;(7fy=8slsx~ego`2T<65@Ylg8&El-FHIox412j}pNywqQn?W;bRZ zAY_d051f6y4iq@K#fSag)T6U@?A{AkkOwd-nZ4@>Pv`(z^YSHmr{-D8%&2Ofl11z0 z$%d_2TX0v>Hj-)CHtWNaa+k{JqG_86qFv*rcm7{t!=mj`q%Eby-t=QiPm@iRh)pfJ zJrODlR;+y5LKhsAQBnbYBEWUSAuRE|jqn$2pmy}w$!+jE(T81sc=?aaQQFrwMxBv` zqFtm8>;BxzD;-N;0YR>N2Wasu@O6Hmuepe9E_xJ#pZj&l9(^$p{F;i#@SM}deUm&X zUFDqyTmP?iUpOM>)t~7|?LZ;-aKqcHXAyJnr=^g^Rb|crN3u+@CgKXhBd93G;fgTcL^d-fDR9KCGp=4;sbBvDWsj> z+z^baZnc4l?lrQ~KZ2bp2pK4A1Gn+Ufi0x|Rk0QvSj`G1ZSIgkp>m;HrH)?dbDSb) zY_-Ey5+0;4T+?e=DKv^2aH+2^nL$NyW$FUz+x*AL?$damp=sOJ_g;A|icD=)n6pJH zWc?+JN`1zjDoYun)WrNwO{l?9%gZiI>c}w^S8B490X|5J(n1r^Xqg~BM%Ht28DZxY+`xw7 zrEKRdzp^K08kr0I?!_j@{Ok(6yI4M<-oUB-m#0oBZO+YJkXzC;Vs{lqv|^^pVINl@ zxeVX25{8r3-z#lW0A6Ww-|%cL%Tu7_w)HUqs6;W!u8cLCNd5x^1_vW8RMSOi^ZWUT zZf!C|;|rlUr31Q<3uSl2=RPN26CRu#{-MhF7uhyCF!AK(8Z9N+yu@%bGtLf?O&>}J z4#$&6k(^egVdoIsMd8ebmO18*F_A%@UbZn#+aSzj^9Pip1(WwuQmGB-EgC7o;zQ$Y zQtJ1zt>F7vR0&cPl)#;ExvqEcuQ*|M6zOvzo& z_REQhk77RFfrqO$NaJdgL1bh2EL7uhO|IgqXexPG+8T2JYes=3LCJH`@O(DKNWK(xpz3H{&;{Z`8TiupU*}y~3#!ikLk^ z{TLh^qIB26G%6P|-@>m*3)P6`r9c@U$TFzpS~V=5?i@7$_KUeFS8eex`H2K32Ae|= zlp^r11~Mc!iT~S@jVUWQI5=U670b^U+4#5)4N=wgD_=o!YWC|#-GA25fB8eG#M>ix z48@%h&%2;v##hr~=!noSm{n4n4HBOuDkNW)x6t+tAh=6(Vr!*uNMW`TJJ2EwqvO9n zjJY5^raEH0`!@g#02O=axaH6yAIf$ga#I0SItiS=%!O<mgHegx~EHcy%fTS1U%dJ^zJ~?XLfcWb=?y zZ-jt$8<9L~e;Uq)X-Pc$fgqWj5~NWUrbnV6`u6--((=GsC~K=qXsCOlpkq22ISIHx z_STq1z>vN}C6{r+*dGM6e;p>u;EvX~coP@HmxwpWEa&u6SmYI*zr8ovnX|1?rJz^m zN$L98XJc9CNu{}>KUht^OA5l<$TQWU-*g!FqpVeNAE|?Ex6=Yzf5QbJ-Jkb?fWcn# zkRBmvEwVej19S08KiaEe=Y)cn7f`>{zw&sW!HKZts}g~bVHKVMSDEpY1037!R(en7 zlj54q=7NFIK};b0{{p;PJD!U@mi8rzgqs)dl3x-TUSK~B?la&5p_Yx!CzT%ZF_HBn zbYzYuG;h%Ba%w(o$GqOlcQdu>Fx@1}qNh)4y{RKGBdL91ih`!*&t@;{h@(!V$u+Ds z=GRP~t9@EDSttxr-LpjAW~URubDy)h2+l#`_aiaU2Y?V(jesR7f!kgBVQ>yQq4;6SgV(mS>WXqPobtn$2Lcha18#_Vx5I=s4I0{-w@> z57`Y&o#}gH3(Ax^(F-~(W#N8Vo8&_qg{M>#8pcgm)nb$%a)s7fi7?T+q1VWSrk8%U z_}iXBa?)$dI?RrmfeOgc>JK!}%~$08XXvpemjH`4w$1-9XF>BkJ&$(4Z!-5Nh9NhKQ7DPpmOAN!R`eX!YlNME!2ih{X220{zNe!_j7U$VYOl!)Sr z-=no z=2O%)`ttScxafh%GtJrx45*y;>_K(TvMBqVW#pYhfR(?8Dk(;w&ReqL?KlFu6AY2( z?Uq<{!N({{?;p^o;LE(@!I5d_d+$BMJfYH0fs9jKh@9mcWYJSrP4rYqO_db`zBBDA zs4d~n2r;{rnsQP!lXtp3i;k&-LNqte?%1&hVh_Ay_m@Zo(2an^GYQ=~TsL5UEHHq? z-J6wD1P|~wF3O9ol-2+fb21+ixAs@8Vi1B*c}9J6jefH%_E^MG94Wix(;Sq9Arf?b z&(746jVb6Dz2x3uF55n(l6bc%9L3{lWm3nZgfamG=%07XecB6Vzdoy?Xp?j2RL#v8 zue=wKtnobKIGRLJpUH$#0WdF!=menr)E?95@FNvdVUQ)vNQN``>$mmj@K=pSkf3ae zTH-!m-WZjR)M0rW$mh_xf4*v2dl3<^C6j0`l?8l0t(GHUtMO#~{0~c*VEcy5SFFG+ z{6N7w?(E85tq~wO2HtX{+e&^`6PQWkc$db6WO&fka2pEAiew!$vVLc9M-2bdE_Lc` z&V)Hv(%v{QA2V%e{ktFh$8qQ=7ZMD_!Y!vuBYs3NCIw(f=%^|in{93IihiMsJFDXe z|H8gM;b+0$5Ey}~hNQ&dBu~D5Hgv`g4E<7SG+8jp(1!wIeWQ6y-7oR|u>i`olkW%l zr|uDYQzJQR*P^{9uC4`-c#OjYn7-hfUDT*_zbBd!#BotodryXyVeK$BM9Wu?};s6ho~qlLWW|c34LQ_FBe; zQ(vO+Y{#rIO=HU3^un7`_a(ALdl)@Vu?*$V0RYdMpV&EA+%du&B5h^%$yX{~tgM0z+xern!gJ$`u%(6tLkGEau_R3=45%Ro zCWfK<8>teL4SF>BqpqO6cyXd5A3=Ai4L!GsJX<7Vo04EbjfxJ%Jz1hjs~xo8e$DCx z^5k$m1~mvmK`RM(?AzKgCM3%ze!1k9D)>9SVrVMX%s8EtcFt5lS=V6}jq;l2 zC#0&4G0D#qJVWgD4W}(zJL3P+z;aGCe#-v*OEz7nS^vEp95d?H#v~EGaY}gU!3$p> zXd++MVvEn;CLl`4yMqhstB0lKSwOL_=fuPU=W?V<>Ssr`Ngg%D3tvTLxca;0pKFo* z>2L2X1$}v_HD7P^Rx5+kpSB6N6Z!`3sf z8ZHifF6c-tU3yU#@Vert+~mnRVfP*JFf6Id<7&p&CKE1XlJI`lPkPGeT-3u;|Dgp0 zS)D+tD8an3(6Ojc4?6w2s$Q2#7imwhALS&!HIGvAy#Cz<4O2GLnTM)t z9#`d*@Cg?dCTC~sH^9ctU^80geUKNT*(tQ==tXhQK*+@4?fd!0F+gA>IL1TT8-epC z3uS-Z2fu$%UQ7twL5z`aFl7f)v$DY_&(sCz5M&x_>b_)Xn#DS1!&{GVHgpq!w(+KG zG}XK(^&KUR5Iy+180Njk_90mo1DdBSXbBv%ZTEmIvga$7Gd|L+->*4Gbnlx)Pt093oZFzIpfM4W2%>gt{{LBU-zN}=>)g~N~8MwhTqGR&JrjiDGR~QS!*)N0mXjncn zpH~Wj%M5Y$M=c25coO}VdrZejQ}M|1fh$O+uACb`W}XI?Z(Ii~$7bD`M552ZgZKw5 ztge+ZQ_N&bh^t3B#OGm(sN1j=RRFf+@N1(RfPJ`uNn*5{FPd9YBo?U83+G7^G&8otTwQflY;BUa*(F zkiLZdLqxHFlxPLGD+n#1!6*NLibXJZz0+#y&5`1iQDE*DG&dZIP%lEvqGna+D1%Xj z6?;H$WRtyE#Fd#aaHlUp^2B-rT5FDh$IPn?l2bDTR})`)k?I9ozjPo$e09}#9t9XL zL$S?aV?JRj-@6Ul*ah@|cPp9YQ3eDA000jP0D%8L?$*f0_;;rvN&>c<^a$OTsMVeY z074yD^8_-HC-ImfhuM&Wnp46gi3AlO*Oy(|iH%#tF|>?sW@cebjhWRB0WqfN$+(pl zXVb&gjWzCI+gM}DKZH3%E!7AmBwoOh!~*7Qoa-Yz=Nno~sp4fPgrYuQi+? zg|Fu1J!20C?gU#YC&gIR&b|dbu0z}baD0Y{0xIxgCj`@~#zgK-HR!w%r6W5$+(Y9| zT|Hm#$M;%7@kz@*+FPi|n_+wWvThZ#Su6=xABuBMGP->H2)Ny9qG`t?Q#UkN90CVT z>BCvDL|Pyq9Iv*wrfYjW*@;E(z_ptgF(Js)vTylt&ZL>e47Fn>Bp1&G;~JgU#-=## zK2QU;b+s2V3$LuhKS3NpiPI|9Is!F~#O*`s*`*aJO6lcvtP0Hu`;337xm=3w9m3zc zbGOySh(tG6ygs*Z{dSu4)$RK*N)x54v!1@Ch3dL_rZS2bxmCw!k#KSq7Bnt4_M*y@ zDDu|b-k{T|PsCUtiUQk2y~Yi@MSvO+Hk(^Vrl_eu%2&>gf3jP3z1Ki7>7r`5i4#w;*WB;)7grszM_MAs5OvB^xSzf&Mpt-2deK3IENVpWj9jqW>v> z42%uzolP8nQ>aBH&K@t+iv#mogg1PV zv%%JpjyRjeF00D~&e9(;-*hk|7h?+m6k&G?KyAo$P8Pk3H@A{&7cDQplMbKfJO}`K{ z;;tsAtcqK>pUO#6Re_lkpKS-b^bx?6H323z-`QP`9P4A5Dt6R9$@=XaP(h1Eaev#X zxTSY~Lt@(EJUOlb5ZH$eG6fjfFliO>rs(AfeRZFuTm#mcDcw4Q2>lYt)(6%oZpi=8 zu>>1=EyTmJbceRGU`n;uR*$ho0Ao|hvLc&!R5WM5>T`)qfbH*ZiLeZMlFYP z1;UsBUP_@7n)L2P@C{hNG97`{ayc-=62xF2zJnv-2KGPu#oK*C&cS9t7(I3C=5_5D z5T{Kuxd)S^^CV>IuMx5|14xmN>(DGcMIjpuls!%>aR#v~vDz@k z2=me9sO^#&0u|lJ8KDSfBt!V228S>InGhHBckN4-S`oU|5CP$?GdBUdx_Ny7ry9dn zQMFsf_jmaM8B`QFKbG}wAp(VAb<0f`z*_L{n4l(C3Zf&bA9d7qR;B%I*OBO*MaqwX zU;?zu><;$leu%*9b;oDn`4$AyyWR*BRwr{8ftNR6r$&E?5{ zQX|e=ban-4L+TU_;KUnna~mbZCzJL#yaeUc-#}KT!&kpL-;>oIt1a2Dx6PT&`Tmp1 zroEJrs`}^|k6h-ZxMXQNmhEG7Hf5y6CzvAZvpR_4V?sC~DCooQ&q{QP{NO~mba;~k zX|ZZvvq;))F3S31b5s;(PS)Ede7kv>)gEIG8klhyBZ(nSLd-+g8C&4MCw$b`6>AW6 zyDA_@;SRh1vtzDn)qot+54+Rw-WA8udC30R3UGL0i*o7_b###aDKprnTspC01QSx` zRdw7l1wHdrdishh#P{gx5ki8R^-@p%?}mD>q|1UQr*A?-7DIE5AspNZW+d3$U_1Q06_3R9pwK91N|Q3ISNy@ zLBB}ggGx1$YF;?44VhbH>U5X0jc(*H*xxYm65*WhO)YUZGB*UEx zpSG?vn-d=K$-!0S`$vMn?J# zc-t@fBK#i%Zf9d};QYTMp3oo*%m5Sm!W}~LthE-8o-i3$S@}Vc)~;<%D~nUsY!~O% zvnW&uF^)hI`}OvMw|^J}sDo7sNI8byNvcH)VK6@I7}=vB4h9d`)c=6)V@Ud~`D&BE z;AlbL({5tF8Lkg~bnlGJjVi4%x-~FJT3512#9lSC<8}0q;-JX z@^mHuffOkgu(*=1hN1C{Ej#MXSV4- z$o>BzcH>;Hro+@YWsjn$c!oz%tvImtIWJtvy-OXGqr6KwQqwim*k0w_ovk$ z=UZ!+etNpx5%+{t9o1%tPk`4(c}EFQ41&6E|Q1WORF>1PO_CvXv`)5 zn#f?vP5^V0uza}*b?hw=`)5#(F%VO+VX0bA+sMqQAel9bA8u?xr!Gx&(mDw~q?;%Z zsgFkZYK*XySx}!TezGbQQL2hedEqPkO*ozw*(NTmsL1g^b@J4)*R&^Hl|%k%eXeo%k$CPZ{sa>a?bW zGt%c!z>PAd8WXR?R8W;=v)(Xv2(>Qb66;{CDj>ch`+9_Cd17S? z6pOFKijKax>l2>Hv?-FsKH}QN#ILmBzBC$$JM5`lIfW#50XgtDAfwAmEzh}0dk06v z{(Uu_xn0?$a9$Vznv`DMs@F93+XQVZ!Fw{sJzXp|SZ$~Y!k|_1A_!|n6g3?}*R|w$ zktUOt%DX*Vjz9NT?!-xq;0z)fKysoZoRpU{6RJn+5wc`;852N*~GiTq8e$51~%iA1AKZev9^n`l1Z%9;=omylJ;v<8ChV{|W_O#^S zkzKUy?T0=i3P`L+IJBs4&XI#2LZdunZU-(At+*LFEmbk3axs;gK7hqnjt_6_XT9M@ z*NysqTH$hurLJ}Ngx;YBB+{k0F7btLK(PIO$Tr`8R zXkNmBgFyzH^e@DSaVobm!VlC@UBM(R^aZNT&x(#3PK90|d*h z{|#;w(zzX+xDd$C4}&o@f#dAwS?Hz+Fn zK~Ad|dmJi;s)fdI`0XNXgBpK^NyHTuAOHCX;o_&ScQS@5*;iQ7O;r6}BvnRTOyjJ( z)ULes=C`Qhqm*m_{D^O>M2Zx0MkVF%fQb}`(f*@0D-OB(1dQK(<7sRj3-+d7jz7>U zavqNJ2t?FwTXUIl`KqI_Gm)cLun26&GuD*q&c!DIQ$&z#ppKcnFW7fmuuN(~bo89^ zR7e?#zC2Y9-EYg-g)A=B5Jk6{Tnp558`jH@$D+^z&=}LfqysIi+66_ACKKmV=9Y2| zs10q1;unFLbTrBvYVRoVN3WAQz2|>1_KrcK1!1ya+qP}nwsqUKZQHhO+qP}q?!Il? z+Me0>c6TN=Cf<(|apL@`Q&kaFS@~sUCX4Kw-l<4)6NT0ef8bQrc(IgSQgg(nC^}5b zGQIj(S)`evn6G&#AO6q`pWl9R_hh}E0>QBo2hz%sHcJVbh(ob#1v-q% z_D~4d;b=Sb-`o$W!JREilY6p1)Z{bjm)OK!fec(x9)WUpOi@zhc2^fX`uki|oPf*J z=u-ZIX^f6zo(y2f+6`EY$s{GypDtGWCm)J(DNLfS068*;X|Af`x}OBn1rYW;Lzc3b&QK#p{O0@ zDX%-%aCj(pLqSQX<+3a%rUZe)BFj1Kz{=1%___d5;OGkIWH>%7`^Z?K7ul zFyH8X{y5M&o&)`qMeq-24_?Q)^cHzq9lOVA>!7er61K^l7C1GztWFTP5fd;`{HlQ$-#w=~N;eJHJ z0ylm;CO|E|srlvx^psn0s=4*^>L>J-sThAIg_(mKXR-9o#2hVE5|ly5I2ocG@XB-4 zVex4TQh#lT9HLMq2~gtU&VIpM^wYg%Vk5PM{$`j1{#3(PwNOX0Z9cTR)DMGogion~ zt@CVD<$~(Kd$zqT@~P+=N=^K7`u7fW)G9&va2&h)b>Zk?e~%GA6d?=9&nw<`Fy6%g zO)uBqLvVmP6cWT)$7apDcWKTcb+eVAR0v45SrESzs{S`fT2UP8&~GiWm?fz}rUyn$ zI3vSHGPEt7(4PBhRFWB48)c^{u3ht9x@PFQc9o>m)9cw39!u!PGR%>`9oH0g=9|H) zyH&2rpZd9#6ICc+J5_Kt_*ulPky1=RI?yl{phR%7#wyed5*~vR&rmBU0~aHv^GXoU zE5GR(`7^y&CgU*~-OaI&KIAGJZUWFQ4NCUxXltPtAf9eX4;z*Oncef|kT|_;^=QVi zY3N}pbt5rnb{)9t2Vd? zh?EmpH9X1HfltOaCh#gT+I9E^66UZSfcu$)tVw?SGLeqvxTPRE2B-%yqH^MbI+_YV zEzhn8R{9g_;)RF5u5yr`fxQ4NRGSKvl#6mBI;jV?wiNAQ2Pv?S|85(=8523tOF_K# zX|m`f0>f~I1$LaPOK)cc5Ux!0tzWTT^D%o+t0v zGP7UY*wy+E!ShPioWNP@9AQ*P`iaTpDh$;=z2TGYT&AB8%5jrdnDGoiS{+-raMjYB z7S_unEq{|OH*poyP7H2o+~b#S2E3Ye9I~*$M^7X!g+ZxE?Y$NhGmubPoH%#~PC^?7 z+{_6R`eDoVB2-8Y-E6~F5hC@mjCUI)=`)Sje3J`7hYLZbFr&iQ$Y|>P_AYc7&e9F% z@{MPMOlN29s)4EdzufXA`La9|!EA|Kjlp|>q9JFtL0fso8gHwAHXg<8-k$JMqr$J+ zp~nYa)$Ha4{6!HZ;Ip4_aBT2Kf#9a`P{%js4Fi9yXuP$%uX{!TsyA;CsG*&qXktt`wd5q4Y0j4a>w z(t0<8_ZWwca&>UVmutRUcf##n$vC`bKXNh-r((%Z ztsy(@dCOpPKN%2)3-b>g;nRcrRHd@>%k^Y<1P*&y8y~KGQ_V*PRH%ZvPj0k-qOJkn zoUiCM3u{M)cNq|0RgF|@+aW-l>b%>vZ?#uja_MWb{v_t_@sU4>6XuktaTgyPW`@18 znX(->xf`BQqA=|gFbh&$Jt-|W_O-{RVpn)9o6Db1NpKz}LR1att@~!#cDso}@a8<8 z>d#g$RZd%O9_&P_`I8li>HVI*A>MY-+ZS+K;7^xH%%!2GoTTCB3)6I7M=W%lt5e?? zXnHOYXDtZvsnm|${)?x#=PkvpQg}@3vK#+6YM!d(3pselezdU7gCBk5F*GOZ7UDFet9m-VROkqp?HY(EYtVAy4girXr`sfA?A34}l? z8I=PHHOKR)1g33rOSOS{uZT{?!DdAQ=Ypc3(+b+pl~94C47RA!Mt`6LV=x%;&)9uu z%y7ShRa^S10Qbu*7D{$t71tFFEw+@-Tm444RPJ+-X?7LE8DeXqHAr(sQZm5N$O_@j z1GbIKXrjbtvzNGZqd57p4$4sv9?p-pEx>2w=dJ=Cr%pwsR|?{2={}c%`h?;`;Or_Z z56{POvk9);iyw1%dW(cJ2v?qB-ubAAcG-y{i8NR%lrY>fD~tQj+z&`855w|mCvGhJ z?K*fl6SJLKHzt{Bc=9H1lQ|YnM@ky1ZnJkeMV*{}j1pNXG5Tt(KU`+Z(KDe)l~kXK zqZH$k$~C*lo*OmNW7>;Xji4eQu`FFG_*uQO%1d^WJTgQI!lGJJrWe zt%O2WK|0JFtQHh)FiwMwwcmGMjrDw3na=HVpZOgwqSHU&|LaNqVc{F={g;S3`gJNH z|DR6srWV#FZjJ`__Wya5?@=AFJzzuV`Je`yHLxK_iQ)yjC6vX^7g#{q0rEOU0}_p) zsijmRsNnei=q<3;a18>D1bQNDsM*hAxBCmT1G1ZNXWaQWOoSf?c`Q#4Eh?myO3YJf zRaNRHFXm`Y@QF7prLMP8?jj6yzeStw;YS{q=!_vW9?I9AmD17^Yv^nqYiDtQfQk{h z&yk~awH+5!l@&9MrvgR=R(5DV7X<;1mRqVuYS|w!Lt^uNJY1d_t*-$Oi8zH%apa|9 z1anq@vul`6^nNCsxez_-^AQn(szjekUu53&Jjjn(0)VTZAbDT_FT~80LDh-tTRaOg zLP2==Ew(FC7zdN0@=IX@S!5Y+uc}cyNwg<$4cvAbTXY$hIr~9!k*Y=(cDDRPqCusF zUmyzlmksCZtLP|bWSK2))D~@>;Z^R-JLGth)V;5#kfspWaw=21*cvn6K!a%0lfSnm zKlS*=B`4%iw68qSIOjGWd8~8|f(mtFccoIc96OC~iC=aH|4NQB%Azxt$u0;NnZ#RW zBqBl$W+Lb*=TscWN-=4TbFPO!Rw2y|^54qa{Q)JofKRA?@e;&%$Kf~duf^p!05Ney zIx=O5JL%68x;1E~vexj5y%r8+mIWEQOi1tc&%&LwVsKzaIlwx@Em{Lqh2xB)z!`xq z%S1@&u=q`|5Aoncuh2|kR)ZlUnjyy=~qWr+zWBA>oYM~=E6t4=-Q#ujO(qwj^z4&9qAsU7a#;8lB$ z<@giZl!wdqpb9lM6^6N2ES;bu(&srAMH#=#@^V%hvBtp*=5-^br@}IGRjkL{ zA!~yPJo#!i+mga<`zvVSb%ArcV?&aahVU}xl(V`$g>%vBNB9iO}S`X2! zyXgLk6?m|iu${)LRh<>-=pvBMK?=!7#SZlSgQJwkk~>dZgSL#6B+ibF$Q6pga(m`1 z2n3?>L6C0K=q~2T`>w-T%XV!^PE}`fa!6y%DrMQkeSaS(w%<=1dht}azff}`l!nLoq1v+Kak_WOc^$9t-DXu1IxTU*2@%B{oY!qQD2&q3t)&Bh8l#+x`8);gT6UUwS}UCMXf;y3JnT|SaY zZFK8?i;~B`WZ?fu1e%+;I9fP4TNpY0(yJ+ITEBHkl;67Ko-#%XuU4Z`*+}$Jf!0!q zz>;lEkRb(BKx%n9tf(ak>KN_)uA4+cV+o1e0k}q*(-+*_n}lYvkY%!=n0u&6-0EB= zTJhRc2?YWrgNb4Z<)3k%nGl-#*?KZ!Wy1=I6SjrjoJJ3(*6vb2JPmkE1FRR%skW1{ ziL3`wE(7|$MEF-H+wDJsc8Cs|{2*y!q&q?f>? zfx@sov)qC7FXToCD9K`N>%jojL=m;bHK9Ht^hlTeBV^h{)`1L%;v9>z7GZ+Nc~P;W zMgT>xvZ}-cdj<^ug=B-0d3^N*W+ll=7Fpqjcd_3f;#iDr+xo*~z0k;dZ;)7J%JzH8 z3_S#pnXfS}xaeBOBFxOc+wMNfVb*-gATU+Rizyy;Yar*@wUS04X1i1+(1R_Jo-=1g5ixEh2t{fjvSm$T9yKl<;YJ81RD~iZ3Gr!nn&>pC9`E<& zY<{H#c2uvg99*%-=1pXY`LKf7@zsn)A(Sjdlq=RzD1Tdtkk;aN7jSAsN%td67J4u` zGHWhlr((MSdV*EP5uRh?X zmOufli8wy&@2*+*ItH}NX>uE>h$SFTQ|7LOEEi7K_(kbCXW9?|SFae@)K^Gn=Pk9+ zvlS_BARG#~RRsXFi4(LsO2=jA!4bY3x`5%*NVoW+)ncrU143$93KhYx#T>vV*Tlojd_Ozf)WPy#E1JzwiW^yGJZx%K$ zDKr1>3gN>TYQlu;pY=qORYP0+8T0*FBdD+K-CH)OtFJJk z2!s2EmZW%nGI$iqa*_seAeWQ%9m)ZSmj%5R^nE@+{;h~k$YfX&d8k+b9?A#224row zv(7)O1Y;#qo*royp+-APv+jUYPkiIW$|md@l+1~WIY~7JiTYZRw>dM9)5FbSrAxMN z#45lU6r#%2#qX`Yu4}caQXRd3S>1qV)MS0Vg0SU@i!UUo09}KbFGgmRj>I#l1|Fai zKcx;Y>|;Z)p|c~DAyFVBwD0rvuq~|Xgs{;-PBlS_2$EoSkjeCKl_Ts@8m)tgyuSYX zlO3Tvk~cxcr$zS@D+`_8@qWC*|4~t&)mqtwFFi;gheW-uR7`R#Vi(>WX&`5r0ELGA zlwQUB`asGD>|NAMlQ-k*Wuc>OkKN8}@yrs9ro5H`KqdZgrzuv0wYg$cFR8i(vPx8& zE~h_oDz)MJx=@`}G+_*qmeDaib2I`mGu^de%q8UXV9UoDI^}Fgck9lRp?S5HXFl#_ z*7}CP$~^98Cu_F}Q$few#s;NZw-fEPDImNtgnXa26aIsy25GPG!%r zNJa2MH=h-oF4W`&F;QfK1vCc}%);e}F_Sr=eO$z@{PTe?%Li^i$HAdaQW(bcU}^I- zt@AgBc3wi!)L`#ZG8>14wwKT4XZrcmH~4>D^4k?*;Wr=v0I0BkOPK!?VstWbv@o!? z@HF{d@q5&_Y!BIxd~WK>SM&`g7R;F&5J|w^2{Wdyc`ixTF_OTC%$rDCvy38^Bb8sA z13y1h6Ou)Atiglye|eE_EO%CejELY&YNm&&V%I9y1oLUiL;oP|#=6y9@%L~3V5It8OOJUK?yyH@{!ULSW0P%e~e?3F>{(Rr$FHGn^ zhsXV(LI5=L2ECY}QfTDnA6^n1@BgdbbtjixMtGl3e8i4-{fGQY^r&eV9z#q{4ypkT+|ycu+^XiYM?I zcxj3Z5W`}o#kTx4-sJPT3D}`?(YhllfsZ1f@X#Wnw-++B7Z-5r&-B_pW|-CRFedkb zV-@41Pt_q@fLQI$A}n8kcmht-dJ=*aFa!?8{Rv?E?I%t&ARHQH49%gk(9%L|JQUq+q;=X<5LY1Q9IlbeQj_*5 z-S)Y3!?s}`#<76?GYLf?1=gtzmrDtA_12XI5zW#~aFYi#awbAQ+qj%3lKqN0 z145-Oz-hpFJYpDQ0>fsHuG`<#O#8LHquLnZAk)0$_`4al$%iMC zWLN9>j?hT`KQwRazxt0Obv<_XZyTm&-4er*>ZigO!MZ0PU&tu>jHB^6IFaD-z?Z=G z94KFvtRxeemL>!P?S!4vopoEe6bAoY`=Kl;2@-*So_U$U5{IQ9iKp$c?pNUfqkEA(5Y1ytlQW z#&oz5UPM}f4gmEfsZUUwuKlTyVBD58z~!19v1peH{RB_25%EE&4B#A9jq`^PK29zU z(0&j1qDB)v*Twy6MsBMcPvyT>IcaC=FdFz zY|?G;3T&is;^;k-?G2w~4bkurm1Jg|rVWyV-wB*AHr_BzadR)$QJ%!EsAr4GjE-fH zN}MxL08n{@An@Z<+j{vD^jH=#hGrMX;^%!FAdo4z+Fa(Z+KvVlog-P9Jz~fIP7=OJ zM#dFDcFpHR9?L|b!TWa`e`OU|m;Pmmn_PEMG}2IPGLt4u2nEes>!_$)#<#_C9cFP; z+J=cavQe$#a?LT07nYy9Ot!z^T$bH+_)AuhCWK40r0=c&^Rf8XoItXWu#h6)39Hb1 zcM@Dz#=L&Z7Bt5WzSvi(xL5OH3uC_swUyc^zOM-+0L%LCbqXWDo zzWm`93a3i&@;WLJGP?%>1B~mnz^^nBX(?U=zMbMs3<*aOM>Rl_Gr(x)8F~}cfqlk3 z9HpwWAEHfy)5@o^sfKI*mKku1QE`)suVG-YohKc7_O_at+qvVespje^qX*pFg00Xa zo1HuLf&VP~+jDxyg0xAMrkJzK$|j7=Q0L#Y%UdDyCj?48b&r-E)#Z*@u$b>1XqbBwVmG{F4)qF^! zn*Vi@4Y6_o$R;&QhiDEZ20T{jvl!RGolNp#H33yo86|y=EPu=_$WFf!*8=HnwTcC6Di;41nl}7)g zM)&_^(rglXYJ(VHLSA@8mmx`%pQT{bdYsCxDcIAIC=raaO62`4UL_$+2A<#KWZ-B! zb#+yW#K4kE@o^iwsdol;V54WhX%fwO%lRimzp!TTP=#3L@vJlAAA|*zUnjAv!mtU> zt@NJ?&m)$&NCk?jJ%Gi`!I7~Hi;O-RM}Ss0sR|`DZyYl}V$SD;c7WY#H<~}m0_m!r zt{AlGr{=)t_8RhFcMYSWD@-EH^>lEyShLFE1W^7^1mOT}Rh{0lbU4R*j}bO383+6Z zYU_Ei!)EJn9p9;@rWtnKy9FbS3PbSh?`hoqw{gPkYiD5p9VgY_hx&iQkpC$ra{B*X z0Fb7hoKu;Xo|=}7k(ZO1l~5UaB)TCV%so~zpJ!6Ho$~-QxnSnm)Fu4SzxxvY9F9@BZELo+Z5op`SaVOfwlcmwa zpTYR46M>{Usaqjtnx;w38&rm3Ii=bS)VBB1WBBwf`+4`qe3>k|X7$o;d;x!Lz?e0| zG_GMtV8cRE36^o$T#s<%u3Pv{Iz^o_P}pJ*FEimd=c=t~it5yLHh?zBz|~?b#<(~f zY$6njdyQb>=y{*WkMSsx;hwX-TdT&NXFA}o)!E*|(`B^#IdwD^h24s5GT}%kMdsKH zI*W2p0+xG)$pdK=)71UY8p!51>+zsDc-_Kn`i~Fek1*AJkDDJbr5#LsEE``uSb`v9 z+bm6pzi9783IRHO5i*bE;Ps1DXcftr0pi;x19 ze3DACZ)I=lL*Roexf4BwkXcYxZPRpsJS~ykg8qyXlN-W+5g;e4=Msd$4=#o zt1l1nPZl^=v8!J##xFvqmS*#xbK&kIPpxGj2jMmG+BbUj?!G--U0;uly!3W8Il{Hg zQ-RQutXv3o@og|t0-Fw)jIV>;ydq#K__yX%0>1X{USf&e(ko@>i^tDv88Lma$SZ-wZ$ zdCV$X54L44d2&CUHyt0|HRH{QP2!op!i@P(nQ}ELG+ObdZh~@he1-emWt&{rrdP-^ z%vws?Bwl8t@Wo$$@H;DYS+ZQG3!32E7V0p0>k`YEsJLDd$z=>S`K{4wDp)K?>gI!# zDnWd{Os$)RL0wEZc;c*q%h$`BM`@wz8GhqOXtoU#!pAGq zR^psD9V^!zP*^VdyFdJWY;sW7Y3@5fYC~!p(~NK4d=6ONy_GD-vA36Rs~N>5S3hAY zHHIrVRO20VlbrqIN>$r>I$IF?(#)ZV;yKZ>#oRu!g+EGBFC;&tjTjUBm^F7&)Uxt^ zeIKktT;&pK1eyvZDB`l+5Ot+;u%$GBKgReZCvC(jN1#5KXV2bJQ7?l2UbKhuHW9$y zzI9&w{7LtG`wtE$mAac|a2VEEG{Ws-1mrUua($Wyy3c zmB6&d7uOcNI1IagCV(TAe7NsmNHjjQq|S5S=y&J)9li2Nmc1j7Sg&x)JUnaxj->_gfU*U+^@ppK;hVwE%H_vVPwdbw%=MQTcXd1k& zLjGvn!w}wzfl=uepa(kqA8J;Nd9|Nt}pA_s$lr9f%=Od-`m$z;MXAE#~S_IHaTmX=%)%Kys&&2 zsn-<>T>aoTO8w@bF92%Cf~S~!;^Pro>(KhnGQwMyUF{tjF~Ni3kwReiwrx*cSNza#;;`6ySUBa{sQBBut*rH;gLj3}{yE&8Xq;KE>#yZX zw;u?Ee=fHf*ZdF2k5S$agl(d$of|_R|IPEYd`xiH>{o59{##X}`#;!Q98HWZoc^E9 z#U*jTc8CBb^oA#7?GKR&Pk*s)>y#X~%qAwIJr@fUBALz0Gqa?WQpHj7`nRty_6sGR zV1@6rkx)rLZdf{#x|`#nAwnTNsH)lYbvSF!=iJ5stWplcdV2A~F}N%YrzroAc7~el zt16HX!~rX!ccBYQNM@$BUN8V3npf*l;FJ_=aPN)33UHYLCn<$A%<~`1Be-<*L-Zdu z5g}Wq>U^4z5@S(|C|CPM-(k30ruN|GpKw5S&)P7A2iC4pyKTu#dX3>t&5+#NRE^;F zyo)uboMxOR$h+<4IJOiV4G`m44KL9nQ5seoEuH09T2HZ?St}L2NLw=#o^zG} zY}2-_o+5k(LHs4{e}jO{FYzAe>H+Hnr;F*|$7*S}q7Y_jewCpMM#no|hQIk)mN4k9 zEh@{I&kK9_>9N6XGV)yz#CP-1(WM;zgkp2g+`eWI;b@N8sHLW>LLDt!x3*D!{}m1( zsvBss{Z19j?}Pu}r_99B*}~M~{|AE1(o6ks@If&rK`V9iFEWl^nwDyIdM+wXtzJce ziHV_knVDggxnB9-e@7sYHz+sEzfJuLsQ-s1Z44}I|MS}8f1)0Wahmxkdg&SI3Hn88 zIa;a-nJMM}g?|3;AE2U`oTgp?Xkuky?f7qq=L;RI^i&lHz*G$c;Mb7&zbdx>R~LT) z&hHzYy@}0qk4970crW?;>~AP?UpCxM(+Cg6KOP2XNrHfMJzEBNAlT{KGrPj0qeh+Q zTAh#W*lQ^6ZYpvmhaD=W5O~moILDxve=t|r~e+`ynCEW-c ziz;v@FHiM*rgKGoae$Y@7GeqAoZF-BbRuuk-Ng&JS=K=xV(X@DB<=-VVYiya+)4?%&c4xEZtqKSY<~#$FSdrs-dVGqwsRx@^0&>xV6M#cwA( z#=6Us7PumokGLY5XIzh)<01g-2+#t5oxJ0dPewk6pu_%2K*?ntaic7zibTlbnNu|% zjfEOBos2Nr{c%WK0VOVo3%tgSh1Z)1lQ42o{O9c2jDA<#$c|}!`m+kcmM?U+-ZRl3^g7W3_DqO|AXlcMDV$yG z8G{UHt?IyW#bw*SD&CdWay?AVUJQ5KwW;Resb$JB*a}oUOctk^_kr8sQq102W9$qs z*B^%cqRK&63mXTT-byqxQ52#_WO;)vCzp~uq@bzvnvBnl9t&unEq=mbi^*pP;;Z}6 zup)7EM^rq!^hc3e_wwx(Pp_hrzb28(ow{(~-RFZ8sgg_aFJh3sfty_}vmev+TwTzt z*lD?Pf?^wY-gw8rWjaKMmXYnElgsJm{j)wRLoEoq{O+HhSQe3m;Bd#dL~{{mboX$Es7p{o1zsc^m)Ih1nam>EN! zgNDX-J`^p=W6;nYKQ-*oO}iMd(slLRYY{RNPYdpGr>Z|s2c-pzUZ;6cF;P_KYn?w* zg)Sz?4kAj@|M5B*Go8N}E=(Ww;f=natbRT42slQXm{Cu9Q`m_vR`3i*U6f^JIp$rf z!2Vu$7glsf5q0e3-8S*{zaw3gPax4kO^84cv$81Bc(%sa)?xj(zFg3TnAVJqQ|?pD{S7^+boIj`HYST+c|sKTMYQGLsK{Ff9 zS8+L3N;RCIKM_8jbjRS9F4~O)fXp4egc@s@f#Q?YTXC2!z)i6IA2?8c$T}fFS2-$` zzP~Ae;-U`DjiEj0dyE(W^c^k~UCJj|Z=t?uZLxEa1R0eMJHG^ZASXc7K z2tdmsZb)@FCc#B^!Y!;7Keic2ScTcQeAU)uVB~g$c zq+TgO;0oZ6KfSM#4sZ@wU8*K@&9%XRkJbY!-fXo}#&8HLUqQ?dTn+(%{H{tRzj9!w zL!Njhl{-L+hzKf^zs%)nwMoe3b^gMs{5;60X;hyaNB5r{Ifx*{DAMhfjJy67<%y3?QF|;MJ+ad z+^rZxJ>lGi);C>(kz>a|Fdn(G53x{66X%wA3#Ev`S-NZ7?jc%q1oci5?CLEM_XW+k z?9Sf71J>K5HAcl8?b3on2g}g0d+Uh}&eI4lpTD}>-2pEz##+YM!98&XE6GZBe4By~ zwLXh)7LJP@VR@Zx=b$d8DJX#(a33;9@F5s@(pOSCP0D!?%tv>BmXDpx+TcQu;Cs>V z&vvSZKh6m7VUL=J5$4*z9XtBq4vHeed%W4-T~))teNpz12lA$y@mstFOkPLvpc%_ofK?*5sG@``t~7sWcIXf#SBWQ!K`b?ha1rH;Q*!CXGz_+UcdjQ1;jW`N6aqfq4-`|^Q zFP2;@BdCruJbd8gYMJsZ=Oy%)UR3HTDWI#90@gt04A=5Tjg#@2f>l_x(bXdzTD+k^ ziO3&h`&J;{2>wKOM~o$_vD!rvvf&0Zbi;>6BZyJjyasriUitoNg6hgc`F^4LqgI=7 zT4ao+0Ap@ci;v3c#3}rHYM@MQaNF|){e>qH=UpJLlpQl6c&K$ERbi6|ud(5pY9~`q zt5+a@)V3^6B8jx|L-H4_bu%DHPeVjqVCz?)PsgKyiijSatRk@KTZnvStwa>XY2?@! z^p@LO5oIT)KzcMF!{_DqkGJCW0>7%jCtLo;qs@z`G}kTDPU{ciR~*hrwz32|xl6^X{O7 zHmOlp_jck8Twt&$H$s1RLv#af7zrh3aRhEC2nF}C;3}|~@m(t|0crqBKx0q}GXli` zA-SLy=FIDPds>lwm31IY?2s;h^&j+cbphOR_Zm|FaxzzvyHb<|O}KJk)N2Y9@9aJz z@WSrEo$}kl*)WS^d^~8y$A+!lVQ((7=#M6u1Am!6DPM{!TZsSohjVFS!M8L;)Q)K0 zs5f)3HgkbLV(w~)RD0MDmcB0jN#Q;@Te0W4$xO1e@eypo? zAMV{v%9=cgQ6}p6J_N~gxr19a>sW@%Gc*!NNm2pz*HF*6xzxQ|q!Kdtws*;f4uj>< z9N)Oc!&p#TR-IZz5tpYow?rw_N{Aes_6R(j`%Jhj=NhzE0*a3Ib^&kk>0D#P!*O#J zy8CLJjq2$1O4=xaI*EEIr__#m%t@mvO4+NTM9oc6z5n(^-X!9z*nW%WuI447H zP+{jcVk(s70&dFkWYpIDzx{sXaxZ}*&dVdbPFYoyoYCp-MZ9Mos$w4LXA-bt>69?- zMm+YhhMp-!m1}qzYAJ#Hb?8xqUR;}EYBgb=z6QJHW0UEuusa#?27a5-%LVm_I3!sb zH*8U_)(4|t^4;faR!WP7@6SjJ4F`87UV-cOXmu}vv^6y7P~-}5!2-GC0Q)>r8HA8g zj>MY-vqGicU{+GE1AQ*%Wu$gj4tY6vR2RW@kw?L<>D?vdg?28ZdA&F3X5NLT?yH!+ z*i6Xa*+o*nzkBVEIy9zN$XCv1#wA#u>U23CZWh}n8E6|Q!t2YI13BT%B9f7M^=U~} zkR;>V^P)V3(^7LWLuW^sl6Wjbk(Hw6xCkB$h7Z7rPnDK4r4a?Z-sE?B2}Xa6O~eCvH)Bym|-)B8K5msD<-m|_hh`H&Ph zyGJ6!L;?2`sYNnj8E#~Ef-S7}0hsSDbd4my5w0UuBj*`@!|+La?PtS-P(|7hG_m3i z9t=_+xx!2CD%hw5#Q-Mo6RbG_+3#};PQbTEq%Q&U2HQq(kaFZt4MbJnm~Eb;3sHv$ z98ud1h=7@?0ShUh4&Vh*=(2gYb(CL^3tRUW7^h~ITOSp%2MoaQ@k+~|v7+w~Z7fAg zW;YuAjs`e``qNMc@V*vVMEWRM{*hZSRJea(N7pd-)JHAPIbg?Ilv#SnkR~^Rs@pIB zuNotndSYrNDRiF4HKc+pb|Lo`^?iWCbJ!&P?Inf$+#tK7eFq?OejlOzyJsivn#k)>2Wm4x8ib0(UU~&)31STz#n)#8+=85wKhUlhg1)2DkuM<<+}#Jv_i)-1MVDe=ksv z*hPHV1|^TDi*ZZm;N+gG*ZJqn5x0b7o`g46JC5o|xhtS9&FbVy(&-^rsN;qYSR%OGTa5_{w~!2c46& zo>}~2HOz4^iH{%sOP>#tzC_LKJhNWKW6xKuT=t$oExDgGIw;^(9}zo|-T5;!ONMrr zxdBy0I1k=ED3|_+>PTCNuGox|u;*4u*lHb(Ug%2Hw(TOIXJ*nJyalhUiSvVI3ao+06XbN2;0ZE zVKcJc^v=X_6&O(H&^Mn`&K9gP4hRyt!tZwy)pJep>YFTw^w|vyg`va3@G2SfL`n?J*X$dwVH2NIu`j9H5g` zINA8-XK{7vnL0(uyF>Fo`;8n^iJ}ho;OOR0~c%fP9gH`&KiG z%mBhH(l{*5fSOH#DnW2t?OV3x%(?+)7wyMoZ~#nrak4Y1hI0xTXd05(okg z!1}(~Y>{JKmTEP>S18S86FysfU1kt{u z?F|7SnOtojzxMzh;=L6f01)Euu|T~phtJr8uyq&#cksr@p`}K3yKFTc2;Mb@b&q{y z4Xvd8{%u{+R@HSS+pa?9jC$)2>W7~2sGjJB+Ki_^%%AQ`oDaw?@Sar7`fN9S%sORZ zT+uIPnNJj?69v%~aKj3LQ_9P*cThXC5wBSg;0_4qvXnD*mDlTm_x`9j^`Oc9TK(F@ zP0b;ob~5)ODqd{~2GqkM1r3&mRIFEMl{!0et!z{mG zAb@UMzxGZ7G<}B;806PoKOTUGU~m>LV?TgPaRl90Y@+A#$S-f}d`$uE#FvxK2FTz( zba$oo4M{wQVt)J+uG<#bYch)V2iLG!jlSivL2QZkc|0{oN^FTcM%BL7Y?qsqbj6}X zx$(c$@dRDFMY5)+W6SExW{SEEzn$J(jD?q0!9Uz%0jK8_dRmIol?&7x9WiZPQOR!W zo?bU{-lr#a<8rjY-@C)5X_kkf>OR&|Y z)r&84ny|ebZZ9ArAJQQD7%-G1ngAu*k+Ve)hTcQ`h8aN&(qOmF@M*o0t8RMHrvB{|yEh9<766LE|6Xi=6bN9uBCJ`5Jd;*qZ|X z-Fv1*-n`sk-kZl(X~0xZNCk!Ff~PS8$|c}oOQtz19iOKe$|th_nGZ|qq_GLxcdwco zGEod4vi~Vy%E70)slfDb4iug9(2nA1c>_xV3n)tXF2&)<)O6*?edj$&} zKEd_s_YbA{Gx%!0C@PwGpM1}Q;Qt4^j6rmC-U2vI$X29xAXPB^hFNk#nM+HmSD@`# zdGAmDO37fK{q|5|79H8J7_?`P#%;qUduM09o8B&wR)|b@>IU}bc!vSD+wmC`W^`a4 zmqF6V0nVX5Aw9a6ms~q9z(SC_r-$^{XBuKu%mI8dLK&UKwP1@_df&g9Hm+1H#FIH$ z*@t@zpC1sTAAY!x2pd1!7v_4xJ|UKTWJW{ry{a%7Wa@K(%l<{yzun&vY8Bx1P~n^$ z07rcyEEqaprv4ZLAV4I;4K6&1x&z?R;Pw&5s|o%{pcG=kRx4O2;IOB=XL1DiORR{{ z<+?Eagq?87rClhxq9gzsBs&Xto+YnCq<-RS6UI;T0Yb8YD%8XPgM+xRn+#RUp!U#* zG*DoIKT2+vc00ej71oP1z4Tsa-uyI(zNz4Dl)?_9ZC+KEE#*>yvE6QQA?ePiU2Rp& zSR-#303LxT6HU~~Y_F9*0C}c-`A4L4Ha&LUI2ox|(Qg!)ZEc6v8hmk3Z&0U-a1E0= zCvZ8i#Ea7g1|2_94yYC~3FPGy_VRBS_@93(RqS}{a}ZqjQyT*MT&c7T8IUAKFeHZc zpCCcIJLp3*1^{V2C($?aACZCcyMY6LA}5YYN|{x8GG3;uL*X|6{GpzwXr!DyT}&u2 z&)p%{tEljk1HTa6WveH6Ihkr~;Fh+`wydQ+8HiJBgOry~3-EkuSxK$lN)w<59XD?~ zGpE}MdneiJp#60UN!v*nxcN@%sW-j=ofA=Fla!O9m)6oQ?@a(k&%GG$6H_cd!`r$P z1sdhtKF~XPN7UxMalKqtEuLDt?>^MbpqsP77Ty~&&lqr`@Gw^Hj$Ej#q`N;9 zpNM>;wd`(c|CeWD+vspCB^$8)1Ni*(ra)0?!%cNP{q3fVUUih(joG8tyM7le^qc3N zI!?k!$>e=(c?b&NDeidmVMG{h1=Begd z#%uf!OHt4Ev2^01%zg&)EZ1B-WUG{?X$52AipTw3ZPG zfg_H`)O=TC0Iv2<+2~FWeysXbxH!j4i()eJeXZ9xEBy@dYI&;5bke&af^44rT0mGc z7<&kbK2LrO5)&5$TA$^f^n$L!F(a6#DR%fNksA{o3V9Q%V#x(bX;{@+kM}|d5zp49 z2X{^fQ0${@y~xJfcfXehaaD^W=T+L5ad_19Rg188Q<{Yq1JW#O*>`Ow4Whu)m#gBs zc-*Uq$2jE2GfNK*_-4lb8Kl{)N9m8v!H3o4x?S~=UG6=;!IfV7q+aB6RoN$i8%abT z)|6z@cF~~?c@cw*@0&rn-pBS2xY5)>lahY_Z90tQq-T<_GSW zl^E_P9Iw$`Cg5y7b!;6B$ybg#Ttl6ygG7&0TLbGu=IB~>8^-v?sSU+}-UjF^AOc{v z2C38JXQ-ya4T^0)CV)r(5-T7bks2D}u$2^!KDmA4D%o;oBlsaZYK;uB#}W)dv*7MZ z3i%p~Ai>&#{mQw&qrx6CDL2o%w55aApMi$=EOoYQxi&u|i?+eIb(oD-E=f`=AHybn zA1AXuQFpc77p-~MpQ0JquYIQ~jlIA=I7Ohy{|hrf%)c>$zd2aUZr`kKAWMBv2c&KK zHCcCEH67@~x?O36_nmb+W>?VoREnL-x1S(?`=kC_wqFIUzV`2I?XSEARZVf$7I2YL zh1KfKTfUV+n)xmqvylA>0c=w>yisC55dita-u@coSAo2TwDBu>SvV}lqTc_}SRQnQ zGZnd7zS-MgcHZhp^IVZ!IiUBQHF9l(O6$jXdhz!DXH{U)@2vlC-^`jC_O>!tC^`Jm z;9K%Nz#uqq{HKRX;9sT(bn7#e4kzXxgb4a;MikiHP2)GM-yLg4!3aY=+mS@I8X;QJ z1JZh|-98^&Ns9RKvS6a<*QXnt$c-47ZD@=KM`_jjR`uG2WqK^b+Kr+Z2^Aik<1xh{ z{8X`#nMyMpovZl?;QnZPxf>eH9fA2_o85*(V^WE!^?D|;Ti$z#>>1!t342RAFwn88 z1BI~MljtOSln@dJR^3CnxgJwVf#b*>ke--Gn5lCK_5#5nkH<3Hmq$<799&s}nvkSR za=KQx{$+XCOnhK_tETS&@?36#J1{x3Ob~f(Mqi<$vBKt3MVqhSA z@hcPl#M6QU_^9Nyws2ve*TIcW5Jm6Ew z0{(W@f0f7seYGk~MBqncRI_6z5ZgtLkmN%RGDB&E{H0qAmQX!6SE0RN<-Pl#xxwGAg&L7FkI!rWrq#+@YXYV?a_AE?OC7!?+W)EX4@3aR zaq5>OAf?s}xgcDl+dz#2J&z|Vm{Zg{xjx;BWqyzX&iC;VB$qK{(odbOB0kAk^ zRv{k%C?|F>5ctUYGXVa8T9e=za<#Z=z%J0=kN_|WO|0%V8t+hIr65tf`tC8d`tbz$ zrULNWKnFC1UbE}KM+n{qI-nsGv%3Ejx^_?SHKH97t7(qCQvklM|IcVI1@m$nAZH`4r$EAotTIs_*JQcVoSU_SeLDWz43f_n>i|{e>xqSf!f2Tp884#LY2FHl7Z{@_0VUs{Cm&W-w4m5?dW-nz(5Qam2%~8 z9EPStp}a+5jNjrb{fKjQbIgS*2_5l0zJJ+4kH$pZk5SR=g}&);$2y?5Xr7-Ap;qveMIbPqr{X#T8|fD(UE+ zNCQS;%kXAxINjFbJ8Qf&DryU3pey@GV|uj!%~YEzMw5c~;&7KmQEo*}xsm+Ovj+3j$gKLXGGiiwcDW=X-j5NQ%f~259uA~ljCACON8}8*&1ZNP zQAf-Caog6fcWs$0lsxlC>D{TeWUy|AbX0`>VFl*T%oi6Vnp)8T8iR z+Sl{Z=B+z%3#9Y)lJL)>Ix2U_Cn$ZHo{6!!bM4E#V3rtg78zbQ#4$wdYdc?aZEPBU z@4ZgNvTV%`xt+FT6qoypnO>nzcWkezYwU4jw0n!kaN#ybFDqxVp7n)qpOwU_=~=YJ zLh1R6Y&`qQRyVRDF7YLjpi7$^t!xRU5WucKR8u2a!SP-OK9ANf>(ZZYTV;>-*T%u` zXFcv-LtPzRZon83rA*e{+ZHP!khc`q736}7%m&Vf}2ao*C?X-PqU4aTrN*mUui+09%&I#B@ zG}P+&ceZ$auKm`%7?P&_Tj25+eg1?m-?#ru_Zlcjl34SQXs|k?t02SPxk^CfeeB!~ z-=SJ6*ug*;(!WF(pykka+B8P2nh>n*0Fs#CotjOr2~`Y$hG4}T3SXUQgjls}0@nZE zNz4FVv%8sa-Rn$Zt0xUGhG15Sng**B#-r7W2HG}#r)904G_uBBadbs9>}|uRZ__<| z>ti5N@ptYvz&+$I-D@dW(FNiE%Dt9;ap;hVrS?I=9hMY8+A z1sd(HefZ+5bSi%5B`Y7wDO;5jxK~HdhU|bZr=CsA1Dso0$_+&qcEL4y#MSJaU{;3b ztry*_z2)#P+5^(UW5|h*&M&4rTnZYBbUEP$n|3FP6Ds$Z5l>$|;{LpFN|nHchGX#c z`JDZd?5aq}q)Y&+jc!z(ax2L+A-z0j8V4ta8^$L6@U+b=N$$hvFN-}9%SgX&y?Csz zM2UEp;N}FvIK)@cOXnPWCQ=SbR8o^^meg^#goA#36jDoduUGCL>SpVc0e%YlLQyn* zd(j6G+0;#+7Hzc%4}*}=0g9*tx(|SQz2|rNr4xHeJo!iJ=+kBau7_%!aVM55vkkhm8i(NBLN{`N~#uUl>NFN zv>S@@Lf1z_w1H`4iXnUdeDZ$ipwpf!UFXrMG%>3iG*>#5H82~Vv@lXcF3$tPv5xbhK7SL8sUd%4-;5Bpj6 zg44wwYwu-K-1|_<bN7Kb3{?O3^8?vO9~7^EIh&spGWI^GmJ| zQNA%kt=mBNyzi!oS+MJLksX&w35^wb>Pnws`d;9VOMRocQ3vKw>5H%&r|i`D8a~Y=W|=u7ejIyUoj#m2=01aX7r}FQZ2DX9OsBi zE^a-2O#!EY7n73yO>m_c zvykbyJx&cOK4y)>Iv)#h*UF7a$B%?jG%pRh+{2=e9(TIhq!dc{f*yLuDY?P-sp%2g zl5fRDzAg6_j-v85Nyk~}uiEyG>GfGYmI0(I==G3GrsrxgNn!U%gr6F^ZyMp&`7`by zgT-dJlP`M)yl>d8gS(mmFGqHktkZf^n!B<{Ry zmyDtG(KgF&lN~h}Jt@*nP`NrksRaXx#x`x*>Nut9-LC_=kqcwX+-qwZF9k9^ef?3- z91f2NVkAuRyt6^Bb(mfFR~k+94iY5%5VD1v9#tkiT(%cdw4U?^ag!lLr$vmrjnapR z#Q9d(43iw(=HYt2oSSTWP5YsS!ozgQoG0lYXX?_q_Zjp0DFBbTJ?jEJD3@&m#p`7-Qm<~ zwXbOe|AaE3Z$BOj*9bp>uD&~9ZX~+;0)TAM$m-Ao?gWNjGtT38?K=TIdS|;M?+*p8 zM5XJwENcQfz4E2i(f`X7HYt2lrt4o(rv1M|ncmyrzfvampHimPSpN{^KzJ`Jb+Wz_ z<+mTp%0FiF{SL6d66L>~4fOqVzMl=CM87*{h5tBbMOn{T;UQM%7h5`Uvq{ZpJWm#Q zp^r&2jj;6~;?$rbSGtn&E8cf*13&7mRwC{z?&Y|H1(8M|XHiaUatTT7iD}8}<@BrN zE4kH$*B_YSRH8nz6A_t3FCFezKFKEZAv0?NQup928Iq(8U@Hh!B6+T9$oMG`vbDHW$b2`4B`S$c;&Lkcshkg8l+%SANutQ?%Ip-Y4DIc_cc-e<> zrd-{N3S8XCbIl{AgjRCylaSG>47`oJ1D&tGa3C4D)D&{6XnTMb?glN2Ye^_QcTS2X+8a~zyA$KWAJamp z?&)LO)*Cy?UX{I{w-F+VdvPFJsl;0?^2@C@>g0%)ua2V^ZLdRs9rY7u1X!Q>xJk*& zQGXIMDZVmqO!mGN&4uTfWyZ2d0mBDI@i+a&e5pwK!~`R2ASokKt>4qf#u^Xm7Id2^ zhif)<_~gY#HkkeNz}xcC%*$(b$-bW-j9|Etc5qO6e|d5G0x z4-X-CJX})o9vz=A7E$s$%s+fYm}%sZVhmj}-GrNc;6Wy0k=Eui(8D#Iu*GwZ^iz2z zIDSHnQ^TPv(_1$5)3{uox%S42q*7!d!cAMs;lH^1H| z_&2+L5~#0rYwvG8ntvr_5@+5f5x!_Ru!d*wH)TTK1Pl}=@R~=to=yPT|Mf8d z>N{of^;Zmv`iVj9^->I>&p-jsj#mRaRBO0BDmcvpoF$O$WzDnt?##Hoz{aNMOm&DI zZmRJZA^B@OMBpSLM3KRl>31&Sce}~*ud)^>)X@Wz;XZfSt=S0BdPPNA3)b+vz5L-` ziKF^XrTpez;i{=D>tD^hA!qwBCX0B2zR%MzVCB2R_A*tx#k227u45~={;}*qr zmvlJfWtu}Pk3if!rpH8PbqeFm;N8_KAGodE^q1B;k{j&RE{=yVOQ}7iI>_*s+PaD0 z8&Gqu6K0>0Wkg?43#=OK+?)vd%*GU09jgO<#nNVPXfjbC2JKeIcu(B8a_>FoO-4sG zlq}@&5Tz{UW3}dFx^h4-s775!{2B>1^*GVDZy5xmz;nY-p?c`SiAQB29a>LY{6#-0 z{8*(7J3dePZ*~y;m{tjW+C9nm^;Dw0K1L;rKZGFD6mS0NRHE|ZePK%Py8a9g(E4)x zxVzH+;~|=fGOEW>d$I6CILfM=!||RaPcyTYuL(09v_7g|GmSVf*pE-7{l`o8^~j?? ztrO5^{D+r9njQF%ylifp&Znl^m0fOIaY{YbQRljAM(gTiV%(QCRbefgF&Xkebnq_F zwVCZpqTws5+0e0MaKjd(#irbwNCOuRE2SupaaOZ1!=4}LD-kOJdUBCw(M}6wbnr0s z+-sy&n4Kr4>X2Z}$UFbMbDY;V0>52cp}B-YZ1Y~4STNT*=Plj6x+=^}6apWH#-)cn zJt?2ID@Em{iba=}yh;moXoW|@Voku>va%)n>~wz4^Hb#17CBqW;nfyUg$nphB4Ffr z3@i$pUrw1lYKlkDd3ubSWY}~M0tx44IF-jGBY96o0^D_n0_!f*3xnGFQZSCvW}We3 zMMK0LZ80n$Za08Kzd(14h=dX=Y73jDG8y;A;}aI&Qe0X$$7SL~E=nLDtyU zx@SM#MezCqNv{M0Tyl+)z0)nobj^BP=S;2p3&B;_0|MdoyhHMx3jx&NU%4hQ01WO_ z{INa1@%3W)CGKy3!hIexP0?4m=+mpvE!Q6GTDq-iiQmEY4;#n7Pn3gxpD8EyD*r7? zReeA3zc|2qSN)3n0OxPhSx^^s(cZi2Kgyza8MGFvd-~@yaJ8S#z%^oraXiO(Ml+`d z4)R0!l2?2@eeMLAZ3Fsl!(vPaw4 z-&rv}pEyK#H3$h)+>}Y>fC>O{pEYV^VW2dKJ-xhsaJ#rfXf!6RpzKZ(y|+sWsm{X7 zh6TjdZd97s(R9oy&vEPniktRRFW53*EaVGln9u}NaU|$Wi7K`vPWfO{@wR+w><7W}} zL^P#?lib;Bbbho?3z|ZStPEt@-yY8*12^L4a!;;G!X?y3@;G)|B08TB*Wr?j`XhT`}0tqp$dFY9;he_;7<(hvd7Gaery9`*`;7DothKJES8ujFu@1uJhHmgQ7s zPl3M{mt_r?tqe2b*^=j`>BUXbp$g?H4{NQ0)+3&jz3~8y)A)<0vU+D3%Tk|QxzPh} zBKS9lB1}U<$6i213CO`1%PUc~vJmw$@Mc!;!5uvFTy9*Chw_|53of>-?R;69A)n{g zT^t>_DwvX<0V)D2s`u*+$_BsSkO;L}MgH?U673H;5rX3iR#k%S1=2zY(K%mht*EeSAx5@73^+!8oNmg$ZUt$M7c0$w-`o z`&i+|Yu;>ARgwG8WST7S#w<9qpB;W~53L;@o-95UnfrHECg^i%`gd0*=yPfMyDL+c z>10>&tC0HTLDIj?5h^;}>QV}>pU1l#UvE%)SG=boWZMNG+o}y z<^4n6Xiu4?&Ko$^A0oA-c|9G%)0w%ZG(_=?`MPTqyC87bd(OS@t5bX3+C{7%(IYwB z+UO$Lk#4}Z;h|&(f`RpoAf>uYQwuSmXrH@#Q%$z|(Z92c#%K0rqWbf5?~>OVoiYVK z*i9YDwXkucy_Mmi2ms-j}))A)_I#W>g}aF&?G4yS?teky03F(U-hqAK3)z2(2du7FeYeFR($=s zrzF2WM%%ftFpE;%g19%jR-BK}^{%6vzjK(>&(!K2y!x4{{d30m+djXeZ$E{*Q2LkL zjd&k_M1|`Pl$2hNL0IES=<10C(aN|<&_^Pv0$E9yiRG| zVDjde(Yp#K-l?!}yNIIRzexdGSt6jN0kLMrM)>O2(Bxlow{ArN;@hDOJg47&d5-h< zsW~6Ng#ezQAASwN4=dy!-oy{TZJ_$Djr7N_B*@hAgKBB-vzm24s}$_>%tO%av+Pa3 zRMGmjo%Xcw#V0VJ!>Q^msUDWHX;*Ng(bSDM@C=LW3Y$@Xa| z?sCHAPR&W(Xf|bDc)@-kHhV53-NOWE$NV5;1yIX9lH1(=L?WKFjL+I` zo7^_k*vRc9JTdhkOWQo&24=7&2ta(EORa9aTQx-6zG|EO{(+30f8V~k+ETjiD6pB&;;&z{4X((=#+ZJ|R1iH0n1Myx8d=Oep#*!jBRFNN?1pUI?PfRGi<}12sHiO}4-#R6SA`LR7-f_*3$?Nzfd*g(Ss;ZRkcmBu&s8jbAZIgjVZMDQ3w zByKpLg)QL;E{~owXuF(qfqJx(;l3*Ba(y(;hJMV>K7U>I&V2LCgvjse0(v_4LSwR* zp=QZ3hr{RHC9FO4m?MMAJw2f&>3W-IPCJ6H&1D2>f41a@qNcThX7k0D0G(T2Cq-cT z(utUJ7j9C!SD@LZs72mK#iC&_tk0TW72H8_z=ux`a7vx$eYrWevGa{~$|GPE-KTQ| z{k$WW|6q-O?A-k!0;UJKe59}9xEyrTqB;SESX%duPPT%D`^HuLg{!h(H2&6>lnzfZ zdM_~0&nwK|U0|S}SD0@L%;UF9+ecVUz>m@mO(Cx8AI)8gPop*X8_zVni>QHzZR9;w z2<^QuVR*Mc9gLSH$b4)UZqCI0%h43pRkY;}W!pmAvI&k>jCQJ%Ilo}OahWhn+1KgG zJP3L>TiYDv#+Wk*Pu*;I{_xc7@`4w8@Z3VFw7nmi3#LAK&(d@(vR(96NH{~-#Ae94 z!y~TklEa>5jH`&EJ4bx$dDI*<`$66lN62w5$1*rLNDvK!DtI429K3m2+Dk8eL&i;NtS&IPO(k;PK-$q~m6%1w|TlC&6v=4L$hGZyqP44=H(E3+UU z7o5DnJxp+0ju2n_*x$H{BS3Y?;=HhZy2B0OHs-;r2{$EUy-E{uJ`8pFQn)Gh>jA5B zdKn`;ta(>LvvG6xt|!=s9=T}A4msy}_qg0LOnwxY>-))FO@{-jDEL$KUF|d}F-l7C zk*_eBvljVz-};Q#Ff)V)XLBFT$3yivoHgN$j3_HL2L3c(ds9J=&)Al$tnQn7l0*Fq|6UA(d6477$>~e?vE?PM&`LV-`=Z04!xc~QQ8TN0`vfuRi zEiJ=-+#5vEzf44WCk|n62FBp)u~}=bG_&rqN#CbR;_uucGF>B4(XUS)LDF^C4}!lL z5xvISnD=fTK&yge-6R~ryYT%xJh1m(AHe!3VhzsG#P811qTg}1XiXym#EW=S#^60- z60U_{GBCCNFF~#GI50zu+7ZF(yy5Y>RharX{v>?6g2>9u)?gp9R$;_n(K7jN@;s+F zf6%hX`#(X;mY-6r4HYG+zEnp) zygZ~w2BRb5-(2%@Ycf$k!u)lSn?XU1K+7^Ae{c|*RU=T221EB81rQ@DPV1iieB zs^a2vnS~RhaZ)4QLl${54}zzZ!Kn16fQfOThxlv(wLjxTJq7`xYvUH!HL9{9!!Vs5 zLK1L;5aJls9PbIC&RvHUcloAH#PO8MPeHQMJORQn^-luot8m@us417EVcCYB-`t!& zobPhGWwOsoW-|=E5m(!Es>qGmL>Ju#)h3hESt3>J8N)2!J1t~Ai~EXJKtLtHmz1(R3SaAV73mW8HmM0FHo1g zoaslkI#7E{rr0Pw4eHRum1O#aSB9Mrlz2p5C%UFO(`oJcTH#)+a|2jcK3Z ziK6j8tAR|lk1F{5yKV=3QMhB!kFrt5NTRPwqO<+qVzP3t&GB@Ic{IKKUZUHa`KkbX zmJVl$-2y&AXa(--V3;J@t8cz5Vqox9VN2K|pGE_Lz%`)lr~3Pv-03$_*YZn=eS5WQ z2){ZHDYNtP#iaX*Sv*Gr_ZFjc(!l*LLdSjrF^kUUA1k97??}$?N^4s4;jr@2hdjgD z3`8q^{zkO=9M1l!_O_E?wovT45(H6DjoNvTt3A?bz35L`rY5K>uUZ3jwsW0q&X%Ru_H!YN1N}4w`xNUMgB;WiSdo5SFyY=@Yd{1(Tk* zh*!n-F{2^bgbNh+%~L#PkJvmeI%S4s*f4B(zYMC65kN_b<>HjVC1M^{A&*2qdR7!( zuMz*iOVZ3C;$g)3K=~O9;+$uDtxy|v(Tb^|%J=}RqWjE_&g|WrOL$5POH&MX#vp}x z2GbD?u18Ucj{|Xs1vD@-=b9Nw#I}(X7Z)@H?|`#F;8i~R-mBCi3hE|77AKtn72^Cz zLyQp!mo^3`mxeL52EHvv)O(J%UO5j&@k%yakgKdZ&G!{*n+ihDTY6_{FO&$Z@X`BN zF7B+4cFRth>mixT63$MDL0*Z~GSxbD6#zBuTqR^*ILJ?EjomSWJAQ2cWtma`|4g3M z)el#h?^5q?$@RT6%(iv?Y`(XD_gIvrp&vur|Jmu^qujq)_)91G>p}RpwEGs~;=vvt zZee7I?G&x_t-G2K`|#q`Nsa=K9N~s@yn!A5HSU zZ>pCYXmb__X7&$S<*FIY@^|^z7iRg62EF^cCbN^oMj&>u9}sAVFN3>U-v{H>S+~?# z<*vKfIrhQ9|M?i;+`qoHe|u-Z?{4jPclN9ADe!yaQ+6GW*b#)`7xD5*8^5Wc8z^V+ zdGs%%O05~so{+=aL? z?*tl!v@heO3~)+dPvBGKE}dO-lZUfPZX!II1dChN^;)<@za=z6&6rM3$+`A;jWQG@ z_JN@1Q%C{oa42DqU?nQi`pd>7Sgbnd^U0%1{2&Us z@830l$=OhVMtSLlXIV@~$VCZ4yA+B_q$n4EmWJOvDO8>(~9 ziZbweh~q-)wx{tIQW@uic05}yF+fxQfJ5kLUz7@WH*kx6SZ4F}`?TF5NcQJ)i0SW+2{do8%FE zIFZ30bL}68ekr8<-MUX$`C-i;@Ki_wjO+-1lQN`49NE z4cq<`-;RIX)k289aDvCXo*78&?J5e~B~><%L6W_JwPDgOyav4uJkWhQY@Z7YHr)E1 zy4tq)llxK-*~>D~TfTKW8GK8>kn#R92(|+YvES8RXxR->p`En^zO~8`Wale`*xr@f z&fQ=H!uDR+&W!#?!w^n-k8*!9k{Izz7BY?fvS|yZ#b1DZWBs;k3%8v-;L7|E@f3zxy6qeA6-DU)^ z*1FpVXH+5!)Qfx5xldl(VBlzD@D!+H9qU)CP}|hV@1%Vto>5AdjtTe5FMi-hX4%fRauF_*Fu42YI(P-ROn7;#){vevG zVuN9TMON3b9C;b_6Z=B%&;={nj%XuPJiQ1gcQc#8U10=`4Bx&LckbTjPk?N^B`gwd zZZ0dr+}lyU^zqGjFan)Lb|N;ZerRR-e(~B8joTb1)o+wu^)0On{6_rC_|EfXv#VtG zZ0|^x<=*GN^jm`zTwcrzhu4MKS%csD0%Eh=E`2j>|K zQ_8vLhelsUetsM!ZVJ%Fa91CusOKuYnw~mK#?d*wj5FD8J9<138i&h=BY<$c6oqVj zk3G;>mFug%l@!h>DQ&FxwVF=oYZ*i6yoe7pK`)%b;}M&5&4rK~hM73vq&-j!EXy*c z<6!D?J)s`ha)OvF_4vm%mqdn*JTbV)Ej;yp$T{6m=LaJ>HW&daIAE1{vTo^GrLDf< zzY>DqA|{*w-N=0Lxp*fO~XjlaTx|G0S%y02~4164{2 z=h!$3_g-i5b_vIcv=%3Yt+QBF-Tcrf^Vv5S2Bcx-?f{Ik5cy6?)bPn5deWMd$hdk^_94f4|| z_72(OOXOl1Ap6CdVwXz!Qwn9UPVQUt6OHQA7>QctA@-YKb*?vDvG@{D*-w4)&^gI@ z=+fB@w(qg~VVrc^ssD9#_g(cpG_0E7tbB*S#qfaJe&ugsVs9<6zjtE#KGOVBH;ml5 zvw+6Y;5(mMZ}a;gcU!fU$F^*c`8RJ5_`CP_Z{8m8ckl1tyglH@_xEd3_BT11Co?#8 z3QZh9$VBbT1lH-XBMD#c+4(6MP-JLi?z-qbzF7 z_D#g%)Phd|saseXOpRzgNnAaG!2*J*E=!)V=p=mNSK*MEeSI5vB*5?zOd1IVdR|m7 z^3_O_N$T1K$%jc%*U7(F$@ze^hrC#uh>8>&f0gyCc~CUTvr<3MugLc=MgYjBqG{~1 zP<0mbHDVPxdV>e^(mkbn9@{t z(?8z&jrm9y`7cQfz(;7u+xk^y1UMzke8t$B3EQ~SD)@}aC$)i4xwJa^IfG@WV2|ji z$pZyx6%h$gFMUCA@NS_-~~@^#9MwlRt#^4=#w~V^u_Xf)|>%*^7_we*MBke`<~Zo-)2>_kHl8PW9ZPi z0$=COVRBut5by^P9}m{#zgEz9iq%Gh%xw~a@JAVUSsJ+5p6AW^1W#ubl;aNl7#x)o-KnjAn($@O zsU(__XH38W)zsc}=0zWuY%Yc~NA>w+ZV!N0rOUXV68D zae8HPBPtoxqvoQ%TwDL(B{c6~9VUCOdLhBm(H210302$z7tz1A9Vf!cVBDZ%SgCf# zZArQAjnA9m>d*wbvV3;!EK^1ask(buz*a5xT*(#HjOdY*~y+TJ&dh+5`>ZuDxoCl{pHSbm-Y&X_2Lj{q`hb=FL30UEl>L(;btyM7`||Q zc7VCnkDu&$eON^RM;ow%M_)Y_{tK;n1Bm&@(SG$JhuG42pp3vsGCG&@Y73LEXX$F` z1pivNn-7!d9>d8e|9x+83?6Bb zRPi5H66H->wONr2e8GEw_ofm74SJ*nyb+bG4iPPJKuSg(#fbiIDdxl zYx3c$ik44o+Xef-V_OIObkeuNti(zGHYJ_`?Ji+kPP}dq41c7=d%5_BWB0Fb{rjB* z|I=Ileh%>8-ukxRWxsDhUf=1i^ex>*)Zu=>U7= zPl7kdCWo-VvI&m#J9=HXX<}--PP)MtIOG`FJgKr+I^7{8BIKB7FQsCZH(k^Qv=d31@?SVu6;CnL0j zHG*Co%k{N{tt?Z1NJ!inNl-SJ7PD{bfiF+MPeUiPbHM#IDE!m)ytTxW25v|yZ(kaF z@LA@zrMGQZQ$q;Ho$soj7AWeSp1)Ue6np1+eV)Ss|2Cfe9XtcSwST6a_<|NO7?pt? z2t$xwRwwR5+KU1UO1jo9Wo4WY;7mx#s>aE-b8|T^xCB^2mnIUfc3w;<<~`}Ixg3@i zF;BHfR<}cQRxh^~4NJllV>kySk7w~Z-oO(|`239nkL=uAhJEZ{IX)MzMbkqj4KO+hJ5%#(AQS zRY*XQzq^HiX`Ru^_WkPs+mt<;z4Yiy<`jDrSq)aNPFFGgy^?~C8Rc7Eg%t%_=7Xn# zanjb}Vl~=iVNj&-9^hOrvh*-7jbADuFOfOa|+{X<;Y>_fU;zI!v3x6 zmcAvdQ}Sr)r1^V)sh`33-=FjyTCJd%gXRyx_!&`A7=#g!07;P8{z1Sfgi#a)K`4k} zI0h3Sj+0+ISZolu3tXZ*y6q5*?WR>5*lp03B0IDt(4GWG=-W{$`4Vcpk2>< zOQ(Z3XjABWzz=-uGvRwVdwU9hKSjQEn0Bd%-`ZH=?`cJ9Pi;2{Psm;9a#!+9_t8KY z-DN!YHE%174QGR7S0E?fjaKY!SwXxL4#`1?m(Y%PgfCx zd}oZNIrI6>qop9x66!0SB1a#AUjXf9ul%gC=y$oJ#(*h!_v70cpg)>N{cX_xEz4b0 zYj>~USM{#0D)dfre?2w>mtV8oQ}o)<@%e2-Q)Muob}h`XhN`gnt3wm;+obhh>Wl-l z+*VJ0RoljClVhqoP_1mZEAUxEQmL((YxbKkz5}+;x+PW^qU2S2+x?2;;)%}a zG6hTXPpc$#$PlJJI9B!J7_Cw~%1=wS@iS3Pjfz^7br)W0+Km=Vj{|Tzj?JPf;}F60 zD5p`p&&?-Q58+mx@Ts1UE}^CuTn$mMFYZLd&#@V8`Lhg-ejmWV-7yZM$@Go&WX6`F zX<^%Cy#QSW_i(Z=9ixhl`+|6AZYLS*gf!r_IDl?>?nb6Hy?|;!FE!2$Ez-r)c#1+{htmBCVY@zo^8Xl`dWxCJC4w`ck zOi}1D7T6^w963oZ9v+1io!ILIYqp>ZJ%iCP@|P!OiVEPF(8%BgpR&mFX1XsAW0PZY zatmRaib5NQB%m%hVqARhoO_5CED15rPDq@eMt^NZfX@`yD%dM|AvN(SGdiWw`ZLko zxT`T*nHfm&TpHKa4gI^$C2XU5S`z*==L0ocxdyoHfft=ndpWE#p5%b>YQ1uMZ}xez zGW9J6GO$st$obah-;3fTVFST{_qp| zQ&f{H1xAQ^W~O=Io74qMZ_(qnFPydyoul)1-z-EXvm0d#IO#pa#HLxwFUQKvV31mp znL87z)hocwx&3~^k7sFfYU?G!5>Y6A99y5^-SkKBF!zN=Jqv-3q zk|>N?x9A`(gdOBkIZ;LnqK_*qFX_mTDss;c_IfApiF|RhB?bC*GLMMkF1U5~=lcU{Je%}vAS_YHk`pH+1pU)i3c^u-EC`A`)SMwAivS}F~?!wI-X3bJB)4%DS`S- zx;&Hm3z(X*eolHY=GHAjzpmViHYP@8pyy2oi30@i{W&+x3%%0$(+d;1M=y7oA!_%U zHsV4bRyf@v%6SgW_#6n>S*d20<*e`^hNZuKTY!c;6zU)=FOTD8adxUEO{J*r9vGSc*dR0Jj#+7Q$c62ZL^VxDmi(N%Q?+8 zJFQJpv+b$Ywc&X|&YdZ_=jT#d_ZN!VVY33maGh&Y)7?~-T0>G1M!B*+b1SbZX&hX8 zaolVKM~dK6YnX?_!zZpWP3t%T8IOodfV0YRTV69E^s_mXVd`nmsH>`LY-(ME>B}LV zS#S&2q6odxPqev9*73pLG#*+w^+{Ji=XpbVx&C|QOs>d^JuLcz-i|$z_z#Ku9K_TA zeD((}K)fA`wqsuq4*u5{`yPh<&4qrV77!4I5)eTlCrE_bib2X5S%e=!K~cGKJ!Iqya9 zAsp4b?&3J#2y`PKIC1wbF|Z7?Oa4T)U2fSS|Kt4OxAMqtfXII+Z+;g+U-_Sp-I?ku zXR`n5wtu{9;D2)4-|u?o0sMu!^&29<$mOn%@jC6E1(77;?BMcd7Z4F3Z@W@ISvqCX zm~zT9?o!ZjU)q%==a;kdQY2H^Ql6B}7Vd=fmr_|245=)a697p-w!e5~@-9HlNpL)@ z31Tg6`=t8AA}+UDOq+#s#e?#KQ`GY{$#kG2<}evF@u}8YAr>IV+rVW9U^XW1&Ru+% zCB0*jT?Rbiph0^YDwAuz=WNkkR3QEc9fiW2!N+kP7r4VRP{OZTIItNnBgq(k3C^X^nkaPtc>aDXB+~0Daq{`Xa}cvlw8f z$bE@u#64KB?0sh-;H5gieRpJ$SCAbmBfK7Q!NKP|6~y?mhbX|GUMOF>ll-H-8Ne{c z3CER*lF#St&W|_m*>sB#lQ1H2>tC!m|FRbNVexO-+--)F$l*May0%0}S61gE64jxn zJ`EO#9p#xHrUi8(Ft&9!BBRf z;f_0qcNJb>zeQyR^J)U5n2!xt+XAA@k+c>>eLE}7A?r?O{5+HYjlAV2RDEN>{qMo^ ze{!L}0O!va`I(PLp&MvY7)4ST45A=HpcDp?2u$I~2AwE|A}Ib9XcE+3e-Eg)h4x!| z2nqJy{04hl{*R`6R~~)y=r$yRzpiEMI7sfJMcb+PTXX0`b|`$KXN>QBauod5jDXXf zPDj1fm5|@j@%C3FcM`y^QjPAfPLMn84#wY&du->8?@0Q7Hhe2#Z@0SL_O9I&@5|yh z4}nPcHOSj1bh~Cm>=2AY{|K6oH)wvg5UwmYWp>A~#zV+s=OH`3D4Ji^GMN1T7HHD5 z_=!I8kLdGBOZ#4u0It>#!}{N)s(;i_`r()=@Lw5<-gdUsH$&0akFU1(RDTd-87%(8 zQM}yOc<(jX9SC9YC2@4}>Ba^coex*e5!>fb|9_=IiQcE2celhtv8)zK z`kSI$SR}bFfl?9qS+A;r0a%k$Xf^W&)5BuH^Q|Xh zMjcxf(vK*R#SU?|v*Tz?t!WlTq_ruZ>_16X(-d~q?9c$L^H`J0r4U{dR}m5g+P7Jpzx5lKY(BO0=i;x{{=R^(J|hk9 zB>p8ShY{i%o-&7vl|C{HO59Rvm#cT=hX=3${`ibt@i8b40CD};*n>>Qj*dbX@Lpf=3!a9fu;p@f=ztE! z+*4`8vJNr3!?sF#I1xij2XIs*`2<{=>Q)wkw}pIC&!rQo`IyIq$wSZd)xigY*$Y5T zfZlEgnlEiOxh@78y-Uh1y@J!x=uI89<^PsoPqdPpOlVNqR)G$vgAJFbJ6cbfG z-Kerxjusa4j>c<;fH66S*Aig2KNG>i6iZO231YE6y*z4~Hy=?Uy}Ar^QBb+4VF&q+ z9meSY04T*G%Rdskpox+{c>DhVX8td)`4{;7?e%^{QUt>g6a+y6MVgie-r(PeMk#W_Ltuf9NImw{}D)EdjY(M zKY^6)Uy)q5=d1kOw(MqklwK8otq(o?-vZKMR=#V@Eb@=gCT)*fi9f9oVlTVV#Lj9v z*~Jeq_0ds)-yq8U=mDX=emORW+%GC-ZwFJ0wmuz9`5!T{dV1>*st_;ry1^;}oa^_Z z`@ZNKpZ%e-pRy3ePoKg5_%j>*(B%LO+xrX*ejN_`+u1NRR5ABb0|&|^FcTcrK1?x> zKQ0kinW6tuhKpTsM$>MI-EgA1u4G@YbF$ni*6Wmtajb`h$d&_Kv=P)5Ls@yS%BEQ9 zY}M3tV%^fsSLtH+v47Sssh9aBzj&2!IH>LbuZ4-uVa3Y43cT2yvD4}7w56RkVylIe z7G)(h-COi_8WGiaY6BUShTk_20i;i-mLG}M!XaL%H^=~_601BfVXih?C-x#Ed8OFY z?TJ-jbX#7BS_K0p56VEiT(=Lza+T8yggVlW$Hdop1jtv$Vf33ZvfH*foiN=i3OYZL zGQ6c7=NKi2R_VFo!PXW#!G2tM7So!yB!|G@Mh_Xl4=?5kqvxAdpe8wd8xGU%TlDpX zg~MOj=fIcr^D}>#;gUO?DUps%PtIG3eo}Xzowy$zJ9ooQ;BOcIcDRg=ge-6oEs20; zT_ivABzqA<>6W5Oo%GWyTjG+w+N7Y6$iwFyN7vFmIr0wFjFqb1o@klm+*!g`AW?}B zg)}UR!%Fh63|u*4T^J?RcJ->^kw(I;c0P6Wa*>)QD-?v`P{`Fx!P_oN`NOR3ZvZ@U<2PR$Gh-da$GVjMBn zd$5D)23MrJ>t~ujCFml0W@)>NDKy^1wyZN#JjBv3_-Nu0>&K`9Q!O(z@z7{DPkUwD!~M=-Z(`{(8dC)!6NSAPkZqicuRdq9BYyC{7YM zh>}}+NnjKPzH6U$14y*@$5Udjrh>>`_zaS_O%l8tGJXY!#78$A z-CN-VykqH>K~nIC*Y?}Xh}{Y6XdO?3s{ zT$&TJ1P+u(P5D__)va>YRvJ;QXx6N6mDP`9uzKH;3G0SAcbfVYl7-uyH@@vvJ0weQ zBo&zSAUG_asB06SM$>Oemz?fLXfT;?U{5uW>%ejv6s z*pjwf3i8wDf9wkL8N zb!VYvMjzPWlrA?F${Ag>c+@+bktG-ak#NpB5p$07oMpuyOKIYxXBVqjfh-i3B!|O| zG={@6l=&Pv9^Ll^RgFk}v=3Ev0|8NpyZLfrQ7{>fY!>;|?bCwj&aq5keHKJ{cBcq# z&_rjvqSC{+2JfFT>^~)bD58!CIp_+#CP=84OH-rw$JDA)IrH0}*pqyT_Cgf6Zhy~D zFOmEw}F1xL}Gh$;GzukLZyKv ze9CE!(*=W0r}LGQm23%TJusGeo~lsjK#7f*slRFk&Rn&b!A<9Qgd}x-+F}2Swr*937Eq$bZm{H!TUGctbd&%^z6Sb>qfNuxFw>;H{s{F3eLH#4P znLD=KKc$FRNTFoTr=)zD)LZ2H2nNHRXGIEf!9Lbkep22+L#9Ubb}X z7B%*|=Q81fzD_G`f9gGRrD54WloX{?_T95@%gM@B<)ke~lU}<0U4~;n#_xW9FU|g7 zfc-Qo{7$W0W3N+M+ub}p*Vxjk+jrTf>Z|b6;F>*Gaf>$}s@jEw)^KSQ)3cG?iUZfGh%YNo^(ftH>%pTs z@K`Zvf!*g(Q*#b>O=T>XJGxdBlFWSbgsO;@TfD}JZ3j)VSx{TONZawW~)Kv6@(^~m{N8NKy#F9pZz^mw$ ze!;0oK~C(etxC~YUhdfUtL3OtbHtp?N}%g`(Sj#&>Z3A8DgUgiukmnPZl@U_7=MAx zaL`XT>`HOu(a59gMR0M-32GFKpJQ7+qtHW0-lp&U1FnhJr63@eE~1MTa6ph;ul1|! z$D(r4!;Px3<4jlJ_mqoOH{kkB4O9Ox>;19d`KvahYBob)5NA=u;lt@%ith2n*jetC z*YC&!d;vXop;*Gx%tXCGJQcx1^v8jFt<-s*>#Q=F7^N!T(4+%r;S^Am&n#w+Ixi_v z%(QXZWdRZmmPx3Yp_>LCtz;UwVeoVh*o0)(2qQGtLlIw3E7Hkr`XW9BZxYp;MgUT_YdwLy8Ia(Gm=ig&(45=Hm&SHK{L$12ye2Hr0yoi}As5KbiBT~?=7dw*XY6iDj>gcHA!e5K zX&Q%(yC)CMB;95H8JejtoDUYb+#LtR-Q{H?VgCxf7SKb|_Kj7dn#2jRUW?~x`-}(v zo~5A@dJ56OtY+P=|6ZbLE{0);ia&&QAG4wV_<#Noc6*UOpP+?b<(mHGIiFKJU#|Zt zp+eAIi44PVhy-zJgCO!tj`6l7Z~N}H8Sl+CXir9va3_ZBS=Bq$*>>xc+(j$41cXAq zMi_E0I&SDezD1jm4~PoiH9U0BU3QK!w)e@9H&#*aq9RP}9kQfv8RSis*X>M6DT&)qbqYS!5u+dBW*35YKttt%( zw!GyAR}Byrj2Oc2*%(G*!EF0>{>e+>BuM2p#NkxvgO~Elu{(46HGASr?&pH$4T-x5 z(cWky@h4F=z7>4lIh=0+Ki;YVQ|}>(t4WU%A1&MG!%BbYNq*~~W$z9e3%pxs8BaeB z)-!E~lFQ|1Z`0$cyb@(6N6RCRb6IBjr6+wmVXqwK$|`g%mRmoTVN-E^E(uRI?h9fgx zyKIVKsCEqNsj$uf9}BrjjJwVhJguY}eJCMcT5mCaxQ9ItBsEQL;bN*Bwj3qnk70>a zHz_=i%5gM!?zB|B3XjqwRqoHJ4=c8B^)4n)w?}Nh7C8pgx_2vBwP3Od6U!%Zt5aUK zA|FhvY20MH9m*CJ`xTgzK^N9CEa5GnTHa1vh8^M&P`Tu)Jk8|9X~`+yu4+G_Wi{n; z5@NYMDUAiMJ2rqy-tlo)wXd{W$O>9x_bfBsg?cyXp zbg=9_mK)gJMDY^N+D&aadL|_&KiCnH7ZXk`z)2|eF1c}BQ|NM$vm_mzy@I~_Yb6}| zl3VF3n$+PWNjh}rJLlf<^ijg1Y{aEjy%azoVAMS!NyKqMH+UJuV$zSkb1L|VJzOO4 ztb-S?OI3zmbZ5iB4P}67JFIwg7vmE)+s9BRBQP zd)Rp}UiJ2e^B?QLf2OF9UG=87KJfZixc)c&NoTRQ+@&|Fn~S4*dZ81+PjK$hkUIL8 z{^Y*+tF^$s*vP)AZ*$~)v1o$Hsw{V}jC1AR0v+c&J^bX9XL#9nyItUn$WlS5h z-}&+xef<8{{rCSa_M2Z%7{5u(Y=Q$QW{_k+&`6%vSbVoB+nlqbNvt+{O29)JJHd3( zb0?i%OTuLwY>tI6v)DnevMpoQft&XbZ`|pL-nxUpQk@felrQlQ6xDgGP{ezKWJIR; zUYI4+IeQe$_B~RiSGg9B8Uz@iL+Wu}Ov|puu6(YiIUG=0zYHh5MiDh8X-`kpGQn?! z1d5i7vv$y=><#WM=nM}m3xsn|@IxV*OJp1jbbMjzu^Goyu16C#afLK2!H__^50m2* z8LV-BH3;(59~Cln%?B zydpndsvF+QudZ&70YDJSe31`g$Vd<0rS03D4`h{^R8zZ(=<9M{E?mr??&8U5Pa1eY zPp9j8E&a43wc~{%d-7?Ss0aL`_?`(0q_;V7V33#cB1QlT?z3w>Z(%Uu#x}i_!#Pz}x-hkE>$kGX4Xn=fk3uE7S0e@I3e+#9 zGAJ+9Up>C-fOCvji53ZP-6!UXA$mbuQYKy}xJW#hd1yEAyluSsC1Nd9B<};{jM4U6 zG^WNpJr6VBt31;@8>JO`j~kAjcabJDyqDJ}k7`B;E&_I;(369o`}@GDA|MixX}eRJiKB0g`1|I%GYAr&^0 zA=}Sq{1~)h1PCG|0%8aR5g0{b_?H#$-3SE#PXO(CJrVCo_Vyr+_Eb9p_X;zCy{T2? zPE&%uj@h>4JP7uN?T7YqlI(=wDBRggI}JJ6qqW^9INj6x6x@5ZTWko$d+qt_m@Ryp z5To&4fe*tyYzu?EuN>mUD*K|8WCUFLbuYF8@7{mhJMkZkPbKmszXH2$_A{##_ zLeMYO`!R|F_VPg}`c+i?5Gj3jap^^~XjEM#P^;cu++UB)fbq***nfLBz)wNlS9kLd zaoheOvftyj*F_LhN<-B&LYMT;)i<4d9TQSJ#CjBV=R0n%qWyZ-3d-3yifW)b0jCvA z7Zq!H^@Kk1l2cwBeimzvdKOr4u521oKp1#>wv+pdS7*z9(|#`27o2Lh3A$WazM^?oZrgT$>OIRQ;b+ZA^X zyelMH4#Pe=S;QqRxSj4@(LOOZ5F^B|6mj*NCwMP2!b5N{!yhx%++UFh;IyR>aQn(B ziyo)?7P({Np9{FWb!-CPo~qEQl+Qh@BwSYSJix(8AuhpU9_&+|_#=?WDu3=4Hnf87 z#hpqK4LEjrfZDY~7u&sDLq^0cHmyS}@9BVlnmO*ScVECubda`Bj_k7Rt%}LfpBv<{mGRptsGn!AgOMF8MpiN zIw3Br7ktbjN5=caQolHZNLfVv^g=D@!o|xIi8vjjOOl+ z=T-KXxb3U8!1u*}6Sr}H7q;P$_X+W=a;2w6fmU;$oG`8K0n$D|NFxDZu%K`jJz z>2abVLlw;9<;fHT%6r(1BMA>-GV=~_WHBlY9_p<&o|wM!WWo~>>Qp+7pFT!38hC+Q z9{L@%x9DTZ*6S11&C1C+S1-#gY551^`m@uO?WoB@B)_e8rASe&FicFC@o)OpC zK1B#Cr8z`TT#ektLoJT8i#t~URuGha_!9_o@pTK{UKTv+O`i&RCzfuxKHGDo)+JZf zXlfpr*YT+}QO~|6XgOn--Up;1;h)A++cJtHVY=B0I|SwMJVAlUP<4z{^?3t<1Adz1 zFep_{EP7A%o%?(WIH4ecz^JxwAa$r_=lDv>@@5k^=r&qJT;83#$N9m9p>c>&FPb2r z&h-I15EP2#sT$GPfZZ(#g#6y@F9}6(Ia*%pTeT)?Mol&k#q7f-U91z9p3n)fddgjJ zapk-e0+Gm8$BM585YuCS%m(hLXts?u2XlBnomX^PE{Z0tCrj6)F}NStrw2;G6em~L zc+RiWfx+j_lldc{tDVc!Fr~6bu}gfW)%qvnB|)ngRk&9Nq#A!}IyTF?qF#Cp^Sj6C zdeVLT5qOn%0CGC7!Ql$0L3H3Ri-c+>ja^x)pERB6H9VNAB6_N_b$Etc#@|W*K&09l zg^b|J;duc@LA`;Q*Zb(gQ4!HIR1pL@F<^90DCPQK9U5DQu7FwW-`mRxN&C@-`6Lwl zR;2cG=`Nh}OCa~ZxXh=x-M_rVPxL>Sphy_TF$~%QDGEmr7)2n21aTC>DH7VA-2VMl z@V7-s@H=?=81e$iz23G5RmdJf#o)Jya66LV{|Ub~uS4D(2?*NTM^N}?N|0~S8~AMy z@@6*d(&_Qumf2pAdcVRJ1ya8w(r-`4*!vuOuLVNzn{^TH0qCxb2kl*<-QG)i*EYDu-2Gw)fuscY8RFY5mj@qByV&Wa+&;IeyAvrwpdiR7Z{L}etdoGv%hWx6EW*#=MTwL-uh-U%hb9;IefYwuL4 zx2Z9&0z!>bGKw%nWsIC;+>N~!NYXw|EgBcEX(CQc5pfHaTH~SZe4)}W35U@*avnCD zkWPmbIa4)(`Oum3-KVI+q9ziXSnQ4+a8u8XTgg)iKOP4W!&FL^(M5U#% zx(gV)VwK-E(;MS8oDT$Z+M~S zPMgUMgvXTYo#a4wuAB4b`nb9K*IC{cTVB$2Uz;np^IMqOPfIGon*xU3^JnYt!<33V zwITOVzkk9Hr3zkk5w=P5>bhFD$=6ekxLK?)dOXWy5h{_?^wY3y;Ur*fd)K@YngPW}3wbrrD$=)zRH1568@Z_(g6MN3}#E(mVe?2Yx7{amYSE<|{}2?S-$h zaNonvha|gDJ*)fj%=Z6C{?ETq7$*PvZo~iiOX_cbMQ>m=XX#&$d-hk~HLo84^Z&!s zcn93iPvKj5B^d%`kOf8=6vn_Gf+SHevxZSLMIk7I!wmc>ye7KHSY9E5Tu{s$dzYV7!Uu(KtXkoCa+*hFK+aRv#5I0VNJ9 z{ulkTei$%!MZrkh^1cP-ljStl>IubwTFHW~7zxTQ%sK)WqhOEB+B0J)@P>F*tX)oi zIckoteKH($>gX7-37KEg>&4aFWc(@{uZxuDy#$ZSrX9m?4V}5);-AUJU!A{8czsvd zP^>;UrEq9}=*9IKAH4I^bLbOYIA?)Ybfw$BI59efmjqp&uSNWe8aCMQxtFzzDySn+ zodu?mWr|tNyIkkmSZkS=Dt}-y8Tw|Cp7chQna2{ue{|@ewMEyxpXN94`OOUWHoDa+^+$D{EmB!s;>tgVY z&uy&>#k@f;_KU%Hkbbo=RCy?_=y=B#zeM?+u#i$dL`vy-rH% zr|;4^X3eqC&-CX1J{=&+-_E6ToJINY=?L9u>X1F*>0Dl}!&8?@Bvswdq%XgWnrD{6 z+LU1p&v_*M+=T?6ke|H2c^ECy*S@pCGJB-)h_#PdZ6ava zJ~ZaCqm*f9DA-{)nK@bU*%Gf&z)_M{DW?oSsf22uUWtJu)@_f>I*vax>19S@9tN_| zZrOxUEA|9U$HXTSCrF;1nqYG-RkU|?C?={hw9kg-dP5y#1GX@BjQI6AQY(Z~hhEKX&+*{OZ{-_P6s_ zSpQ**-;FQ+|9qbB0my%Hj^9-QFc_mq97jlsAZeJO845;7Fkp`_Pf#QRBRKIXZ6}F= z_IE135pKE}+4zAQJ<1-XsTlpkRB+>Ai!>>d2OSaFf!;7oL{u-C8 z{U4h7BK*6=Uim7Z6RrFmKqSS#c)_K=4pU%2f}|c_s{s1V>Z*_-55r#dYJHaP)aT>$ zOPKQd#Qxfv!#XOe(H?*TBty^2-+k?YNx?&2>lfJ;9$RANuC# z?~>!QDsf2APM6^I_pJZNq#t_E`rlYb?l&ofA0o@`v-k{1OLFF=eb)xvinnyKwZmf*GGCVU@FNEBW+nPYQGUSd-Fhe zV^xQ$>+QCu>6R2z<-rxnU$2+*ey+C_;l$_RNMu@;e0|0S;V5u@cQL>GXJ1eN)sXB*MJDYw01<>V#v@-DC9Obcaj%B8cUql!AKaho$trJE$ zk7X~47T6sPYs9A5KOt=v=YN<}adu)qp3uV)<*vbD#;(}zJUmZ1dO4jd!Ib1gZEXf(?ib1i==g_>t5WOcPGZFSkU2y9UkXuYDD-fk(}S`Azx&QS4Z+u zap$j+U%)GT%|kwDTW@cLuD5wmU2TIZ$?j! zs%oU=4rQ^8r1@o@uaY6z!iiD(!*PEX)2OF>{rdat6X1)NeHkZNU0T0=qQ71G+Zsgt zNI&`g&Au}c|JdXQB|L_qD0~S&5R^bEilS+ZL@8nkMsSoQX%dAo^iwT@1k82-bMDp4 z636vQ9t zsAPQWnAa$w-^ihL*2Y5nB$32twt>f|S+=@89yN!Dv(>0%sWkNrl%iKTC zMdo{RenKUc;vM?t;$7wWyNSb1G&FhhWQ5`jg^zZF2gWmKUOPA+&ps;8I44@BHKy^C z#~<4|yWlc;IoEPGq0F->3C32g&f8?s?KWEL!(bmW;@x(wm#6)c?t6$iY!I!?(UeF#yv5H zEXIrI_p)i(uuUt^xZAYHEWA$WMUiWW5+XNJF4*OubV9Y^vd11t`uN$mj|0taV;DJa zAKjj|css!{V`fO^bb!^iiyHV*a5hArpSp`p3O`4Z&_)-2m-xDrbKx^%@eMM1TIS$9 z-b-GqJZ|?7?nLMCTwAlw0$*pqN)XvV#Uxf;e*U<~iW+M=Ke&niM5_n-kyK&UdsKS% z;x;Ez8@mbHJk?ANiA<6nb#~oB&H)3vc{Q*rpk44SFzTc7OA8`r6zOgu#Jtr7v9Uq;*X<7149hxnKoi5K)swK>Eqb_*HUrld%9kToG zQ9K59x^6Kgc^s6yjVD_5%o`z9)dNW`w+ngcr*jJl#QDJ=gy+`pj;+=2>dff6*K?=W z7PUL*xU+Ll7dB{>TX=TsFc0KB>@-(O*=HBNjyA*}Un&`qhkPTBjF4`&N$^4|G_#ga zJ~nU#8&r6!AGYQ(JTP)7bB*27wYm>p!59%w3&PYvc|2qS@egKy72t66@V&1^@#y#) zE!2AAI_Z?H6Lxt}Li|47%KmAG4Ae};s=x#9O%_;sW2hBYamXGa1l zSPX#)gdlJfLy;vVr)0$o660A5A^ap3a0pb`G2%es2eCOAmd^L45Q`57w{Xdb}p01Xb_ zx1{6?z5!#M7C*i=*Z0 zem$%CT*2^bV}8k{s*6#(Rp00gcU0+PeZ73%nBV{BVE9!(Zb3Ea3s%|R7_5F*w+B7< zGpyArzUH{~88qgB;LaIY(oA58v;WgGf_^-u-#Mc{shU4^n+k67Qy^43s4|b2XLiY~M%!W1jQEclv+SNHXQ@P9=h@LHC1-mqFE*rhsY@lyo;95( zFQ@Wp<{m*?Nf{z7Hsh;B?{xWL-YeggwFiDAknN@FPVo8BWE!ENwxL|D{H*V~65(_weIG1n7!z8q zOoxK*((HEoV|C)N`s(hGQ}=Y!4NZ85+m0`bSiCg51704Me6xa2$F9aM!dF*Uc!Y|u z|1DeBKhxFOGa{$$xcpoRD2x;AW4@Qlt)1`fSrg26t%5=0?<2I2*skY&Sw+9Mbxpo} z;?lQI+*`7U=*sdzdebQYr)%HkC8{#HqE5W!Ur^j<|H0|KmWz_jBP(-91VfeU17uW? zYXt%|mGsLno>5adlFVE8-bpHv+!#Sm(wm5{JebodELq^P*}b0PODJ3OoICL*>3HE{$QDgrkTQ{IhB)HS^M%n`NG0G_ zK+4NjOgHy|*DJ!d4Sj0_F5UXu0X; zlo3l}7d&+Risi1)C0_PI!BQW)JweBoxzBe;b=pSpe#|XHNmZ=0d^+)eUyH}k48iyZ zHro3e*uM@{TMb$Iqd?EUvx5)So`2lES)!WWRt*O35fmD?dmP$34g0Lg0AhJcKahW|xVjeUDm2He zRqZ9qO9>z-2drXOO@nv^IY4zwfglg{Q{kQj$O)w+fb0BCiZ1_Ggn=sc0_oYB*&+z2 zXMbG_8*0NVD%e$oaNPX`U-ss4o_;~_&~X>Y!b|Bl3Fz1`9mT%X^M+V z_poJNp&&*YSG?n!Wx|Z^z}9gcO%^E@eo6~M)n~zSpa@LQI%ZSeFw<&NhO?cB* zhrUqYfHUlC$xXjf;8dCW0euy-7GsTjyIh{rYzx~pz@Z1sJ?KDKFOrumLH1sn#lAH- zO;Zua)Cv5ljj`QXv-(kH-^Cy#!GVz@WQjC@;lh!dVOd$4V{T! zWWC#AuVRXVYZ=mzN!&f3${zYo*&wpo%3>59H&1Sp%ci$^+_M5bpqM&FZS3J zqd6_wYJ*|7(*@d~>0o9pZN%^k^;MpZ<^Jg7SZAnDd@!nA|CAq+Csc-5AFn5SCp1@! zytBw&p0D<40}0NiQ{tPm+>66Szupal@m$`NLN{`Bksj&@lM!AF;hx%azBF-|t`I>V ziZ@tv62gGGy{Fy|_m+7Vo5f{g`4AnxZ)%$d-|!F9dGvJBVy_N=QDZ{Un~M+qSP}l` z0RnFKM#`f_&}P>JvVe|zmMrVCPZeu4D*6fFc%|+8%sEE&@{PjJte-kdWd8PDfxabT zE^mIt|IlVXUaG9!1~Hi?#DG-~<)j9Xof--u8cVFV-Cdu4KV*!T^O7CrohM|{oe@aw zj2YIUIEYS>PBG0N4OvvL9Le!__6eyx!&QWm*rHF5Y4{B-@m`}@V^fKi~o_J{$JVQ zJFfrc&b|Y9gj|wd23ay;lmT+@%kKsADS{v|nxqjFr>W(MPs_t=4|)ONB?V4k(1~79 z6G_(!D*_6`3<>51muz$a)Sqa+Q#e4_1%DH4b(>r88v{x4l9J*vkh=xk^aL=>NgQ~| z0{eCXj4dYF&un7}0M$!Su;j(dewQ?siq`W?fanEqaHoI;9%r-gaz-!CiO~sJsbQT~I6R>p&e{VQUX6!$efL-T(OXreWi3*?b=^sR!0jbJ z{qSLhzIw<8z*BSjt}VQz%xlK{(H7>aAI}*2(^LNOjG;e0rOaXxvB5eg6xh*$lynLS2Seu%t==`;N#`!M3Gw0XL*_p$5ZCms_GkF%g0KR znhRxOPL4kN2YYNB^wvPFtY2)_-yELwJUrTy?{|1OwU09@`xbX{k{i2y$`^(b%Wa() zw`(WfT(sfb*+%Y%PJ+1NCf>ypVtUA&vNh*R zj^IK=;}px;$_`_3=o%1@`zu9TNh!EYE3ebdD{YnD$9^Q;efD~^sc7bp2RPvSo2aP| z!TFj}Cm^LZzt4twaeU=V1OSr(+Gp4Oz;}n6#A;EheP*TtaX)iYk<>4#vvttK^Jsw% zp=ija|9$2R#h{LiGWP`2?_aR^z`OsB6|kd7)(^p`#i!YY7uST-C#Il4hnVouj48tt8uyt>H#&Alx$Jhud$e}%@oY)(D=x9e6g#irhO zno5g2|DUJRf4-9+QtE%$!FQ&y2tm;(y&x4^BZ#I5o-iU!cHuJKow2>t3Be|3q_kJp&itjQJ0mminP0lH0Lnygyr6}!N=h25WN z((+PpqSDN^AZf5~!KFivje6kj1jj0y6K?kBBL{Pwu|%~!ylcj}NHd4rVA+2EbcH~? zqtz7D(iPr8Np9^KzBGp;sVXwQjd}XXdrf@t?gx$Ns&Phl8^6C()WP8%?aH_Q(b@}1 zqGSn9TDl9dtLf%>qgiT7bWZjg|#-nD)8%a>EY|XmNPNVH8nX?NgTa;es zmJvI*^a;sA#=2W7RSgzt>)4t`nIMKarMGl?5PIKZTH8p2-%pqf)po?ceAUkO+3P#& zDVcri=e@rMW{UdD>sA%z@YfgmF0p;vUg{rR`nH~mUE1I7e_O!+-#pIy8vl!9e7nFe z3p+y76h%`Af?){3EXz4e!vsMv2tuP6fzufBX;u{{V7!Mwz_@Hg0dfi;u#jNDXjxO2 zrIA|I#L-ov{3nWiOV)y-pt+Z=4ZZA5T#r}>byt%ui~%)MoCLpP7&Il9UBW=6PE|-NIKo$+403>xJNb`WD z76rs;^IxjJ2sBvWhxTKEHyz|PZLOPvOG2J2_Fi)G_Gi@Js{Xt7iYUB&9|6sUL(-j# zdWZ0I{$^#o1GVvIqBJiE7MY81Gqfs{DNeZ}~TLhbFWCX1}GFtE~B32^G>oxzrISy=G@!u->MK=a1(I-H|{E z^~VM#kOur(`CS%k<>QFXH?`GCvrUv4v(xSpq9v^IWxcoA*McgDW~-yh1_Ja(;cbq# zr@NNT$uZ_VLixSw3m!AC1oh6EU5vXAhcV{;{U>O7(AcO){N1-JL7w+`oHqrweGNA< zb*|6qmR=?ChM=(!cvHdNYh>%W8U#FnnOkDcmz7ZB4iQ84D=^pA+nP7Sy>!ow#g+y9Bl7bFdt7_qwYrx=mmG zF1j|svTENmG&pH`+D012J>Y=c=Q*J{+EFfd%ro4+Ca>Db1%!*Va_7q>^Dg2Bwv8&q z3JImU{bO@9%zi4>Ltt{&?$BM9G$h~PsH2TuGuf}PydVPu;T&cidO04MvS%pNm&s|o zTY<|nL-DWy4fabp6%j{g{yP;2`W=0h`>1bjbwuBl&cb$PJCyQ9jdz#wVvf+a6rSH= z@Q9CcJ3f^7b|gmEm>~P8^&E+(t&?ei6Gj`a*@6ySWuuQT&hTTMHguM$-^ zm>DX#Cp}~C?&fC{%7-W72r6m1Ol;BHo`0d}#I3@b>gaTcFmjoynvf1d30&RRW6waZ#$@o{2yK^_Qr41?-y(|5eBKNG13v9$#*~ z{Zz+RFn`ps4ecdB1+==gNhYw37|G3$`3xMLv~OHNG>w1nhoM9XSf-Ew7&SrwT6xH_ zRE_$ZBKnWdjk@rO-N+K%LtpS$<6Wzde1wQG>ypf0oj}-eRKMg2UEGR)o3?=dp~|O5 zM`ec$(X1xDcU#w#w))PClY46kRrCNSf8yDiGdhQgD(9Gp`57}P&;u`P^P@RbBiHUVxns?8?Mr21$ zDn7O^W^2B%28W;JgrD49JQsLX!>9=%82pkC+TkEyw{=asVsI{mE^!A3b$K<%b{6H` zTb89{`nu=6$G*mcU`m?fOo%EMqtNbNG`GUr4@O!aj)o>R`sQ@JTXIozR=dyDTRn|E za>0&0>9cYEb=qPai}?HiPC&80dx#)Eu#M@o=D=Iwvrt~{;7Lr=6Bs9sP{@8!+>+qY z$Ju{)vs@Z`6aDsM3_iuszxy#RiZi<%<{Dzn?an^_Y)V#?d7qbUR+cv+_;9TSN|u}d z<}>=WU00e~cJ36^yl%@Ll{0dCWQFa%LG-If4ACYM0w! z%FN)pT=B42%)Q6T9tlE!IqL@@WI2K%j*dOz04dIDgC3jFCP!$1&35Et_J+7)S3fO<~mCCYPqJRI^Zd_)zKQ#{c&C|hI8Yh?C^9QHN`&e(64$iROov>1x;^Q=5G0zIYq z=F}v-@AKR11CCFRjT0XJ$bdO}4ELnW{&KP=JNNB}oCOf_{M(DH401!~f589kEO~bU z$+{uC{pca`-`w$s!^lr}`rS||{b^ZnZCl|H5P4s44yIT7=$dcg6p(k%VIaAVtmQ(O z{(Mw}0DuTKg#rH*S*J3H6y&1Io`CMuDj2l@C`F`^jqBe_T#hAsNUG>{BriFe?A=3uc*gds(wToL0f8*a z_jtq&{iy*wQAm|OrY4%WTkC1{vi!U!fzeNP`r$kROs>AQ)dKSytLO4JwpzqnrEhtz z{`+M>;5z=3%YeXj{3n+IttG+bGX7vt^2U=If~)t7bP!#rjA&XkOd_7W)V@+cxmj=A z4vtZ~mRqj9>>F0?oeT5i1W57fFmeun|WZp*=Vne!qCn;n?-1HXHvqDgv9B6mTm0VNX zgo8&#ST3_w(c{tH&IpGK=+MzmnXj}l-1Z4%UY`;Y<;RHK_=F*qtrC{6okSxb3AjjR zxsg-;5e*Harc-@kUep}1v*Xpxon!o7frcqUY<#<4pkY^%cV}?P`Fyf4JgSQ)t;|xWnf7Zg^ZB5qmEN2x zb*Oe;YzOxKa^4IU;)tK!{c)LN|D2~!K-Jtfu{Ht=nq?Z~^!~z(oEPFL~ICK;Kp{jc;C9 zr4oM3?S6l=k9_abO}=Y`(HKF&7)sGN!H_gcQxs0)82NeU3k6~U3&hbB=oyjBYBanO zII;*#{4G!B>*(Nub=l|Bh(r#A3o-&=WV||`P&B}?CDj9jR0>oz@zt9#ApzK+F<_}; z`10SMX(Etd4l&IE-DJrtGiEK+t{UBdYRUl8DDXOo0I)8wmPP>67I=+QFetK|JhkF> zwmLte7#Jp5l3k1e1l8!*5Z8mkX#Y_dJuKgE@QV|0|9WtXPo=SqSqwBT_$Ueu3b*N7IyO@CV#UShZ=RS_Uw$A>Oql1G( z>(T#!h`G@!`e|8aSRS{ut`iW&A78_CQ|kUSiJj5PQE#HeYdIq;N@v2#y%@!K14RrZ z_YWfGq~1hBun8}m{1!T zH5x}WPX<~YV$3sI^aUx0p%}&Rz~yEyd?JLfUt!NgXrI+{tY=~3zZt4ehU55~bP!T*N4eqWQCbLpI6DOZkFq`S|jT>sq>B#v&}F z9XvGf>vEp_G)PSD1lK;~9}r)&c7~V~C4SJXvww<*eWV&1;r$-OEr?V;x}qGTHIGV` zJc{rC*Z=j`k_oSRLD_Mye#xvp=V^QkeE*G|y~E)z-}@~xqBKL0FikI@NMQs*GbBO4 z7)&gy9kD!t0^?-r(>Xz zCKw8NeA?G+|E000slI30@cF~x@mEt6&^ksTh%eB5d}CmyZ!N$dp3@}!2O(kWq}kdC zspgl;7wKuitHyufcZ_2hdfWlBzb2+XmB#rp z6!EDI1@x_d*t-n{Zo5aS$Kp!Rk&s3Q1%pYaMN{}iyELl9uTd8`-|+@+@HQGJ*>u}!aPEn^4n^umug8=a5a5lAZG^ib0LRGE28qD7D zmf9*iYL8m`s&VFs^s_C$=gv42@&kN&Hd_Z}(hRXnm-iJk@Wr8cYS;-9!rsx4qZQ;0 ziKHohC;FKgd3i1oy%DPC)tGSi#P3fWFSxdXi4F{x4b|8hdMW}HfgG;8hk1CLOuwYg ziG$piFID-#I zX^*qU**$VdGvw0YnqPYOY{6Xk#8muVhj)Fu31JU5eDivX@|=b4g(YQ;$=+^+!`x0C zo)>gKEA}S3MzPn6xWuC<>CffaR$cZD&ky*?)Yj0Tchksu1)E(+*BUd_WL_}QJ}Ovp~ii449XXft;@^U2 z%`rn}+nw9iLMfc8ut#d4@^r*%UqpAtF0Xy+3F4B>zFB}?HM#hn;>zJm#u|3?L$-HC zBaMMH`Ahq8HnMlS6J2risR$KTvjIme0|@ggbaFH{2ym-4uE_2Z1*`O+KAUl+U z5&0VG5^-mxW7uu??cFvNOYX1J)i*Nk&|6Fs$dh(Gb#2^@{WTmJojo>%1T_T14dGYID+v^x#Gt5{ygPGRo# zj2W7ZThxX18a>VGyyuvD)9r2#VGf^gLwa-yhx#v0JOz9H#&4nGl4E3zk(sCDKr$>CNn+uQb3X^A1s3y0R{=f%b?9<0#6Q97W zy7ed$G7dH}RcND?NBh1jH&{4^d_u)o9W7aVz-(@^-jWdUX!c~o?*&wLl!rRVnL0Lt zZ=XyOV(&2E%(lR^Pe539q;zrB2B@27F9Mq#4rn-|j?FOs0L?a&rf!&}&kR8_t>vEy(n9 z39Dx*Sz@SOR^)>jG$Mf!flpR=Z5=NcbQY`)Iz#dWsct>G{ zX#FC*b_P~;PHPApFRCGqy^3>Z`df6G&5Zz+y17x+6K2=&tvkY3zG!r^S8y>Lf3v7z z{NKqEP}!=igOKdwv1J&}Up)JLIQNTpzQ<}mzVuxIo8MJW_#5aLq`7qW7!mXHT% zL^FWnnkQgvG=5WRc$MFj@ z`2f?{)#?>=xpBZqTlR)$pl^-?N3dU3Dhv>URUgf2S!DxB>RA5sM)m!N4qvl7YL@s$ zms|~3%Nj&YF5D3l)7`T#*jYXJ@>eJgwR88LSzF5l)Y(O+*3tSnz9VXthTo7a=faz(l2tO>a<+pN%dcU7y~4Y}5= z(QY2+_~BzZb>K3-@QCWL7x^$Yn907g`Q4$}Sw9IGR&DM?3R!7@&yJ7Y?~2)}(*F9e zU#vH#HL?k(gFGy;U`Z0JTJ*xK?R9~;@C%B&y`3R3LY_^?V5v|W? z??ibrndy>zA2!PU2K!mwUWo&#Lc0_xcP}j&98uwf2$nBA(<|2Gs?G4^oLa!62OZrv z6Upx8y{^KU5Qj!)56R}4ob?f^w%rn9jn1_r?G{O$^Y${17tzr2HVzT&($r;kqV(D6 z3om5IEG@Z8JrG_LdIBpnI>bE4(LWPAOR|C!ychoazC!==myG@B3ItH&3uBo6>-$%J zSO56`i{t;PlhJzY@2e3s%pfp9kqm><1PQ#17#fFZ0)-idB50Z*m{0u{Vgi5@h65N& z7%+8-uYGBp1}$75D!3AYQydI{z@LjiEEvaRt79a+dWKVAY!d_WL;#uqi#P^zp((nG z2ciIP@nnU_^k;o(9Mt_|;P3!c0YRZ-?F4|*{kkO}UMHX(y}%-ofgbgOo6CdcT2Ka% zsWTKnxl8HU5?dp>qEPCx(BS;IE}Z-v(2^<>ui{?G*MycgjY?wJ@C}y zW|^Wi1a*;mMJ%y!YN=dDXA^sXgm(W(8-Ky~Y;!!HId?{bovEWcsZR&}u_L>#8EzVN zq%PWCl(yWG)YePz!W3?rXCV)j52Hccg#Wj~0y7w)@A7}mB3?aNI)#=h`gB8QDQ*OO zt10yGV_3kCZ(#wn#0A4-9gkkmQCU|p9f{xDEPtZI#yu6y<+4d1k@{ki8=+iH@+98M zJ?%S=kI~+8-BuBHfIPvzZ?_&9K?MDnP%Y?~^y7za~NMwy&?)O!86jl7O1S}$Z zp&~&^8{ur~(D{im_bEU(rKl^xXmEIQ-Fq>XJe^buCrtOl({<7vRHZmmJDtQSjFNk{ zWPFO4-DCk`{gSC&xoo(a+j%ohA4!4jQ(7>wQ~y;TRd|$wR$#h}zC#17C5nv$9fUkLF3cBVCDr4E&IDaeT zuU<&_=cMcfTEVPmvUb}sFeI9+R5n0>rhtqgMuYx&jsu4D@=lmuwV>b+bEdz6d$hVH zESOHfAiZ6Z@rYby7m+VUhYP*~?spD;(=l*TLh_Z4je%n<(Fm1;`B{Plu)c%}1Ov9s z-hzSOm_-GPc7c91Q_9Eoq_?6&pP5~aoLZ7Pd7sUq3ZDt=|Fe5aKBS{nhjxz4V>azg(vY7eG5PvfE6j@#sf`S$M!B2|r;dQxWXKKEw%4iF5S)BLd?kJeK%u4dI9PaFc zy+50ECvN-g^_9pQM8viocFpjcM7LM8D~o0>8Kr9wV@L2z_fC_$$}Ib|_el6}kx9NU}j5hC8{3gkxdh@$%y; z0`<$aiy%6SOm++lbz*f4$E8&9$-L$72EzpWzL{NJ#?Q2;h8VQhuHbUAAq(*Pk!uol z+OmzqKeyYUcc^e4mz`*~-W=z|We!PqDtu*fXBE+H9O)jDlyNuFUA+`uX7(-d%7S&4lG$OO^R{vX ztkfXeOTo@E1{6NQ=nZH&udQed^rsODtkJ-2W|jOQ<7M|h8)%K!+Uc5%!s`(0l8@%= zXl=eq1V-6PHD=cO>Z&~iw1Y_S_ggD^Is5`6@mn`K200=aWnJ~=@n6aWiF=R&PWum( z2w3?vz)?ruY`7i5!(p45o1dkCx6iz6{x@6h75_HGdQmUY z)7AIuOYrn+lpT)nLA$p1*T^3a2T@50eM>_@I9Ca!R*fYIva}V4k~zg}FZujI)z2fD z?@!i@N6%`XifpOF$w}Lr&6(eDcQ=9$ITRxsGQ#&&=RG_7250Q)5Zjp38yK_AEm|D- zD8>&~bQ2TCi|f;!5A8iGPNp0OsBJS4Q{4iJmv*P!6U`pY)^of~vta0%(7G3~r^xHX zj=L?tQHA3vw<1g<;PM)5Vs>y|H`Ipa@+>EhKsyQLWf~p-DbI$#jj?DqCp*hitG#l$ z=2g%c!i+d#A6U{oBqH4iyTf>P&yew(?!7;QVdx!)Z~p7r$b3R&&URDd`;;GQcAKGo zO#fISIDAaUau*gtcV2U2Tf0gEg5iYbY7(uBAUO8y&*%8rS(1`ZWdQRJ=DIw-?#FD; zVmE=D>HR@ceW>RL;bHsc5#uk~%Nwi(2aH#Kyxz5oSw3?Eo>^_SVl$|=(Q9aKuljj^ zo`h=~8yONmpnt`C-=O|Z@56tILjyRk%LDZx;IhYNK)E#H%#9k=N#gi+hI z(OQY*l1iYxD_d$kT`ts}r*C1h8;u>q#@BXZy^4oX@`-X`xz0Hb))-Nj>2kdUx2H{! z{tKn>T!UKbxizxT4^nM^p{>M`If^?aZFbuR9HQQXXF3MVnRv={GIm{(R_$}XyZ4Z_ zvPuY-uXAd#a;w66O(SeX-UE{T{m|l1N~`EUly#~94Q1v3*75(HvhsJCCk+G6H@W1V z7)B#72{e(AC5nJ)ia@CUhq^awaujQ#1mF1;^*C*^8L=;)SwFBZ0wh3yko5~YVv!I# z`t`$AW@Ke%Mb`G2P4|>pMMfZWg$Tv<;*Q2bME;VnTVQosQN9JU0o+OP!B z)V8brDe9vv-vdh z{0AjvP*H}ymXxu7Q&I*MW$3>tDT9hKlzyaaUrNf@+XLtPLrHl!J>a#QU-7dGD;2wn(*BElpOR}BHnm$DQnvo15+(MOh;G3;%D{8~u4|tMM|DwzaeO71vk!Iy( zrkB`W*4O=>1ENFHDrr7WXJcz=)otXK2B|TQ_EQ) zl(YRTSEri!U_bPiR~hM*e1@JD)!dVLQS?LJE_s}$iel#Ke5}K%x!XN6jRG#5&b+iM z?uHiK;m9BQ(dL@tjT<*$wuRP5ZtK=cbyk&+=)Db}9J@RGb30e}ew)&+|CqP=wK&~B zbw;KCYX{f=GcN59rmcVPvVMp|pp8jTIECRbjT1D&Y*C2BC;}yM9L5j|CF#$}*7Vy& z6C^gq9=PSA%nv4~Uewg+_VepIWv9PK_x?HI z{YAdZe3I{8AcJ#165gZNcx&jrttLOx(eF&&`?K`j4gHw)g;bHK6D8R$sb7vIi+_vs z&Ud|I>5spOk6;J=S+oO#JKy@J$oH@Ajp1ec`ELF`TJ|>x=bz@l&}T{Tf{NIs6FJiy zZph+Cd!z_U-YAiVKUPUhz3bqZy&gvUpJU!Vu=GIKgcUlKy`M57W(+^m+1b$NMXwqIw z7HCY*+#E=U85h{%Axi4LhL@+@spv7JPp4e&T!+hhC|#=2;9dVaXPrJmlS#k7KY6eB z$M=goFdBdLXMG#JejQ1JK4#LAecL)>nz@Va&ErEc?tubdV@3XKEBmSg;!GtD_3Ww9 z<%A+M8w==VJfCVt$gz0UD`eb07s38f?V436#WXphr&lx8sL}d%e@W?1d+wk7G*|~DItQ_ zjGPa1zPn!V$8JA8<>&N*lOeHia!BWk(4N9_cbetvmOytc8d^T1DmGNx)-j7w&ou8& ziE*#|GR9el20>Ct1#z>Mbd(JvK&HL0pAlcp;c4QosvKtrywQ#rL>VX_WFk&fyGz5j zVfjyF`~M3^cl=)f80x>qR{sZH=O2L9zqrQlQ5T6JI0nYOaT*~o0wzh4zz~F?2?9no z6h`7OOdy}3E-VCdU>meb-vxK_Lq>S}CVPL~&=2xXrcofi^(pGw9!cI)WXW5Z7)C+i zU;}LQ+ZKpP0LF?l(6B%gUf}9*4q($;u`GUzs2~{Vf5dNn zGSIS!!E57hHrs})0A-BVs0XzafJA8PDweN|YFf!qr6g9XAT0?X^yZVdF_+`#YO!oRwK z;Qm4X%?9a50Ot(^O`kD-9&O4@P25eb=ye z)og^De@qgPbUN?NG%CNC* zsA_Nst;7?216@54$p|Qq{8$~ySwnVtLk zGkI-`6jN+$IqY!}|w-~O*J!AO48$^ZCG`d=fA z5XcbT|JRa*{r_6hWSF+E$o;F2&ijdnY*z@@kbk<|IJtP zod?jrxRM{s@&t~fK#2t*kxz+VG4XberQV{>*gNdK=Yjyw8wHH3EvRl`42wZ^g#KJ@ z3?>1WYm2GGJF+70C1LzsGH2e(oDrBXf-#^R2EUc28S3pj|0@%MEjW`15Lk)d1Lnz_ zCWgJ8Z@0Bl7;w-N^c{dxFvpHCfQ$eb+sNAukO2`od5<=2*96QA-kdi4?T*XPe_8gB zK-pvZM*NZ;SL_LvwLYVMZaLEZ`^0qx7XR|OZYjxp=|_P!y2{Pz^w8ag5^tcZ|x>GPd z6gYce;B%IlGF&+>Zlp1F*oTEKMT{A_jWYd}uX4NhZ7BJ}tA2ATSd3EKVyQbH1$Fsi zB?OKE!I-bdwm1s4uOCZ4j^utP-576MsfJu-X}(@e*sxvT*!orOaRH&yfFg8zf8x+= z8S`SkSma~gUa##U>W^ehABRMVgojTMAzBw#fhac z>!N|TnIA;64=&~lQpIG7WUE!hNUAP>eARy>a=q|&8dHQG*=OOAoy(fwMxc_Zl&|s1 z)D_M>w{7|{ua8ry8cN9s-5IJSI?SYDm|one;4}2TFxq5LSIKlD;F(9=$8g?+D=3_@<`L$d{* ziab9IQ*U4^1>=a0=?TbVkvd5#&$?P%hfqE9z?MCURQnqrBFL-TKZA^yo$`iVz0Ss| zgUpV_dU-sbbhb3M45@lDXRlZ4n4|AfF_G-75btBZP{ND9?kL&zrJdYJ%(b~cGZk*h z25s{b9pM4vDGLg5+R*J>E@6eUqPI12PkogoTXV;r9P1vjGVlyM-1G;$!JrrGeBZGL z5@*m?jWhA@u;*T<_FnCIbTs*T=BSsuM-9kjb^<~Kzi!(fhCNlx{_{H1uEpmwC#qbS zUWtb0ZjxO<(IgY{0XcLT$yxl-)%OFE@$|z%)hZ8Eo$-}Lkx4u_mtCH32 z<8whYC=cy;x{h_V(0XZg?VX_;N3k-@u%x;Zb4cno9RoP)rM|i%l4Cw2+$#-Ln2{@< z9qbnmMcc*t9%}io@gbar(}W@W*CZ!7g=uz!=j~J%ZuBU0Y}~cBS3VNQEB10aW=D;F zp%OIeWi)j@amenWx$Sw*)e;Kve4k)rd11b;B?{a&XQZ0Kj!S!n3|-x9^zg-AGxIT` z(4~~|!!)GKUCC@dOqXL|R*^L(SD$tLRyPje96aSSeVu|=ZAY@HI=+) zdtpFp+j30eoiF1kh?Df^?eQ%H0)8|KniC8HsBS>R8h;C$QNY$Aeor57IW7p05eVJM zJ8MRMC6xx68}Zxz0e>rfzU_smw-U@2V7GLBi?gMEz!}AwVG4ylELj(r<6K(`y87GnMBHxVUCPu2lV;bjS z^Zs!((5tyhr%UGEBD9ml;+jjyWxe`g)4q87Xo$EH1Y)5-LhVwd_i(?37FqB`JaH)B z$Rgik=E4mUqbst;YD+~Aq{3u)xIWO%mfaGt_S=UHqjhp z?S9PsD}CxvcT|<*>zdE0Ax&3?-(7axgG#7dA6LD9xjD~)?gII=LWD;WINgyM!po

IMrj^|?Z=ABJF*3(iNK7K}MbbuE{gYopJKg1_f`oRQ|&u!zn3Fn)t6*Q;b zhVEq{;koY+N7WpQZc%iJZ`J-(r%i_V8yt(|?K%xhT5MYt4^V0nhga?ImE>|AkZ7Wn zXwPE}(oq=o^c&l5lSj^3s1lj`acu(g>E^qKmIvjrqRfzlI5HWRn0DLk-B;x~$g>Nr zci_;7-mO05yRF<7jFP7o*yyJ49yBPDV z9V{QIJ)~m^maN3Q;n3-w-^*Tm<%u!knK?q24T{$r^ki1h1Jf_uhAQhabr3Lfas0{} z{1b|VCOwQt>?y(hHe_;d-g3CK20D0@-5-21zmB49i|`N2ZSRNnz~wbJ;z<_tuZp5) z)#E+RrdE{Elu<3pi5T?Nf%t1kFg@R?C@ZJIY@chzNdxw^BM@~O7j6ScSym;ia`Z^v zcs_5KKS;)zC*^?7^DXufx0LsnvJp_~>I&q+D)M&eY=18W)`N8~lQoyw-Z@j(Idmf` zv0ZszIS#Dgul7PS6r^68tiIC3u?phobT?CCwO-DxUC7!S$>nCsDk8$Yd#rt73_`Pd zMl!?3wP(z}w`d0_zn5F`Q(f{~FkBoqOG9dhD6B8FzJLlYu}8Edv1fm=P45L~M&f&p zGf;DX$SS@KbZAFnJbv@Ve!!~fLR=$lnrXAVuhRxRU&ZbgQO537U4k>SqOYfo$}T6{ z=-?jg3x8j9XwsG?UR%kv8|kG|j7=tRZEqjKkU2_})N1|VnMz5txagg@;*vz14}HDM z9s6dQ$EtxMF;Ab(&EZm+kCA7Du}Q?s2(zIFQ%&x)#PiR&x@4za%=WcX%~LLomntlU z^Xpzu6=Whq=L~f3;VtWzA&FhQ4FxBBy!|FI2`?Up<6+kLI5b;}s9ej&Zs>X2I@j31 zu${z10mW?@nLDKTGoI$l^Xj=T=2cmXlRwqVBf9lgwL8<^sy#gQ$xdznvca@C{la8#w#nk)P1r-+$Hzl>5aqe#UQ~I-Ssfm;rhk%$t?*WyJjL zP`u%_?Hh&$@GXwPxLo`>b_3Oz@ITv1C=41JFazoy2=R7U!~xL*%>aVKa3Db&pv4d-ESR)P`YS?aAP`3QY_HI2n_m?gOLmUI__s;D#&Hw@fdP<3-*Qx$v6= z`L?V~Xn^20Fp0nbMn>pgHa83aCyHIEC5_i7W0eL?Z+|LJgX}p7k*p~^!?@ho2!Ao zznmYg=5I~_yal+s6O9jJ-LTcYe01lcI@N56-3h!yh<$!wsGH*`j*g;_EgWUk?$K{`?8?Y>k2P6t)i>8JxMRoP*_6Ccx*2qsW-%LUxQnF!OgenE#If}laJoa4lf_N zG!Bt?hfc5h%%{&T91FPbwfdrx`^+%$!a!4LdLep6=ZE~3CHs@4^iJqDLF!0UDYD^7 zZOa0>26%LF%;relYNJ-v;`uC|S7M*EXTEJ#%*q6BWdocTECZhm>MSExX*hyLi|0bB z80dcY;9--EiVO8K?&mb6&6D@^$G#n-l#p-07wks*{ZhS1%E_L( zia}I+d(>1g4o!SV4p(h&ujlI}Os(5KR+}|E@3l}mH%pwvotqYeqLnP_bnqk4C?u{q z=y5Z+L@2!5yd(4`y{W8)q3x{0OI+aU?vkGEsStC1`J{GQL_a{@q%}94ehw`|)WgCndj_&Q*9-+*T zmmQh;gA-3RIgB`m-C%p}75IGH>!kg-z9{5YpJP1CT&56&8uJ5OTaE>o1jt z2m!@+k^r@WZIefkZwj-2)L_X#fg(*o0iH=g2Y-t~$lJmg1RLf}rGF3efq+MWD44wY z@-PiVTJU!u!7~ski3F4pK*1seF%lucaQI(Eln7Mo>u+Rvj{RKyHTbC#aBu~&gFez` zzA$c1BhA5<$p86F-M2x!w;>1gmFIp21{=vmtG{-B-;B2{#Rh%nFJo_Kzyi!?Q*cpJ zc#FQS;28A%K|{)a)GMo6>$@7nL0q*%aN!Ej-2Ev1L!XVe{ob6OXZf3lqj|piCK5N^ zSCSqW(6fP}n)tWF57^80m-N}%tHqrs{jBvb=!QI8J3QYjF0wHsb5xtJq&=2(=9ZT3 z&QW&CdW^~iw6%l1hpd@8?=Q1-PdMMlXO)HuW*pa9KF*WbEDuj&SY1AL-mQP`$-BO* zh{0hEt$YblcrMAiiwe=&pVq^ATMOxY^dKYYSb49HLEFf|Yq!U)#xo}ibhM3Z*s==i z;h)qo9_8ua@sTPGu6;~MF`vTwdd^!0at|27S%`Fougl)ackaFyQ69ToZR8;DyVH?k zm!|Z_RqbVX=54yQ)T_HLCL6Hn<9>r^BNqI4dw1jQZgi)n5qWuu;k)>ljFcuZ@x0su zHZD)MfsI;+<$VQEPhMZ%L*Hcx)XXV=TX z;BPJ-^anEDSLWUyhqdya0S>>3U9tjmyx8wddLz{v^B(0go*Wbcn(zbGE$7J$7dv@1lDAkuu&|#{y-9XrVlb)kpU*c_AC* zAyPN#ZbxYAeo_4nvLelmn7MwX2#!B+qqJ%b^G(Wc8lSz%kIB=ndKASeMd<2Rs!7#Ih znQtcm?ed=j(?5RlM>zWPC;kwba2UZU1f?hvVF-%Gaq82_t}Tw>44BIX1Ku&16Gz{g z9MRiYkz_y)0$erTJgMk&Zr2twlDEY@7~+cGi)C-)5cnNhFfi^#y{#CNw_#R_0RH|K zPU!R(!3x__o(ypNw-o^+KLnI`GzOQk#j)@mInx*v%;UEjXZp4!*{+Z#K@JwajYZP; zoEdOpPToAV_p}&@q<`I7=0UY}I{a?*XlOfYwvYCUzW$=U%zp$f=xgNq^Y-%ZNy(PP zAZ>tYQw+?XKIF@_7h8XHK$Ysd6J&RAu@>0rP2bOMzZv!CFSb(9cbBKJc3_1*(L^v; z>lc#*F(q1wNAi2bLydE=0QX4aT)ZP5bOiRtFZSEP@893wd3(^Gy}!Tn_Mks|e}Cug zLCN_aXnh^;c)2&rE_ur6A??gi*QequsGb(Yc{(+2E5oXB&0@X~ zi`9$V4n~c%KA(-TIM-})!Cfd**$wOnish&HL*)wZaP7~%${i#zm_2|)*_jE1AN|>k>p9&#APE=lu zM6YFVk_RsfZu0#+BG9gLziNFQxm@6Ozl?UD8bQKu;P%y|F zKbu3>!=b=tUuwdJC=0Bge|IkQ$;r`|d{GpoEqBaqu8o@OWNn|k`0F2*-W15M%C_L@ zG}t0ieYhAsHt*K`%$%&ksM^hg&_qrY54f@NkTcuL^<$Klzo zlRVv~$DYT`=V^S5mV#$pZ5L_UkGzmw)cw)8Q+U#+as?&HnB%qO_R%9ggjT>52l7!^ zF8&gcRTTEaj+K%+;}q$>?(}^{Io|D}p6Be2XFWv`(6Ea3YrE6loxh8kn#wPSQ=Vun z_l9^n!hDbfDL0wf@sX{Ey(ASom+4GJ@o^`1R_Ax#|N8^rZ-=XQVs`xD2lxA*esAX5*v}K(|7L-2BiNsx@k_5QiePY*1mc~a zD_F+_h@jCs7H^RYCf*e0w=*#ipbkNz7Qa=#fEe}X1h0ey6U|?y&_LD*gSqA{DsF4z z1SoCB2&hb=Zwn7#E<(J+JNcjRSF)XP^sZf^?>TA;)D_XUatkmHLBJK#Z-3}*x$Tvb zcXbg>L8OPN|9oj@1A)&FXk~Ah0N95lfS|n{1U}7wtzdlta*b8`2d^#FE6)7k4_iAR zd(3BHixnLH)oW`pE;hPMK_m6wXMAs$L>|uF(pbb7Yk!mn`Rc3Fm1Kelgn##-@xz1L zV_&IO)oi>(+&F(nSuVdEgT5UsIm2++S@|YeP+ya03F2noQ>UFj!pMeSPhh5m= zhqq9EdGKpO`_p4ThCJv`W1cbBNy`!3J-DqX~@nsVWAF( zyJcsZ(T~nf%JV8J+-Gm(ZZbzEQo-qj=m+DJm#}dl$qPaSZc%W=`0CG4uA~Nklr*?$ zZ~DTdyY~9P@akTlZy7hlyEX0`-$GtkC#a+o9P{NOQ^=^pxt*_7vn4C1YkS;B`pVyI z;))&uFUC5>axvwcA4g)iIhCOaUV|U{ZByn!bhacmw1hOnVKlVJ_l1kfG zJ4-LMob)n%v>Ydt%lgP)^CUWC$$n=`$K9xkce-;~&oM>b@Wm^1>28+|L}LT$glWfQ zvwfNxRHp?0m3wmKKdn<3jg3%Y61p^vlovnBTSA}4wqL}-ADW8les-|k1JWzE>MF$A zHOKJAP&dpT>0jwvvKFUX=ES;(Znv_pi6O2oWV;Pj=d5Oh>-ND6nH_n4G~GFc(v${iv`Npe1D z$&N;2Q7JB$TN`f43}I-bZOEAUN+#<9HL;qdIaTV`ZQzT!-@n$*v+z@O*)~?%yf_h6 z=r@E8)Jd>B@vIWqk$Gud&B~7^jeE#gX!5vToT3tr$90ucqb~HtA*o^TB4#I2xvQNc z_<<_=5k@uZYExa+rh<_)uOV&~$QPLGZ-*y#93I^*36tNF^!Hk03~G(it!u)zdt@n) z5)13!cvbq1B~cQ?VUqqSO8qzMd<3h1y~YpILoiOE6pk_!3KYmNn*MY^o5J2Al=#~< zDh6Gr5c?1F77mNwev&}QnSNUl1ApSrB`V+aqbve6VWjeZG+Lu{F-!86z==7shNBL#S`P#+}Qb4hyP1nYIi)ewdXbY}oRTNR9 z3|^+dqDSFdCWyS#EWy|Un)k)3K@eAH3rOD%8j|=^?bACOt~y)nSN@ey1Cb0chg=0d zAUC=B5AtUL`YzSV;YAy^ba9Q)YyFl!+k)5@mo@vwab~Ha#><+`GN1EYy+OaQGUmTn z8LPm`cnfU8p>D<_Ih7P0stB$y2099YJ0uJ=6oSgu zE)GQO5V(ND`zC`=O=QD+n|&d~4Ki6~=1M%5rS8aJYNYw=IpLi113NCl^QnludA+Qx zB)i!VZoyRS+hlJBUEiv-YU~T>Lely43r7Gv zK*PWL6%FmXq)e5bjk6Ll%Ki);RC@8f>AYHpW{~tl)Mk`LyQKKR zgH)1|O;v`wzUH)+oiUv!2_nsky9rfTqr#+4&`bG-sOIwwVjol;8Oc&DlJ_|eP6mB~<*-r&^lk%4Nk0YC(;VBu8)SGJyfnDXNP36PubB~l)mpg8n7<2mbaDTS#v5^T2!`a&Q>RhPjkAJ^Kr zXBQlH(3umTxn40)*bsEX9EZJe@*lfvb-282{G6xxZQ5(7Kkb&lTX5hnDM9X)n5kcC6R=*=gtntIG9(M$tSRggU%7ErHjWN?%JMNS;anE<_j@>+TU@)zrPl53uAN;wD zJp;PN(ws**z88(9p8~-Y)3rPGH?Hqf%uW#xUzd^KMx;+HJ`bC2U6zw*ZmL*SJGwELULPJ^-TAS`6x;?YBDyeHJhYGj|arB3cU zQJRcym)5BzpKkH#K-b>FVCgO)&ae1s^|pCStG0KKPvx#@?18VtBeW!WQy-P9a}-yHcCo zFZ_uYq#$Z-n`HA!I~J8Vz0UV-Z}OZFw%o>wc;sxuuc@~LXyrY6z6jBAZ)v(`-JQcc z;jz=7`cki|<$OHHC1o1iE@d@aM9ixp6oU6u)NUPQ^0b4r&h=UBf0A6BvbG}C_^UG zd3L>qTOe?EjVZ;$VI}LyKDv<=?~CG@9boyHP2y@oTxo`n$EB_WKM(5JKTksWm>z=M zS$!OtfxZOIjg%gG!Fy>XwK?8S~QtwY7F+`--bi8If7hLcttg=h;B*V_)E zVl(EE5mjV9?>XK!lAW#IicUTfoh#5CnItL)S<=%?qn-YOr_-~DxH@%)v-;RcgyQzT zUgx9FatBMu9_Svu?`{H-oCMP_cT8pz7i|YAMuF{-F%+nDDcIbxe zUK_reKROS2xMen>&k1NfLf3|2fkI<+=jyjIPUvvendizjF*9J8QrXV+Li}srCwj#FDarp*r@bMWUozcoC_2dOox-V94mKU`C`2|?yCtw zWgIIBy~-jON!gMyq`t~Eye+l{K2b+2CxHcnEwj7&Vs4zR?F!g=TX2C4p7X;mXXS~ zt}|IncQhN_B9m3x47LsLW!GJIm^`MHnC`wsbILfTsvkjhXx&ve;hp=U9w$%Abi*iX z3GX!bjP((dMR{0>Yggqbg>qHymG6T-d)}&1%A=4Vp>S@V%k4gfVtqGMwn|IUKYGKC zw&xM^XRXWBWe&9C7)`{~(a++%XRU)l`q^@IUh@Oe%n_C@{wM@DQoo&4FEmV$VZx9Ya&bdQmZ9<=-YX-&y0)1Ukq^42LWtP>HQGyQ%qo?LX6jLS`mO(y1Vb!XUGlC9ZSnjurn{(A1XFO0FQiI7TK*G%4J4S1q&b-X!i9%?ikH%MwDy zk+I+ym@_F{W-gJR)A1Cotp3bSD3A791i7U@Ho|ilOaH8rapssXVz;+dl*_6;D?Gpb zJ<5S-tsaN$k8LRRxQ*ag zn74D6Tpt#EThZO{(vGQ}AxDZ-f5DLh49>z zQ&!)U(vM;TZAFYeAy>aUURSy9A!`jd(>HT3sD$JF5{y-M^-lW{dkBG^h&bZm15Xsp zsd+_vKHNSO|9~3F7hw~nUH{u7`;C7zP1?ojmmbvr{YA?0_&-_xH$L1R$Ut%LGYI%^ z*Z9DPfA#zycqqtQbr{8IoQ5~VNFn&A5(h;3W=W<%AeadM1E&Dn!EcL!4V7i@ZW!`* ztH*#m@24mcILf_?k74}oYeiq{bQ>nzj&E>pL!BF-+g>E3|3jsKT*8F^iBq7l_>00J z30`gkn%P@qcmsP$1`G$V_a(vaLgof*aTH)poCH^!(17a+_?;=JCgLe*i*0CiJGi|h zpoAu%AiDh+!+(VmmGg_|xpVqE59M&$b}6#zLn{2#$Mriw{%;t~J4=EgerXwTi$R`! zsRHFWl`mdb-^~NeTjRzX6P_!svb|m}8{Cs67*dt@$W$5lNF6s{s)=8f+rFK6IExO@ zzkM%m8=7?nXwiBZWsX6H-Ous|DRR*`YvqLR7yCeohckQsXtSxJ`Pk060TD+?m6>Kc zFh%btne|7jO#dp0`1|nYTPA2V$_n{ic^D}6|9)_bxA@PcOV4nP+4^#Yiuh{Hz_+)E zY2^pStgjANLdh2WHqZ)hH>A2MS`Abfz|iKGVu)EpzPDbRdX0SXYYpVvd97iqGbDZ~ zj7s8Ma~rhAOu<->8{C#(?DeDXC{~iNz0L0z%iWdW^ipiM&>DYq`*I5{wv)Ei??xV> z!S*vVfF}j0`*lo#9lkgc<=@aX^w;p3pIBp<&2?n`>On@z&CNn{FBf~%One4H>E5&z zb*FU)%kA3oxE4V~`mgBfG&F-$f^Cewj<;@)t}Jj^hAGs7gz<2F*rO~A z&yeqWJ@8oBo#ZsbqJEwCmXc$q=FBpRVN0TP>yhE~Kz5hsVu?z^Ty2QR&HWbk>a$-U zW7^R73ctpgyE?=&1YD)>=ru`_b+7g4slsw1y_l(HQHRTMz{EV$p{png?PN*7X-G%gPKGwyalKi4PXfb`dW;Tv5?<)5BakUN_kQn$HrYcv1Z|gV*$&bWq#e#YDvJz| zyUVYaREBp9Vae$$QCs9nUu3JDrg^pCxz5n^crfFIfcy%+n#2KH40-7GHlb#7^OmmX+6WpcKbLZ+q?KMR*1{zXEdQn1aNOBi0M{td&rgAx%>w(C|>2$xx zMO(sno((Emip*hm)R=@vrVEw3hUMHMqil)|W^Rj((T>KAr9j1R5|}C%fd-48&tm>P z+{`z)4T`8LCkQ`TKkOW*7pMcWQ||1p;Z>PFU(ePdm6mGG)3+E)qRtM7zIYB**>C4V ze|$ny#5F3i=~`_C-Cmdaeh`&`;< z2HokBrD3DmMOR%uy0lN0%Py@V*Y;cac^nWZufzM3=)!Rby z?d8eW2VaFJX?HM6Gct@+)8RA_NJD^@DOx&{UTL%8u5JAlYQ%WnWl4jU{6bR z9UK2ZY1!a4<{`Yr#6!@tD+&Kcl-`8)pk z-Gp~{FLO@EU*P`!|A)B$I~Mp^`JmVFoB)OLhEbaB^1dhS@$eTGxbV%P?CmaMl*VHI z?tzIJFL8lB4t{@Q{>goTKD#mh0;^>BvUXs#N+Uw7qOkuQMKLucxj{RehFGm#cy_V7;wSCOKtMn z)kYq<#ZxAH)igLbolxkt6sJH}OW261S0m|7u;&GnWBay@g|Ik2sOr!)eBQa96Hsk4 z`DMO~@bIb1lu}7Jlq4r^pL1TXCN9aRmT4n~L86zv7LSeU>~*6lCq@poKf)o{mxo3z z0*SZ}wspK@V-v>{KEHCb8-Q3@(kHgPTl5ecbN-kL3I&fy=9{9ia6bhe3$RUc6=yw(Ca3rM>aYmF{>cc@F;q zQ%g=&u7;}k`A_FVKRn?nbN$odx-B{AgdYVEY|nj{)W2#do{tq$Y-qiOt~~pQQLk2I z6N&Fy9o?;b%LTTb$9u&qS8SWjhWO*p@a_c8gT94c!;+I?UkHbfood$J8d9fxaX1PGnX0hvj6BHWR7%4%5OiUO@(gnMe+m&Xgb zAUj`|Z~E+}r$+0U`S{YA#OJGrg}@Px9;NGQc!Q#ck4r0?HaS1I?y~Qb>jneu{Q_mn zVHs1q%FxVL*A5t!wR49Sy(=NwYrm(28f$bhyX5Eg%Ie+=3Q;3x zN=f2{>c}YE&QiGW#BiPUtl^WBPi%uAaqDWOTa-&5lpb+7U&;$tX4QdN*8~cR7usE3 zNn48P&?!pxaGTxJeh%9a!&Ii~m9Ezt!*E%4AK)>lg$s+GAMJcaS646+$a&Ub+gAd$ z!(f6e##?7!isM+F7-4)qpNfy39@S3ko~DDx_o9<`FhNLLHcLJg#AS{Ud!nvkOVfr$ zKiFJin&a)>AGGRzzvIqH^`7yoS;cd=rDIq6J}js5wKRuJk~wuxbo~P|V7;}imX5N6 zoH~0cFKUJlYPzp&^md@qIXfA+Pen!&p1ZcmsdZbExM}|DF^YJeLKDq9wO~c~nqs$w zn5=1kC(mi*a`5n&DxT_xz!%zOlFRbh%ag+A*<+Z?>v_kKPx1=EOg_IB!#pn+t16fPy*}fjN^6)MIaZUIzj7%i-u6)ucxhme z9Dy_A+C(inZdi`1`(aMP+B&E)emO;>0mHPSzgQXvJ7K!)B z%#S94m;tnWw*R4TE`fpZV9YrWn7`8EsUn^{oIJf8R(zmE$ zR)N3NhW(i34`;zeQX<#}P@VV!+rNoKEP(g;W?Qq1@vu=k|9T%j^^m$ce>4I#zRuqK zT$=iP_C{xxATO6)UBS#UY4YKO&Ov}gGLlr$;EwotAs(J~U$ZCku%h#mhf$0V zmY2%)mb>F%YGh9BNk^(#-F6JwyLR}4RiOQb)slcE+{;w&&OVxmWLpO6nb3p%(>e;f z=V5m%yl2MX`b-5^iM<@i{`lZDi?Z+Y3JICPUT+)h_UplX%(kp&=e}6-K`2S~@jAi` zB6AFWIE_P+83nzg*v=&#CunM0v%CV5D~BujwY7+##K@VVT`L3R7P#Gny<~W4GqFDAIkriy7y{wQ(d=4@A(z$p7U*TT2x(L~^LsHTuH#Q^)7p+0hi@egS+x=C7Fun&Wj!Y_yPN;uKs{m?6XXZB$Q<;Uj;bPKi7% zJzpHq+@nBNL534rcS$+`OrNC!-8+Irs^|WA0o!;`r(=85*d{+Uj|OR<1_8E&!E_z& zUK$4r6oDab&c(lsP7CC++1_)x@6SApD!jx=21{M!`k~%4N+H{jQv;6K*%Z)UD|J|%W_iF3ZV|eNzD+N zAky^_IuAYaClk<4?AuW>tV=V~AuHhyKV7c#pe%7^9+YFK!7uAGrA%-6-Az|`0YjhY z0N=0YdTw4afDelBt{03f7UZ9(47XXie$;*g>;5>_N#mk<)Q`OUnVQi5+-3iyK>T}` z{3VrrnXTk_^3*`s=YoU{4We`d+|+wcnfh_8RZ zEB#yW3jBz#e}Pxq9p&)@UZ+iYc`H`c(b3AiqgMgpk$7*;DeLq6p?0(hE3+TrME%`K zKf*2WE4=*`+yYp9S9XC+zWr}st)N?sEA{hYBwQq&-Y`VXgziaSx-OI(O=FFEz?h4z)_nX^kb z@EEN?0Lcs>LbL}PD!jOk563LO#9q@%WiBNvRNETS^(Xt*os64--R;qwj+X{1BG1sT zFUSC-v9E^Zm4MJhuu4%RI(^S?Tt!pL92Pg@9=9&vTyz5(v@#ZhbpgLLLuPeLP~a<&duVOB2H% zc*~ys>`^gGg-GC0jNo=xdOHWGEpT4~~Dbd7o-6?kfpRga$fHXm1&Rjs#o#t*hQ!HmdA z$<6Q7x;Q1Q${sX&!rt1!KZ}Q@XY(v!GG0S~yZ*dZ4g8{>To9uUVKnDd2_+=R-630U z-pg(&S02p5Z{Ys`Za-A?{oPk_Aikbp|-lw)`XUA)u7FAKHkme@eTa2 zc%z5u?uWDfGekc{;uU3ADoJM>A>LGvl5Ko7g?Fc%-N1(ox02bW%s}sqlimg+HVxbC zCrC_?+qKq!V2uF6eFT@LHr^WIo6i4=$14Ui@D?J(+4eO;Hus-x!UEoIhG1J@u_7_b zY=9r{W_jt}9G9#t{?|xMZBh<>`b#9f^Z#EWvAM9s2NJJr_F=eq@Cg<$F{{y%|W>=Um^cf6Rz~PmRKGb+fZxpi7lZ zgazD+~)cSpBa$A zo?IPS+DTK6_vetMKyfaV>=>Aj<=MZY%U~QxlDAA;XBdg3#I~|8!JQ^K*!7P3GZ+g7 zKk&DjFQTA}ss09#cadxL#`O$P(&)JC%1CdJ+6@(mewUB;B)W0pa=D1R2hX`{+35bD zM)4mqVo{kg)&O4so5Z8Kl=7o3di%M|LU82&PL0BNg+hWhi8Lf3&5ieligY$E9Pmy_J6aT&ejX1R zg&wTt)vIlsXD&*owQG;X<@L^zS8WqrqCh7}bLPo9Rz7{>GS$<7rKgN3X@LB7^O3JOMp_~Pnmm7pox<3n1W>H zeFPtf=e%wQ0*=q;ih`jCp;SAhUcOiwbBStpiwbgZn=gk3fL|!4UO0lRmhd|J8RVCk zZcZbJ`D%|Mc|ghOtTj(mE#B;-Z+I8Jdzci;r-ifYg8_7QN&dbXMYeTwe6ghc+OWL> z*w*av#}9rKp7^~}zG+N+diZxPcO*<>1i?@gL*mG$AMt4)IQ>O4H{4n^(p}z<4mV^A zcNsro7ptZ5uPq$W=Y8PoAuE@Sc9C?P*dUXMH>#P&o3QOBEC~NQiMN(*GTrcXGulCS z@ptNHec;$fL-{Ua7=Kv?yu&%ZoxFlN{KZEn-P^o(>?d|r3XI(FIoz?I*>l{Rup+!G zA!XZYLh6_B>1F%S!%<96M9=r(lfR$N7SArKU;aamF!21``ZwP|wHY`Y2=21*ux3QiByI z$xTk|`X;7wtK46aBc?-pV8P+$kz8gncl7494Pwg2lVDt~BsXe`0b$Y^q#pF;n#9v( zu1OmKX6Z?wuDWtwCWbov?vTbkcl`HRd%99Fj{4nCh-!8&HD{*V4C9f~kMB1DSLvV} zUM=8_da1IAl3YMcHJ->Drz(sk2>oyLaGT(Cbn!l&Uo-?X6MiCsyZ1ggXf6NM3ij`? zX#1E0pIW<#Wyi3Vxx}mijV*&{5C1aXnG`JpUuf)}gE8kqH|u_V1TOCBSd=&zQ}R7? zLFW}kg8F>5auB;+Lh3L%DB?E%Z8($oqOMPIaWmv-QsjEE@3*0<1;!SCKsu(MVBW}p@9n$mf072jpx(ZI2t$|kg?ty@|&Dk~Q%dzuHOQo;x z$)sC%d9}(L9$%$vo=_9ahqJClK~+9=B#>zzj&vM0DxS#!gTS2mj)0qBdxI%xISpC- zMr^|sMfQ1pOPU(S@U7_FS~|Naycz5Wac$hYDd?H&0ch%{8AQI@7Vk`rSf7q)w#j2s zL~VrA+-k)rwRVO}X41bum-J@<`09GTZlJ#nF@JN)XAtwp;om_FLr@rv(kO*)W9k$| ze5z5j*?JILPIQHYb<<{cDIt6>)Y0+3aby?aOZI8*mB?kE52Q2OzK-sx%*{G{r%v0T z60woAP2LXOY)+Fs>$(!FFEz-`!{cWR4Gy>T?FLcdhJY*kqISu>^|bZ;Z3GG1u!Bgp zDW>&u>upw$+vJppjVZ1Rj`l<;ynC6$={AeBo|3`4@5isj_I`wzOrQnxytsE8{@nTF ze;Q)Gxo?L)(fk!+^7)JF$Dbi)f9-!BV!mI=KY^HDc65D;hmbgTAu8GrbEp>V?mDLL z=1QY^{#gjFOcSiTHI9s!on7B|+!mw~n}MqWk4`rWMJjj8M5a&`wmKFgXCp`I;=ve0 zLGpd&ok{T(Uf%(vb!6MrA(AqPLjVqo=2_?xUqH zz2r(V&ac*1$-5;Ck$=(N<@xT}XAQ6fdpa^%F+MIVRxh9P|UMu?|jZa0dkp+G>_!(g|Xm%yj$Ke75VioRgKXj^QZvf9&Fx2 z#kSSU50zuwb6|o9#$7t$O>$f@3PTx1<%~BL87Fbh-nuTfC@lUB#BdX26T}jZcd`U5 z%^uU5wOq*&W)1#tLCiPJbylt~T@jEkU1N~`9^Dt`&}h~y3TX2*pzi%jK~OkFHzzZJ zo|gw#bVI`>Pzw`siZC#z@J8*C@#7ikF?~Q3###dg(RP=o05>Oj;yN+#p5^Vi41jfo zClrifvc46FC6Wkg;{o3obBewxx8rR!&F|Kc#g2YuyolO&i&K7k%Rweyq|^%lEq_3f zQJtC8Rr=$!Qn5A{T~tbZ6!VoJ#C*(VRUW>>B{(kWZK$F=lT)#t9^RwJ2jEc;OgmM? zP2`POY;Xl#2^gK`-11~#drBhiMh30NK!Nzq+aq{TPLU{N)1%6ybAZ#pgr)C5EgcLB zo;j}M^ljxVCK9ruElS)Kz2#F3zQX>^bpIK|oZ9qW4)@>2m!BQ~8Mu5s_Rq*d(F{gy zm;zH6juGgJ>YvKE;@kcV@6zdOxKZ${JTA+0{PWoPIchHy6ta zYjTdtBUM!8R6&Qbu-+PTs3G`uzEWji%;D>i5^Vs0Rh6E_*dwx1pN(3^bJ$lVIGtrv zRHBr8)gHI7dTGz-xmqEu44L}`HjoP5=+U#csgYeM_QUZ{4Yf>36dyBd)5_90q^*up_Lbu{Uaqr3T zqz&}kPnG7Arj;lOw7j*aYH?S%*RX^FDA)wtLOHRo#uSRKgBmCcha=#DCW$;eJfWUEc`G2MFF_fF(>EiakyylZO5Tp1 z6*AVzPKKzcG??xfL$*Op1|`r2UQ%#u1f@Q`taP+u-oIV@LCKb$@n_GL-a|j>tddcp z;x;-3JuEmm!g(2pcb2+0lnoFAjFZF2N!28Kx7+#)7%^5MWxnGU+-L6OMUiwKw+O4_ z=iqr@kBeAKL@~*2mf>;;9FRuv9R=&CDG$9X0Y%m^ofkjgqu}jUeZeu{(^gMvTO1f! z#Sqc7QUULeZ$lG}@DSE0=p0Vf?`XpVe+cM)pK;{bZ>E}y2gBC&hLeQ4yasN5>*Y!A z;5u}J2?bOcAzpQI6qyU+zC-M6=JHviuZ1CNxsHj#8)iMrD+*YOd)rP=x^taR{n(TY zUO)7efAs{-qc^8iJ;ZqC^0SMwR;Mc82(eR7k~G-CmQj{@=HaIq@}AieJo19Af~k z>g6D2>D>xppMWiHkPfU`;*#(<9Ex=_bR`wUM?}7$2lJ#pJw*tNz;q-3K~9lo0Rw(N z-oP@NEt-5{FZ_{l`1#$^#thZv!&xv07tm0AJPz~?&+i`B``$bVw|eMl=BbOo03r)% zW9P(aF2w9as6b>E4yG_?5pTpBZKd92BdOc#$`aR6LfIo#bQSavb9s77!1dwR3wML_ zBe=9&TQv|z*(&C-N!|3XdcJ{=K4|@UFfHb!Y43G+f01Jfy%vA{SU50PL1YT3=>Z+s`f)suSL>f> zfP5C%2#3Qz4u(EE=Wha{?fCELHVz{wiZd`plgRoPN`4v?ZJsUgCZR?UyZI!t1sDvo zQP-7#BiNQ!T_c_~a7tGio_yY#L~rh!Yvi&s=q(Go#Zcs?wYD<&O*$^#WbZ?K3vf2; zmuRbxZXHEG>-60w^N_6_INQBDSGv6!vt?V$@XFiCUBEcm_2yPqzOH`_xhQ56zt8Ah zaxUFy^`>wfZpme0*DayxEqq#oC=~luP{cu7P;~YG$ml9@U3M{)*4B8)ukscYEfu`( zpZa)qzAuUbzYInGP@7*vk>tC8Xp2OEk5EJwJls*7dNCIfUG+!42|JPtuM@bI8vmEbUMm?zH< zNA%{9a1*B}4)vwdjb%RL&%RdYd$s8>|6omGhwWUGBPSq+9h`NR=fgL_A|d6Uc=q(? z0VU31`3=W5V@lvhXG*SORW8rJKKqJuqtUQDcVjE|a>z`n6uGda*EgtTqzmMAK=_FA z>5#w#UpUCIQj*G)hY9&fYXkus3gG1G|5 zA%t8>i!NjSJQ2PR4#DYpC9YkHqbAs2B_kSDJ^d%fzgq*vx?}A7N1A-(>o%VZ^Z&X{ zxupH$yUvV#(0KFS_sna-Qmw0Axbe6{^@k{y3?h5TP6-~ zc{+st+LMWs8@;2M&2e$vao}v5My5XZ^;ntO$^%!9w|+%;we$7VmCYf{wiT`7YqvMYFQ1|`(isJXJ=^)c!6m#M~KYX*6lAA29q2@d<|RI~Jho<_~-fNsm9 z{H>$E_M&@D2AA`D<(c&rErtl4-oftW{+DStO_&HC*!mU{AO6fg^3OdC(@N3uk7kgg zyZ3r*yVO@ccl2(uK-7tpyyJVfd3Ssj(#+S5RGzmUM`O{kuZAG|kn+cCfM0Ro4@1e8 z!waQ;U_Yk!0?#L&>D_~)`7iA%Iq+4vqtOpv#Q~@Ff9Li%(zd04*Ou~(P&~IT9vp63 zfR{6|y?=oG(SAAA{Kxz8Wk){O!JiVKn^DSV2~gl?rjt0-GY?E9$2YHta)yMXXyQJ> za@4a|5Cme7uJ4dm0$dMlpS*g%UQ;y6!6RI;EAgx@p_dj%zD~mXnV51hX!&untAd7e z$F}F{A&WG{k(v%Tms3QO#A!kz&wr(UnYGIcty~!o0)?g(g_^slQF)2yW(+)(WTF*` z`KIo7scrOt*r`0rzf-sXyTlxx8^OcKb7#zwE7J4y9?O) z4JGt&)at;^RWRppQEq(kMj>7YaXhV&8;JOvN#yQ>a%)0>2hujWH+az;Gj2hN$>I3z z!`6BifQ?TbRtUX_z}X=3=Sy*K!UUJ}xl&!_LOc;i^W?xfhYewWp8!35QM36GRlbt~ zx8$V5G!CL~Om{J;Xt3U&mV@gqAnoW0QAbDboO%*`RRp zHBfx=78bl(y2w2~;9mX%B3uksTM%zg$lXT7LT+m-Z!QTdzZtx_-qSk`D9l-^qK9!V zCTyAPo21=udTht4Wbwv{UXFHHlNJK^3wfEE=%El{74%rqz7@`=Usu3;7)xy0$73%~ zR`htkOW5(7;Oz{BnOivIk9zswR4}OXv)y(4q**VuM12ut2~V430LHFOvr;_n6)6 zb6DADjsLSjp!n(x}e8_Pe@=@^wQSo5W)ZBFg|D&^Cq`OW>kNVjvrvRt3~U4JR7{e0AFOI*{^8lBBtXKE7*Oy+|O1E z{FCK=wp!q4%Uw6IpGi$~U$pRqO$%=Ww!@e;D*j|mmw2rkm{XqZLSzdvp?%+SQ_4LH z1_r*F3p*fDS=blYxX33^TqE{W6xK~$g(Y2|tRj#KM=z6BR-+NB6^}a=*ARRY`5+wQ z^j!#Ik^9ypHdZF(Rwr|D4@wfCVizq_z@bl$iM%A$lbH^W616$5x5mqWpNhBQ<+i3F zYSf0cPsS3o{(UW$1Da>)1vqD8;4NJnfoF+PY7r{12~^UmwC@P57B|n z3Wv&!JWrk3axFxI6tn>C1+}la5~+!fJP0$i&~tu?G*W-B*sC&zb!>?VJiTQIX=l(q zl}m0=c}qh%cx~2SKY;m@9b|VckMI&dPgjyN$1GmLtY8(BkP)>u zXK3hJE~z`Yq)_O0G{xaSh|loxasj-(yo`Eajesx7c3 zCOU~kd7v%|hHqWhygHL=-ueeYP*U@p{fD`vKJ@NSi*=Q~t{)x{mu06gYRjKsJ~i>@f*H{9;4T?uv=Aa1hezDZ*8(o{Wxh<= zEdZ`7WeRNV0x!#vxRSF=Ps-AcBh+-JPVf|!$nNb-OYLtbugw2z3kOsG!l(Xa&nv0A zcmFz=|MmZ94!<)qJB^1OgSIZhq4@xo4Qmc8`e!8jAGp@HF@V24@Ru$BWW1+@k}dzV zg2GCvRx%c$8%ayZ4MDcj8oKpuBrDJQT*HdkJ*Mb*!@w0}Hr9phNhf+sG{t-KBC=1C z$Ls66B-IKyF|{(bpRqh-pQMlXEY*I+m9K4f$;6h}qIc&6B-{jTltHEEi{By|<;Gnv^Py_lw|DZy#3wyi+e-IQa zcd>foU;WDPcxT2tM?4EZvLV1ly-iwi??&H63@_gBCvezNWhHHYnwxXy-2jVc7t?!O z0N#;*d~v+|kchKu_Pap?Ni;+YW{j1K&cK$4lSPBrI90T=HVdYQm4UkF@9d8|N2-l_ zlbqVf*;lPwWF@r~@WI~phWiZwe{|cm>39W#&#w7BsM{{^X7A`zJ9q`x-W(;RB$2vDiqL>%3GuGhxYk3P|gp=MY z2qP?by04lX;;Idw&&2K7{&4RQF~3F)sVuj#=*LKWbLhI-w68A7YoVi%`Q*5%sare%Toh^e~n4%$n(psi{@ z{WN{h(v&YMXXxX)**ay&|Toe9_m zZ@f4IhVHIzXa12+qP!O zl`cga&aDKBVm6+Yg}WI~y!FiswJ4FJL9DL+d8@xv@=+YNdGp}1qS4k}zm0`82E3vY0_>pK=wE2o z;fH*p%Z{h~V{R;w1ApoQpLky9bw}K!ihbk>tp6yY`!?R~ErBo2S2W+GS5_FW;bez7 zV)?@5&b+m2y9?9TW}Q843K*5J82k;*Ty_>e~?~IY~8g+>uX&K5SISa zrTx~*1fvGx#u~mG@pD90=kX8aWXwK#U3A=njP-q51C3yfP`2-{K5<(gZM^{M74hA8 zY{Q0YOt3~K>zn8^!^b?~X8){L>!qB}VIKGt=hfO_O?`O2LleC7S1oWs@G!nSfii~c zxv0hBR4u4R2&V-|u6M&t9o}G6wG^sJx6?Rt0{BzcDyiR$gE(l}E{A(E&vpnplb zS<1CA7Mc!-@rQ<>#RGIU3cEDZgK9kiBFP=@a2hPz9nW97Q&Vm|_4HzCo%IjwOf+%Dig~UN z!Nnc9^%JAry<6h2$2_+NAi|VpJ&^l$p!IQ}@W+9cHGDbluVoeB>+F0+VfFfdtRGI4 zsuxvquy1&5Or#OCE8xfVNyzD9WX(%adi^EQOEoOIM~-f7zVLDVSd$aI@b~Hry+&%~ zmP-K+PP|ws_@15ZeCUZ~1tbF0|ytfRI1tnSJG~m2Ar-@{;F^9TQ1i!zb2b>*6 zTdg}LUhtVfl>WpXo*6Q-AgaotKL~iBjEk|n*GLCQZf2{`;LA zaUa%Yw*ze2^nWIvU#gfN2iX7h{4e&uAb5?@X##~AlKQc~q(6z9doi!S-nH-N-hR=+Du7C%h{i-bU8R zZ9W2}_jZeLC(GDglT7z|Xtc4|l@xELek(HnOx}5A=nT5CU3%}~V92d>O77UbO$2^S zhO8Hbqs=RZ+<%%y+p?p5UN8*z-Fmf+t7n@y+%_)%OKL3c1yJ%^npgJ5$GL_z z0jED7=L?q~I$~|lS|fT^|2qAyb1w3XRs`2=eU!fn4D;NRyJFike7$VK!tsINw2~eH zebEtfWwtthLyhGR-pr0;x*`{R^{3|wN_+lvb0+waHUoP$_5+>y+pKQ_YSjwJA2Wd8 zzxLho_x_dt&hod_1OJ`nZ>tCXNe}Lmj)bRuziB2^A9a6pRpSk~&X67IRvB+Oe(2=* z!4=Rg@}`gxM)^V2|0e6cWZ2dJSF}Kvl84e8FWe26goa z+=?)GHNlBE6kTTFS*G6dv@c=1OPEAuJgmRO$A z#ZGT=dFC(TqK`w>!!IgIm>@^8t0$D+`CXldQ*}yMElueN6fKu3asFSR;-X|3no5*}3$r_8#Z+lL9`3d~%f5L{%2VtHLU~8UT;*@HVpB~H&( zlAJrl3rS$=SZTwJhtF_H!9dj+l~x+}?wEoR6|urn=dYIxD}jNyJ=ruNY!-NJ$Nu^r zbGIai%24%vkm11)&G-fIA8`?1Ib#M{{Jww`IIyD=gGU&3t>d{m*P}YAm~sf!Ie)uE zh!!Oj5+w(p(C}U39$@S6S&SN1^=6oqE9_K-Lyu~Vbl1{Y$}LGKBD9@vruJ+o&jl}a zmLaUcI`Z)b-H;2PZjGT)r_Nv^ zi@FyMg$I0|FTe#}qvyaOp>nQJ=^73KI-3F*fdwL8rQ02UpO{y22ubO1vM;SqM6k;D zT~FgEM1tlG$l|wDU!({6GUzGR@I;Y?BOZ3ogW_0P*g>}mU7*3$I~HlMD-;dB6}=93 z<)z}9Mx6l_zc5d-Iy5C+B zPxik)DboLgbG}vN|N7HEhie!K6BvoZ7)4+V17kP_<7?=~&@@941c^}yOc2;-5gfKF z6{LGjo{Top9|Ye@?If|4IFMas5QVqNQ5nG2lnRRO zrg?knBqO%e&n9IEuhHR8BDgi|iuPe8hS~dviERz^Zuv}N+ptx<*I_o{Lwc+Je-SEL zL&r_$DBe1CVf3qy$GVO!yi9k!rTr`_`DJk<*dn;wx8jC%oWQ;>c|tLCG=wsVzRtP- zdGTKS(Y{%-D&eYg*N=k7>1!v}7RBhHk36?#vp-E2X@D>pU%G3z*hmO0_YX;;uYno6 zDGP0_yR+_CU&R^ZFYUa}W{`mS3|)Jo2TXIK1e&bFBODa;^hj zhyk5@eAHT;KP~s@ihl?MSwBf+YTzyMNFude6=W@)d)* zte>8*Bq->+b#@I9V9nPtwIBT3fwB9wzW1Q7dXLa)j)fMowtge@!>QtJV|kR<>n$!^ zf~gq)oh}zND+>uI9VzCU`X&*L?Ncq7p$Di<-_427pJ55rH>>v`aC-ZO+s_H12hH)s z8?k`q*}UvfylO4C5=-TnD%BhIf|fQ1n7tRnJ6Se(RzDr3dh0 z5WGfR>}g>E`0Ua*SiHe$2+C7jvT~hD=uo#uva#`{e_-0ZMGZs4FSf}0p>`v6vQn=r z9WHKG%>icX6gZ@jw0=_`Hz|3gIzQpLXHJWId^(o~JqN-a{s;w}bq(JQ!~%bsh|Tt- zg{=$Q??2~k5^RJzz4jN&c8enKCz4Wb{G%&^<&Ojhuw^)g_j6J%cg=%^TE1SjI34DI zB{kWPf8J0g5myL;5nv4m}s$LK=yoTIlS8bOfLLRuu7v+P4U=;WCc#r|@m z>C*6K^n|(1WxV^qvROmlSpC8&9;ldyxon=7^%w2o9d5i6@pu~_OF(dgiTI9e-z>ev zJJoH&3oC@(2?r2PoE^=`$db%=e2Emo+cZ zGbxgns5lUS3~`VLcsSA0T*>EK!&{FX;F0e#rd#AVP_4WDoOj@d?%tlU@>{^!`d07s} zShWNL2-1H2P#c%J?d9bv{C-CnH_Xql>;849x3B1*(ghzsVeS9J&=^8u82V$%;UAy; zfmJ^_@w=AlPlX%Ez3UkL_m}+s%E!swEOuq+1hcCwL|eTa$G30L&r1V1v!MgEEA%CM z^Vs@Ne0OUl=uN$6MW%Qkl3g(_CU*;3bn9zon4drq6K?5?^$3*MauC$+G8Hk~KnsKK zB6)k4b)0NwQd>2G-tHHXTLbpiBoJ?)w{?i^{R1l|!Ra=yu7-T08&~OvYhEu}?WP3d|4jrI&BDXh52|FL>pM7Rc1!7gjX61&c-b>8v zDw2N-E$mrd<}3w6Spi_(lk(DJ`J=vceP2IC#wAFv%>3F*;friUP8t0`%gg<~7> zFzPt3GG8v;K-V`82;0~g)(=_s= z#%9Xp$z^)Njp1B>7^$ib>A?Zs0Up64>_>=VKDW1FcZn7uLa ze!hnRqqw0~0^+%7xZ4v#{26f~eZh}Xdx@y$ouy}FLbTI?2w6`(A2KZ?AJ~<wq?6XcZ3NhxlO#02R3;=WdTqV}vsau>rha9TX!S9fz5iY^h+>n4j-?NNOj zkD-jmhXFA5HmLnH$VTSv1#f@KoaC?kv-w5>(9J+F~`@0^?+FqV{H%u z4h!<5lR7Dh7>A1dGsC(Ey1mb>MG=Zyv#yMjn&}qg z_@->3CD@q9X*+yDZ>k{3HdoZLh}+~%cAk8@X#x%Pt=c$``Ed&}3Q*&Kx*SkqMnkkG zi%6)CVsF*pwJApERllysu=2N}i*(ej!axK%m*@wM-%3Ov_YnvYuhL10>p(U6R1~{vIZszlI`c zHT0KGe^Kn~wP5gN{g5%1gx@Mmevso+VP4CFoVz;@KW5DWWN>i(=J~`d5VFLy3z6DF zLo>jA3al)VP-fl3o@$b=Z?!)pn$2_J(Y&fr8lG@Nr2wL5=%_p%Mn5N<$iDi=pj?EP zb?Hu|GTKvm_TYOwgRRY{%AJi#Bsf1`rx&5>&=X<`06U4HStOcX|i2z z4Xw6A(XF2l4Y$Mqo@`&KXlr@I_o1^j_S!rP&|Qrf-|oF~cs$+|h}VCH=`O_>?e3iD z7G*_y_s0KEf~CLk^*;qmRgReA55dxx*Z$XoCH+4Pmefmlc)Gr8njT$~Nm2<%y?I6S znL`Km5cZyoF7{dK6#5DT+8i?P)=QJpy57c8V{rVGMET3S#hTIMLV7ntQSjm}TXa0T zJw#Z$nB0Y%A0rcE0$^bA!#S5{qJ=#7jZE5w1qnJ5%HcGs>>Ey=Wl`dZ*HsS((qd3q zQd1txhcmbDtJX0ovK@PlF%t85N3R&=o@Ju zeHdN(0;mPQEPDGOA*6lHWZ2B;A<7-s&5w@ephrleXbfZyQW&%pb<3xB$~@H6gTm}y z+RhbNDigZ6^{_s5e`3X=N zenN|7-6t#6_LY7%xa!&?IggaDiagR>=-nS39VM+Q1e&Oup2q50J61w>=(G^~=fRSY z;!6hA5lG?PFunmNrwAoFn5W~L|EIwcdtfWTa$Mo2E9~{ozwye`kp=AV%C-hod?)XR zFTT#QF)z=XuFa=Yt~N}`5m6tZrQ5CG>jANC%}keTbUVF3#q7E~J6s4TTJ%zVwZtm| zMMcoZ3BeE4Kv&mCPTV~3RWh;q)Xx_ikdJK#9b`_`!Q&va=_?-3PiL9M){vTPvGao@ z%nT>R!m*eidT=;QJzXPMBR^b$u~0x#w2`o`7^X(|o3gGRnc5>99xYhOPPrht$TFwe^)8DC&~4XzHHVNP!V#<0*9p|)2Jv=-jt13AV>s61qu6_EElRWnH0m0;M9 zYfOSNs@f5P_LV?4Ua?^003>%qO>bO%!!ulZ9Q0!FkH~{IAyMzHX6|3lukv&=sKu#s z@7N;r<928LlDAcPA@!R8+#>mGZ~{p79Dh91{Ec9B2oV?$I&;w=X%CHRXa8hG@p1$C z@D(cSPU4}LSg?#f#}NQC1^p5Yxf?iIRz$5}gVpVJksV12-ugXo>*S~*{ORp@PlkuR zB@b(jr9tL#Bx~)>0|Uj>si7Xzj8V+##q%dVP0dB7Z-{>E$%C3zoZq)SHC&s^P^_Q? z$8K0WUa(Waa{mHwD5nNyG7!|6-H5usUVTV9(!jOT@}7+H@Pwoxi2uQ?;{S2dIp6+YG&FTr-JC46hr$@anuwu^7W`wcdA z6mkTZyfx5C`s)gY(!wTR6-+u^{Ql%` zGSge@NN|z=G~c1?l4$kb(dz=wsJEWhuhzNKM= zLcm#@os)lToennMZ#Gwu+&oLPaD1dSLR?+r$y@fi5FGHWL&hET)1(mh;4>O^@zUM?%*sK9*E@$4l>M_qzRmk<8x8OfdGP( z?L586Vf1=Afs*d=#&WY{^4Ty{Qr%052vJidky$ZdDIkg7^zz1Ld^qLXOWo^$(6D+W zSov#`t_;_p@N=>aFeCd;o=muPMdjX4Q;S?Yh~%h(=FgCyPvr6uzW{$1!2G}Dy;swt zSQah#&adcq#a!V{zkzTO^YjS87Ve$;!@eCO~Ef0RcQ~-h_6Cu-Qqv z9KTtR=v1hv#F7S2@vD(^8%*r(q_gV3L4HIPtAq4|NZY1c-*K(DHU z17W0Rw1)1C%%sK2oMMurYEL$d?n!83frhxKv(BSP7_x14{X1;%kdwcsDf z)h9m|em)LxI`$ZcWJjr{7^-Bbrr{?X{Xci6Z#elEXZaIULNEfOBuwH24uc>}K_mfD zFpeS+Ns=hF|A&$IFI^%~I2N3cqoRTOqS`|pD?!mm17RlwhZGNXR4PCp0H(0xGW&UUif~j$gvSHoFUv|f z`T*4FJD}?JmBpT-Hfl4Ytk2d%5wUsv$4~lGlmPu)l)xM24}vt=?CZAj@d5gX0=UNJ zJN9}MCq(dA@Bc$Uv~f@6;(e>dOpQGn{e_Ca2YI5#`XSZurTXDVFp+4(lOkd4bW!c) z#;%pi)nm7#=VJ#?R{8$d$umtU>Fua&02DJ?mCeFbvknyT=Y|lQ|4}-KWopJ+Kdw$6 z7o%9*A$@<+g-*Q%JD3KDy(y1umcD09DBgJd+4ksY-#D5>c0^wN2lD{FCv}W$=CdDD zCl$kI^&G%89l^uoJJv5H34mXND0{ss?0_n^{F-C5PF0S04>GG!VA%-7;K;8lRrF8C zT7hJm?mT#MV7eo!Kq^BeQOpa5z43}a3w2a`P;uH(jfhkujV~tFY`wz0^S20}t?qpX z!gj35vRLNZbtT~28r+%OB00ED&qFOg;l7)rZo6ujyMjwYfoFH{@Y~`Nx|conZwPSs zH?;+2^GuideZ?OUHMt!!=Y5GVlvRk~C865Y1~c24Da3`fz^DSs*Dw;Jd;J^(%6KP> zTrwM_kxmO8n}?TSPC4v@pYznqvgHgIo{#zq_DGaxeUVb%VTC`=YLtxWJhU4#O^1(-e&JevsofN zD?jeY{kY?W{<7nj{i^?{vjF}mw0OgqLaVR57Do_rpJ#lW2>!LBT>_tsa`Euo;sdkp zGj#v`7k7L`4E&v=R?DIcJ8!Tmm=#>;kJACuLaxE}HN1v5`K{l?>h=_SrbzcQN8Z$!k z^jO{3mJOSL=~1h!)kvHdt99B|a;>CTp{KmXGFCmaP+qUR!tbIhSbm@r( zd42mFU7Go@DaU1 z;_ucLKL@Vl$NwliR5X!KwI6~U;V}6*dIvWsJi>zf~=|NKLDI)~vHx zlwf&yl-aLyV!7pTE0OKN<+_&jsZl$!1S2fRfof$-EPPEf*Fs@ne26!9t7(R(_5fuq zmtyL4hVa#=={&UiLo5y9dNG-f7w(U|e_Jfoxki09B2A<{$^h1f_KaRQ_~tz+U1V95 zh4;;;Z>#MpEOiHk2@+MiyAl4fF&9yP^`OEL7QGh!un2O_Huz-Bsj~&P9CD~os1XScpkLEIif}2FZ10R66~BQRa7*88`$NZuD!Ra5~>N@ zZ}dwq4EUwIFlDZytX##bauw*Oh-c~5$3wx$Blh{0VWW#0y98o^T9XG>$?liCO>VF{ zzEG@LLdPBWux-_n%L**7qsC&keZbUiwc26KbH-@eCd1`HLC z%ff1w!E5lJJv$E}TsVZklGA4CB1E5coME2qNzj}ej71ukR|<)dX!0)*_$7UUO}?wY zJwzG+8P>=6O95;e9mC|Q^7C7O$j#kP>~2!}`7J!KGHU*_z3T^{KDqG5UXh(Kr4Js@ zME1@zQdck!+v9Ymm*r03PNAhp4J_iSBHOc)v;`1E=@zL&#(Sa8rk7Js^H8o}rxt|I zBTN&mrrpFuN&>YgTR*LJfqkfjcmm}I%2OQ(Jdv}75EqYrE$;vx2I*m}Psg1kyRWfQ zZprb~Khl1ygsOyR)5oC2I}5H=6NGZUpf_N&5B%q^_U zi=>v`if{F}5yBo92#C@0E)hfuJfkZKXji8R=4Znu7qbyAQ#yE6jdr<<33tD{O8FM5 z#bJ{D_6>+(f!~>*fK0~LMv6(ow4i`PFd%0!Zn&iI zqvU^w+g;fn=B*m)QwJiX7)X)QQj|fIb=q&;#xFD0zP={vbK| z*NCkjh`s&^vB6&=Hc$U^#J-jE^BXo^t-pcThVA_ZwXIoY{hv_Vnt@~EuZH$_M+W?E zXuluXKk@FB+9hX=c`8nba=YB$?#yijR=lN_%DVKCWL*o?WhPNMbFUxL)_6OxJdl=2 zXFpnRNZDodo1Llt#t$dT$0TbSNoA?vXLh=UnRba45I{@~@G%LUY1l z`N4L^44)L;^BJO4h#OS6@tu{=ek}}U4U>;O=<$Jw`Axh zMCL;@^YqoDlTjLrqX%fALMTG!hz~wMRfcN==m@Ooo=^PNBcjlYIj>z#_Z-GHXj+0d z4i1)=J>NreN7#3T->k--v4JV&$kFP)9cFHd*9 zlZ9~7xtsa~!5~OP0{jQ$e(3YjG?D$Sm1^~F71dI3>(iHq^&LGsN*$8`5Y?sq^-A@H zLGqc8z*xf$-Vge4_|GnWc4HE7cXt#$|+{u7*Em0=4lcqfr>k;<(+3Nsg zVi!p9s!P%`8)Ste%lcd1pO{)`_&^^CLXzJr{gkYos+2yW-t!89ZVMO1TQYzc&ujx`RlbBbx3qPdpse6MzK0{nUcyNNU=5`P@y{N&VXlDGKn?-mM#&%tIT4Y zG@g65@HzA@O);%r0_bvW-HV`>_e%_krS=M6W!z%57IQFDc#MqrFBiDk^ZWhenaSJE zcnf7rN2t(-nDR@p-?y@nCi^{8D@w28t6joH<{!}CSD&Z<#TG-6eF0MgK2Z1bJoq2O z|M*!${xA0Zt_1(net*hjgBSrL7>I)~LLmr3!q6|*fnoeeN$;`m0id4*GemsMC$S@B zJ)FTlxnuC7+z0+zC~yyKap=fOCm%(=I5}cl_|r3oe+2ywog?fBX3kOy_)&?n;bgB>JR4I4qw(i`RiAaKyII$ zqUC;w1)A2Te5ujfV~{^@oUNahb1iUKxQ#ZxiXE7jN?MP}D%$6mxZxJyj~Ac&i^mIf zyU)8*w4#e(((X4AdhP&e?(6Gcg>S9$dceZ6)xRorvT(Q+!CmFrVRTe`S#UE z?*^&}XwDPX?PAGUErQ=v}7rqUM|%sTLrS$K=Z)zVcK0NoAgZc<&p{m zas?K6ZTeVQI%0cb3Ex2D9=Z|+<42X=XDIKH0Ub2ee2(R*x|6CzozmLXK=k1TArmHm zZe}3^E$@H5Ku=RW<^QN!pcyU_hj3Kc2FI z2{or>O|Kr8JjXa5*?wJvSkI+t~B{A}zwju_e|@0-A{E>CO`$IP-=pg8-jlavgT3ltKa zXu6_mUCbi`Vz14~OEdRf8Mi#l{k}lz-d@fXZV0}Nv67YEjR9z7<*pe?F_iiPYVq~O zH3aBBpSp|}e11+bHcB~HBPzP9b^NNPS|-r8wWT4gPMQe;{mZ`C$P9DdLb!v@w%&rZ zzmUHFm7mH%YJi{W@BSpkH2N*t6Bmn0lnlyV<5po#w+Hk31pWup{c110&qx<<4<*^w zH??cl5Pr)s;LktAVC8cm% zf}wKhQJkKGPi!Z(+S#XaHU_YH+$p7FyD9|gcbre`o4XM{8p?VZo>>Ycq$D;@ejOA8 zHTL;p^2CYag@L+}K4BEL{FEs8K3DiH08UB$ke_45z1}3{Fb=UWQ9AT4crc;+#ZT&Y;0 zP7>?lA|2hE4J_7)TmTte2d+on`lTdqPLd9}s`-Vvr3R2(p`ct}sgh>qCc@avW zBu?QZ_)F=>J>=h+#L=dZ9Etp$TY%KjLkUBNaw8FciqqgDML@#;2H{`lE|B9;A~=cz zAncP1Nsn%a{VALtnFDZ?F0z=3>*I90`$?BilIaG>S%h{hw_*7NCdabg$cjs zF0SryN4iQqcX#@i#@u@OhqyjK&$FakDr?sg^RS=GPvZLe1FRVxR2@YJ=gap@g7J0R zFatl91X$mk!akD7)_gY=MA_maU$K343j4lI;jRl;(mL=hGjg%`J*4m-x>W}|m(jn@ z*xY5FMT;B1jI!j^uX=h%%>j381MHv6p+)c{rZh) zd#v9O3z-_5b}?>R+KgyA+GfnVOQ#zAdm=NXY@Qw}pIoU`*g%bOgdR zXPxV1N;xKaKISwY)l5N15I##M^#!v}`C)j@6A<9ysU;<72rKoBWSJ&#MavaBSE<`W zVasdQKXEf@1#Vp~I#}8*$(eEG=1ftqYDWXLsP$Whxf*?E?j3l0+A$jhiyOL)p4=U1 zWZ&MKTh-f5XrFk3(-m5SkJm&5D0}Vm9=OuveB&Q>dSa(7>zX#^Y1u)G9s`3}w|uZU z(`0u>6GFM@?@@ml;8@LM`65Gx#pE*p-mW%fD^g@^XT!L2Sm7t9`{gRqJ<0dMGnxaG z6z&}TVg+Z~xra*4{p-$3N$)IJA_5hj3dQre)i8~4EbeLz+VOFavy^a^nOhp-uWG5} zUJvB5wltI81JSY{2y#{6<%|*ldgE#aEc(@}!Sh^bnS7?}#@&c%kpmfy3q@H5kX>-) z4BzD`!c_hY-EFTyHXPEFJJ2AGfyv!N&g&DHx~h}6{|$_&Jil#hx@WeA6Mh1!?=G{=q}QG+W*FQ_S<M+6*~1KgNM{<-o*{I z$v-ZNIL13#snv68+;h}2F1g7=Bv4_<&xL@mS7P#9{eGnoR=4Pa`JSgR0nMv7alC7(x+W%Ir@n(f#abO! zMJ!L$VLugpS#`>o{c&)}q&wa|2k-@x8MgSKKNeLE`^jkvz#lag*URw&&)^r@plMxa zAX?PvaAsCosAzwGm$abMSDLA4!8-o3$6p}I81S=0#&oox(4M|C&HXt!GZTHGX)D_g zyn}R-(b;hVUqAlN`+oahj-vs6-p|B)`x)uyvB962nif#nn~xK6KVH!~{(8rW1(FVF z=1mI`4G{W%h5bs&=ZwmJg?-5T&;y-mj*;vK)0Z`s4z^5dOS$_qmk|tln?!CUBN|zs*M= zaL~7YNF56`93slw`=MCP7xv!;BISYGeMX_!ROP$Z=}YeK*Rh8C-xcZXur5Ul-JRRBrM8b9^{`7L64w0m$BU-Mo$7`0tp;HT#@LK`p!cP1b+U^) zfF(fApqdj*SRLHG{r=VXP^^%Oq(S@pdY}_CrJ!i zX4q*sT7mRs>?H|$w;aYqm}YIy+8&WREt!wgBGp41>$J285^~e?w5^)~7+ZX7A$`7P z8Y8xRb$(aqrSm*Qzgqo8lbL)@IuTac7;W{W7~$MOhKm;8@X~|}M+Ar@w+#-y?zG^P zOC8#4(cP}9J5(w)^fYw6nKLd2Ur>mXWP4#ck;&ef12q`R88VgwSA6Tb$3x+~i{-p- z#bmXQIo^!!1TNfTO@ttvP}|Mtd#|ycS@A?tq&GLQAC^E28x7>pLc_yqYml3%QG(_& z4!RM9XEVPN&$MwDcp5!dkj8T}`+X;7lGv`VqYowAP74pj$jOti=juNCGQSgiBY5w+ zp!Z)<$x2i*pHjk4BSddeQs(*GXxEcGZ`p`Ug$6xg5$H7A(U-uNwMS+5Iyea&vPP1Z zF;iCKBI$TY$EBgcf}^c+-m5@8;-C4JeQBHdp_=&bI+gw11OMbr_UD8Cq=W|JzwDPz zKRWS5a@boYhk53q%t9bvTa+pA;PQugXL@wEP`_C?jgGV^N**D_p>T$N+=Y=N+Snf_ zA!L8cS^O?VO;j*>gmU26N?Xf&nQ0Da!KL{YN+(c)5h3Q zWPB)`g~tfdL&ofgIa1`K&=ww9WAKw5#y>}a$-klSFLSe>KH&Ac?)-(7(O)XmT0aSi z*?hDB+{erJYhu$j_5dVi%mO+pe*d8Viz5C|2^@VB7CZW80Gp4GeC*dgl=+8};je*6 zNyADR&1!i?l}-II5Lr~y!hlaDFwgzuB5LgO)ph2+nTXD{wFf1xZlR+Na?3G$fAeMm z80f3P*#3gZ(!uv!EM&NcV7mb?Z?EBp??z-G_ov_l_>1UdX5#l1M>j5fK63)a)K=tf zA|%a(17BJx?uOOMI(LJ((intD0y~yZbN%KLM=4sZJ=*JfABh};*S8(KZ+Cw% zr`ybl)%e%|kd{+R^X(q??(2yWy$jhZWd&K~^O>DuVq0&9h!5Qg;Zxgq=4i|^R801F|abt>p| z`@Am#+ck&8ejJ$hDGWB$B?RFWxtkycGV(|&do(xa>4*@QMtry+6c-Zv{gGa7;Xdsb zVFaM~?O8d`bnbY*;J3Pw^QAK^e{~m#iq!_Xk-c4JQy>c3X4i!M+ZE!7AE z>uo4tSJArE2BfUO*nFwNxKY%w!b9j^3ZM?; z`$oMk*c^d^A9mA4c->sQxy$(dW<7Jit16~LE$d@>XKW0+r4#eG zbhQEQheQpTwTwKutEEKtZs{#V~C968P;9z%zNgqRsA^Y;6GXm@)s@pN*;*saI7x_GGW%mJQ7ywFnMBC1g)1JIgL zg)926Qf2U555vpOy@cf=xOf`aL#B_X0vvlTm14OJ+2?+rPn}b7jsALcub~Cxyi>FA z#6cpR^j3O0Td!C-vFj8W{N=*k;HK^(oH#e}ZJrshbW<0haMUMYTw#+EjQPpJ z@r`!byL&;scF4|&8RB}8PZCO9qF6hv8(JYggVb_{+UcX!?_`V-C!j6rgd%yvW6lYj zO{?rWhz=GecJ{I5X~Y>{XSKGV&6Ol8NE~&E77^GeC1t!vx|0JCrUwNpFV|Kt`j^wd zjMSOJrKBgcCsd=XvN3rV6dd4pSn5}erm`Ekhvr5PV&3F90KOR|x8F;3DvZSG9A$id z#jOd&8)v}Nl^#R)YNX9D`)7Yjx}vxe9BEA~_d=QiH65TGv3$S8fND=k|Van*?>S0b)yKnt1WeMGEB>9M7EcQkGis% zNN8ZtV$n7tCz>g-@>%1as4G9zXMIol^Q&3+Ks?kL+k7t|o!FMY2K2oVa zyzn#o`Fn?a=RLpN{ZGr(6a}IXh2sPYffNXV1cjsfCYU5(h#*Lu1R)IjrH=pM{Qb#a zLZ9p=h9Aq;F#eUnMDU^2^0mbo`#1V)H5n8+I8S)6rz0hL2+`n2{dWW%Jy3XXG({ik zdmm3&1pU;U6Gy5S`CV%Eu&kqwqVhC3lEf)_)PfVlaYh(9a>l{OzV3Jm{~JaR1_giU z*WquM9DMKS@xni5>By%_9X{644?A|`-z4>y?C5@^6xPc(c4W|!bK+ktB3I#(Y|SNl zzvRvTrLFP|s2gV~%=KHcQ$8AR1BW+5c#l&X?uRa3Md53s4uv|mU}}#frTm~9z*oMJ z#pO5e@o3rE5Bl-OVXgT~!}0ac+e#Wy41MOZqs`@$>>VxNSvt>F-(h2~p2?+O^EXEq zm-Ex8{-9tF1_qShsKoqIBu2TN@HL&Ufwlz?-%dM(2W%rSTn%|&L(0s==LmL!;%(wg zT+DgK-AB~UdYJ0ScygOmY+t49TnZe!j<1E?vZ5HIth3b7)UP2Rd8N!CklPHSB( zQI|x6DAuDH%E1K`;ff{hePL;wqG^`_AR%QWnGGVG8N0i8njiAV9-pcxOGJpdh);Qd zis|MB*Xe|X)Jlvp-X-9JNLNp|RSgi2^YgLLnW(B~zKur0Infl@5c{`HxK1fTN)GYm zNphZVga=d0)Wk>ORwvVhy_X;+z&$4(Cmv-{MU=$rW|kIW)@HD&NA(jnY`jK~QZt(A zwNaEong|xmX||P~PFYx2WdepBYRN6g`pdZrVew+=6{bB$a|*{69v5?ReP8V$7JIPS zKBH#&Lo!A(+9nFLW!yl4E{loG@?ho~#);{Q^`64UgsOWbrI=#@*C-L7v!71N^kp|pD@tgU|Q57Rc9`d#VW(5s?e& zWIw%pxk4nE3U&4qJ*iBO!nBpTkXI;7(n%*AitAW+p@+WySez9c^> z9Llyvg3J;y^)8DVS*`Tc>B951ao*#?w9N}V@^kiENu=o!W#{-wH}vXtC>z35!I&7U`{!y4c;~Zy9hJI&?cImyk}0X|5hZt$#jB1dD1)kK z#1MdvI{M;u-qKjNgiqI{P&7KOvIm7~C+x<@k1mQ(XiWBCXPq#<&wQEQF@LaY9WGy2 z;J((ZQRD6nGVd0AQXf;|oO)_utDBr^;Pa_6*LA0unY9wn_HIf;*|VzG6!IRdC?^7V z+wVShk?wNE1!Y~Zc&@w7Ysmq*=s6N-;CdtU0jHvQ$fTmzn+=-9!WcF$hF?bF03%7N z)qA=Nx5j(KLUL{xE-C~}NRSI(%+LM8ZUS;i(+U@=JM{I?lDb(R4^NYn^fX59+@Gnhq=3iz~wa@xl?sT{>{`F4&B^FzgjGt%p|M={dd|ZIP zUFd7;dKC=oejz34t7I#F?t%Y*%b>ou)BpDY{mAZ!gV&)14B`Zcz!-{P*sqve__0Ae zO8ty|#~SXe(C5XplR?(_*yjzkmnsnf@z zkBV`86cg?|>S)aSG|*!^llz^B@-dS1poH+JPcZ&eEbe35&$w^L;$x9L`g9ov9|9MF zp9Tl?$Ykx@ltd0cf+YAfCQ=_eDeTkEj~zleNc2}sPIw%P?Cc+oOhJ>KT3!fO=s(i- zpL|yq{zna>@lbT~*!fd~$kIL&He-G;xg8Wv-^5&0&>C&g_sKy@rEI|-{Y{Xy_;fi6->S6@dkD57wUNDer{@)Z36=Q&v5?K9QE-Y{*%+=mnz8Z=(|@x)sPkVMXB(* z0iUM)?fb?*eL#Qb^8xJ{B$vF*Z0Y@)iJrT~5_Pg|Im zfY$F#r7lDX6OsfKrVWY! zf>1982@LL+%`tm*C5p zBpLxuLMSE@P4f?2?rjdT=HwZ`#dNYzl37FbLfiAkR_C~fYY>ha+6x+slCnFpuqou+ zfVX4?^CQDdhGM}^1f#mSO?F6X#3P2=OBB~HMTgj_ESc4e&*w*)3NI)1!(hH}$rT6q z!f744ltV~mS}sEkINQKD6-&whud&H8K7*f0+$m(vzS&^;qL}PyNE-6i-OZG1VBO;g z9Y-knNi6+I1{>}95LeclZ;_Hmj!v<|SQo(}%h-|KUchHB!ANGZ3o5k^tO2w{Uf@B* zMWn+ok#WPG*{jA*QgH?m7b5Yk%>BHY-jP0muqMqWMy}lHK6g-B!(+z+E2@KJQF3^L zfVb()1V|X15S+-(?O~CU`fkPCh(+oOM=FQ7#0J~#wS%Yq8#68`83U?(K3%a00m~NG z^!=74%KXA4&8-5PteEf`st@Z32t`3$FAx1Qy}H6j(f#WW!_4 zHbIa66+Ak6Q$X;LON4?$Oljwi1o3HMN&k%pzb3WR!CB$>vu;WrWuu3uM{=y263LNC z+=(m#A00b8)r`{PK}>!uK7Q*A0v-C*I};_ykE#WE^wA!AQp6$dv_CzTm*b8!THFmLRn4PJ))H ziQtXgb9BZ3RRW7=zH?(ghTS2^9P2cL1@rtJCig>}wXORy4TlDQ2xN^@U!TdTe z4vmGqn~ZrFyEC5@wU}0yr(&qcX3@mR^I}q<1`0+7(m@S)ecQGW;y?zuuT;5qh4Jn} zLc61x!>teUlw9p19O`s-^D^d3`oUyMW43*#%)#i^L1{P<%;+jWwNKF|qavHFQIm#R zDnW0+Yc^HN>kEEp?CXARnJHG(cK|Zg^eVUIwB2_SXR5tXYXI{|?i|if^WQdaJlY<{ z=U2>1;twXlAoOX0*th@OA@SdL{oW$+tKI(8E`g&6Nf0PSkPw1EI12uBWr|1FW!H(_dUxHqIfL?w2qg{g4WUpA#Vf&ADs!t|IW4T0O z=I`wiw(cG!&|fEV!LGincpaVT-12jqL@ZF-kHU!nH%t4VzPCvr$C{kVTBx!yKUOFG zAydfCi&)apcWou!;=vG6vahC!wg0uSNGT7X`>8$R80pX6+B>-YQd;mg=wavP54+sty0ccnF=F*^@@bT zn|F_)y#m-Qu3O59h9sB3W#C{U{I9n;^uhIwNLZv>{K;<_b2zlkBNW9pOAi5+hh|+ksU!9 zh&p(m-aWB4$tU|p_}HRMsC@+EMW4#-W^72vHw$LR(t=(?ah6j~Zb{j$^DHHKy#SKu z{2e}0lOcXWgtpW7h~?%<-kmV&Q$6?nObE^vUcXkv1Akc(e@kkn=Y}q;Gh!56+`UY1 zcJM=W$Q360BF=QBbz{e^+%OZZbf4g4f)(8QY=)?6XnDj}9x zRHy`&D{r%G%UL?PZD>QrLHP(pXYCrjY%r&|DRZ{iKn-FV6?oV(?(?R`}lj1D1` zT3S!qdD}j!X3CvlUegHXNNw8#*fUmX0Ne3>Y=rqW-8^ZC#SsrRN0gSd?{m|)#XH%& z!$1J%WR<91*Y2`g`08A5co^bX7XeKm@)wn$u(7wHy5m{pfy}*S5rl4>XVe~37lO%v z!l747@?P;Wm)cf5`z6CdJHRYZH#r`8f`sbt9M8Ehpi3q2iJ`58#9*&YGTp>W%Tf5r z2s%{`mk1G%hB;5Esu_~}25x=iX|KqK^^qFPn9=(S?lH)E&MITjE@FZw@!y6beR|qK zTnyjKJD`6Fhs6E&?O)x3e}bidaM(A9`sE>i?&u>x^r#-eVI0RP7y}6ehY1Ko2pq&Q z48>s-BuD}VL1dpQez_8{&*$OCED=eM0uJOOg>X0xp&v=VkJ!*2>mczF0|ntP@oSHW zcIZfgL+^mXk2bp_-uo;9>>ES!D0wBJW8)EPeNo{3xG>_st0_6+F#K2ti9gMT1b#>f z?g8L_f&EGp{E^DXjR4#l{~gZ4*ikEke6a7(DMF7WjD1W8DE}pX z@!nB00T$oz%S!k>m0#c>SnpDuBS>YG=jex)@Bin@#L-YNKiEGbf?k0?$Ot@5j_08e z@^k-V9=sfax1jIn9~k=9t!MJ~4?F!)+nOm4MpU-%)weq&U6(y%K~&Z_@C^ih-l%Zd zPqIal`h(=cjawKab|}YlzW5yje;6L4`xN?3m%;vVr|;fLSC-3+P5DO^x7oX<^>S+0 zkh_44wDOZF-jEAYaY4mt%xD9167N$iSdEJI&SPAW?;@kcrwdk{Mgxrpf*+;X>g@?V z4>`V^v+gAjEXX$Yl>tj90eZEcEwXMj^)b+y80_zuc+ry3<9dXi^UV>G!4b`_BcyNjIHlJeseth@u&qJ1MRWNslu3h%pLp!!&5{Z{Yc&nH%MD z64+*KxrUe9J_SCWIe=<2_NuiYb$2Y!YV*y5JfocQ$MYn|&#U@O%g3@9h=b8Eg9@RR zg}7B?(im5-0nzhY6QNL~-`*x^sz2-b6^Hb|;)pv4yEa}p@wTxU4l<~+*H zsiVJ5np*CsClG`)+Tf3>9{B=pTAKEQX(bIqy+4)Lo6O7o<9XCu<@v7`oT^uHg$&Jn z+Qdup%U2x%$lzktWe07}UJzgKL-CbrChVm=0l#zq`Q-8GvTCH0onF`08`pr-#l$p? z%Uv&|vjE(t(53v><}m16xmH&JdK9Cdl?0t5qGZS3&N&KyNuSlrXeKg$Rh4tO6_oeL zmeqZXK%R#F5(+YySh`X{X|d9{##O0;+CCe<<%?^xd%#Tu2v3pfnKMO1c&@~?c3U~Z zZ+F0~!0H4M6(eJ-fP1ZM)j{L-u1iO4H1vH0 zwoCc$taP*HzpsGsV^b3FvjV~sOC1uz3+^uThEI|_tdm5>&#m&G%7kBSy7yU#DRBpJ zNv-Wg7fHo+JZmngJQj|LA@=r~gx-Y=%Qm{K?21X z>%c51$ZXKCG2Q;1wt8%y5N7Nfkaa}GLkL%H6Q$1Q*A>qD+>T)&Viof|@mg1?h@d@# z@?KDW)N0zVb+gMA_}4;ZOXzN4@nX#uq_jW8;AV-X$9yxXk!h-DHJoP|0Y* ztPm!r25GH#UofF|vO%<{s<}KN3%;~qygV0ygIZgd-#`ev7`!3FHCYl$d&q0U)V9hm zzGh&_^fw?*ltN_gttdrFR!hEyiG-%H3E*H0KAa}DfIw6wt7E7a1g4R9i_p3iV4 zrcrFwiq+Tw32`cAhE^B!Q-|wRx2zkO2J>>R0QJF`WNq#|SYW$ME+lh5zj+3Ky+k0EH8 z@P_8;n5Jj-y(^uQ0jFA;P*TK!;=su};02*LAufA_5fQnCCw$m|yme-4xAP#f9&l&H z$h9urULVK{ND+2dqqjQL73tb|{0Ou;Dcs8WFvj^cT!jQvJLA^7#eM2FHVgSp7OH08&Tu6aHx)BE#cf z937cz3_D_S0z1SDK=`ZJasnOc=oI^RME)DWf5)oQj|6jg@Ug>nGB^r4juH{#&`SV6 zZrkC<+vqT)B#un?e(n9d`-OLs7{^EXE|?sJCFrMPYUf-bdhjxc+~4CrW>p3sff7G4 zg+D;#fTOo<47)X)<45-Y1gk3klU3bW3sW}f&#da(#{Y|1)%72G+hEW z!s*CC&_^(wfIIO*A(UoLxZ68~#=8yuQi97{J!RRwJ3W5a3eQ*DFV{T9H=3v$kj zHimQzmcTVQy2f|1DLhTW&`PeDXhcYxI+Rthkfz%^XCO_!@pPgVwe?t<7Mia9Q-;)J zP;W2b8VMd&vZW8XVguuY5d0s^z1Oy**s?A9&R48=wR?m&^@bHjfUpAI@E##R!hHP& zWo50Ztjw}|pLVikn+8dP!4!(<5z(VZ;r6w20a+D?PgAp_N0ZNJ!Y2EP;%q)n?K3S5 zu&1DvFS#2)riL+E_ZJi>1W)oR%5~wiTk$Cz_aIs-bX0|~P0Z3#c)d7D%1m&rO;_2` z&kaS=0(fhVc|mqOIaj%1yg7W?uU0VvI8=t=By~>X5A@?P3apL2L5Y2@k+eL{c~ljY zvmy;Z1m)J;cL;l~Axb+*%bkYmks(8KDH<~}a0QQ5q zZ^`{>i_CTR|JYmf&a$}PuEph&i4U0vPVQ;)8>em?#V1^`dw95~zx=njh@pehV-etk zW^$3#P|wB1J?AW~bY9O7sM_BZ(FNi$T(V0;%x4ES*J=#z+~(g~#3FAPoLJE?z6)=ItnSt=HbK8Feg|)7 za+)=nZr+ldMy1PDQ0k{DAiDZ`1Wim;iPu|&j-sN;sf##ogA@6(b%c{7amOqT5S%#N|8(Hg?@-nCeUIp}>|kU#L!sUi z1IRs8(h7^;8^Zq!sA~Nksyc=Qz~7>(Uk?5+qbl`pqpEG4Q6oT!ry!@DT0RuF3eF+F zi6czn(qfswd1=ml{2YlvgFA2N%jGqMn;4z)$+nfV(3?GWlX~@xZ<(B6I_yg;3)<;A zz0^U`UV!jWiM}Z2os!bh{$#G#W0TBBUDovI*CySbDyvyXcc+gth|-?aKx8Qo&I z%jTJYL+A@J-tEwrPQu_k%%_;*k6I=i9c7$QDcB4CU&zD?^;05Xa@(L4K+m-rX6vL^KZEqhp#9 z-$D>aA;t-G&)PvQ6{E957_3+FYvWeLy}Xj#U4^qS8?A1lO&$j`0&7Z)nztE9*VnS& z0R0Ry<<*{~Fqx|xUk&NpV9z@eJ~`IkP-dmkvb}@hEAASSrPU$`aRfEj1{kepsU}#< z+%h`Riv>A!7vuFV7s|B=T<`LnhQyfoo5??J;#5p0+iYm*%FG zh>)C`tSV@EE=l#diLXdXIQ&bX9X300CrKY6Y`Kimh zm!b=EuKANoo&9Mrc#N5CJn4XqQ?-Sc+bC~*7=91 zYAG_~tyE9CzO9!z3_R;)NZ0O2S^NR2;>-eeLx_JQuARV@W($`WZiw-)Wd8m7=(F*v z?Z9;!ZnzRaXZn4w*RZrFq+bB#(%#~eVAa~-zN?{`kl^V)=mLR|7Pp@%W)twE?L;Mi z&KEw5C6S?=r+T`38}k}F2@o8nSi9>zRyJ!o(=jIbJ*g7!@NzRIi&cdCCCnb7KdBv? zyx;1pqVJoc6-#H>*!}$m9*g&+&!}C(b`6rEg-bSJCA?vKO^f3LMM>ZycC<4jTN*6d zZc*Igea(W}OO}f-if68mF82k%{bAz$He~!diEwxEB}q?OQf){S%qa zI#vxrd=4z{Ha@}|0Mga@CHhV@5siFWhxF>&ugE{+EQf*5^0Ysq6zIy6=Wcmi%1A13 zM&3Vmj4UiO?Pma@aQ4d$I~2>O4Am0^orjK7bhWo<+MY|Lr?|N!xR$F$U3`;X&anF( zvC3V`6}PAXNL4WTk-mz#QE`IR*eoS4&R|Y0mUH(v8KN&izF0_U;DhWW(M_dJR)mPS zFP4+-6n~MPnOE-1$UrISgj>^CU<10^%Z7UxGQW=JG-6K zQKAOinn$l)YpPK3B}mMm4upGRiA;hKSo#w3F3~53slZI1(i){~tCafF4wh~;d>Mr4 z46OU@dcSl2{c?9J$2KX1I>|fa7#AB*>6|0jO5-wrGJw~PHUy5z?T{f4=TAtZ*N zB!q(`3ht1LLP#7%Km@_z9ekk_h@lYmJ@j<|rq8I(1J58wDu{%SBHYmeL>%M9(oYNc z4ur_;Co1_a`r5%7`qAdufzOVN4vEq5$S9%UA+LjG2P8|u5AFgFkx&Xbl+Cf^CnWm; z`q}{@_?ZtH;h!#bIfU*y{FiZ`ET+c#5={H(eNS?OW14TreY(!Z zyDFo8;g%GtYF?TybPnpHkz04H`V|hk?l=emJ`<6SC*40!digLlsn#LG^%VzAe0Wd# z&j?VKVPZss;?}JtzTtmqUpKd(shqYt>mMrT(WXxS+`696htSS1$10}zmTU93xBcr~ z1OH^(Uw3^_Y=FPUvEc%2&EHN%!g1Y7^=5CU%Oh1?iv~Iza*W6o5iEQ_%89;4wXz`| zRfaAl--b%c=ix0o9=qx1ivuxCPt$K>(fAuGPH7wiQ7OCX{qDUJ)dLHxB&qi^5?J+y z8fr71kafQ0YYP_wKSyPPO!SqpGUa4OS03dlu?P6PqUkFgD|^(OAT-?Kgr53YoOfKy zdgkoj+xG)5vo{69X>?mVkM7;f8qSzokYqyx(Sn%oUf)Bj{Q1J*bKLaz*dEW&?PjuX z^g-aa7aX*2n$mCnHCyZF<&aF0#f{Tu+)pEhA+u}j%cnaVI5;+ckD+<_4MP)P7+asgC)T>&`qHNSjW?(F z4kDT@?4UnjXs%D!t@N7&7)2ZfAd>$(6(ja*yui%LUw{e43iJ1f~?-y-i3NiIWGv74W(T z7}v@wM|OdjD|+clplN5_y!eJGohBxIqiMLdms5^tGGwp!%k$AFZ>yv4#VFzHmA7Lq z^0yNKvX$-L!HohKY%O0?&BV>N*|C^#10Qp-S-qbKDBNB$p~wtZZ|W)}`%RB>&k)+wUcp-N7X5D1bOh7bru z!6ZVW6t?3|425xm`tA&D;=}jcy&wX8Dn4J55y?^9LDFN+bovSV!{pPP`+fRMh8+zB z;b$1wF^7aa`g-G!pWP3F;31B(JGCVKBm~IA;qFcf0S|GMA2`J?6`W7e2#pV6?A;53 zUtWeE1tci?nbEns*666+9GR4T^`j<*e^g+wqhb|7pZ*Q#xJLA&>5Uv|i$8OUta&)a z82+zQ#D(xwAlc*U%BFJGWQ7?Cj#ijF-#^p)r+2sc^!CNG0RP4z9-amGHxBXeEWnW= z_@@r>*fsEP9OAKS;Ga1}bxuBFfAJIe@>i7@CU=J1FlZ^)N}4tTj95qW;!WFb+wZrR zHo9qVvY;Sj*Ef46jYK{{ej{f<(4iTY%#rEU*G&y_RE) z?($ZBPN$R1P5KjiC&~;W48XML+uidGXpbF97D=_YJSukkmz@OgJuk64i7R-8do;)e zCloXdSGY9BHPIUC;+q=^pl7YyVOC97bkj?MK)0i1Auec>d4(d}nt0bVle&4sgw+qQ zl$Yhe9a?T#xK7s_ACRknf>Hx4s+v{B8FtR}jNRo*@4Iq(szkflxHvtGx)ajc)H@_J zU-dYz(Az13F@6JhA5>xM3U%)=)8FYU`^9ekT0-+*g%|&1q2F22-!AfN3yQ)NLZG{) z1VI$1h~0vIq6~t=~QSkR_ChwTMQCW8ZBgV~YQ+sDhrwU#wB`YisnaGN^du zbiX8gHyZsg_A7cfmS4#CUks}A%Q5xxtum-<|7O}FKQF&Nn;f<3uhP?_&5IwM>iT%j zM?IRwDj7PsRwAi-`T27>?INf?WE&5YW%E0mer*fceM< z?2z-dWtyffL`b%4D6^B*d1rHY6l`8fK>3i5B%O>%0Vf>Q%{!u+L^&g<*df_NaUA>nQAsYos)tcu~w zWn@<-H)m>Inj9q%f}SVYBCOFh(!Rp(8!)jtVP7DDyoLSPJM(mdRM($7tBIXVQj*Qn zEpQ2TtGlX>cDadpdlGQ5mEwWQPmTe+CB0!svr}%tCNKtNb`e)BmMqz(Hq4a3DS`Zm zo+ZDQD4?YR3@4}77~Y~umzQh{Kv@{Vhz6azeW%E}OQzy1k254H6&zfNDSi>2 zBk7mGgR~1EB-5ikbDOF;CpA^HLMEzm8p5VRAs%-#^483b$cTn1co&DDD;&KnvSSM? z8Ogf?1IXc`x1sRn34w_-TvEp3#!e z1E|B_&?Nf4xA`|w#6MZ+kA2^7qK8k>5=D2v2O{9^2Vn{#@I8(|jv<63ir^@Oem8hH zWd*Px9`9Na}Dhd(g4_K0Ntw z!tg`7aracnXXZ{q9Rm#y{p;l5#Z&1IeBbWu!cYI&?sl_JxAZ}zCl5l{{`C+TN{>Aw z@MlCKauiPw##ngNJogQQpV>f1v_t*0M@R6d6ClkFlG(m;@~12@_IC7+#rI!)ALF|B z_f1ZF&Vgp!xIy70#MSSDhvI)Lc=+pn@2GPE|HkhfZV&i3e(!L5z~AtDn=1N;2Dfs}j*7ZJ4g(PUJF7Er!vSHC)D8KWksI2)Z@Z1 zIX4{$sJS}NYWz4!r@vdnI(z}}YiBT0lhohZVoA!ER*Ncs*LuHfNsIJnHut5Uubn^M zmyo9Cz>pSzR$!8B=QCdq=GE>vHgCQ7Y)RT z=1wFquCe#`jpolStv}l-^j}!bf3(u?%;q<%{Kjsg7=(c!hLIFOAOuJd1cmH&^O#Ns zLO2egF!KGR3;F5uiH}LAhlYQ4r0XN}Nb(Oqkp1*~nDR3-;7@oQ`LOJnb^k}k&INxGE(TS=F{zU5=b ze}_nN#(HK8cPNhukaFYbQoYn0p(@>ux_3y7tUx&x!TjR;euMlc5{6rd5f{|Z7H&6s z%d6IzXmH2Si%fVJyKY?z(ZYoDov{~-gQN^tderSb{M6x%Cp3*4KdDEJaO^nrP4-~Ry9i6!Th$2x<8Fr)B+D!?HBeD$$GYBRZ=+`ZoC)|mMC93@v<;Kp*w5XR}Y@eO=)qH_U6LY zEOIDDE^#3=m}*>gtWX8nGr(#|XoWV5J=;8>;94fu!roelcXN+g&DeZUHAM=2DTaPh zL4oJUaDld7==Bn*vn9Y6Q`>g7g4AP*%~&vh&rgM0zyt>~p-Uz9~Cl(#j|5!Oo{sQTNr& zERC#qM_Fs&h7Y`y0HIU<*3feyMzW*qXN+`5cN#%Vu4p@4113o@d=O6BjciE}r#Se7OLH>vpDi$62dHzI001B_G5uGmw!sn{Wc;aw5-Y}dGYS1imX_7JEeH5pfLxM-v(sre~Bd5senDW zkFKb<$b2;8my(u{D!Ak~cchS^d(YyHw1C|T%{)wGB+4qBD ztT-FO@H;d>jg5lU#uy;`5?u~*-m9S#FTcGv!$MxV=cTM=YE6KXmA+Kzj!|u*>DAG) zRF@8D532xj>kBf{4k{(%Nw1>Tf*~#V!uiohRyW`k6500{$b_c?JtefwG_*XM8d&ZQ zKDS?$Jc+p{X)|N2#Kr{ICy~dQe8(D$3aDsk*uNBjzvHn?8W81Po{0YNK$&TK)z;92$e@5My3$XST&FSeKUI zY4LS7IFMo^wN~Cb#+|Bu>El9^pAH0^{U&)!ZYkPV>%mSA5%k`iym4M7g9)9K3raFm znYzxYgv&b=y)TuseDBn*R+XA`5-NivCxtX#Pt9{~yhF}`5=GJ9m7DnVlSiBjT znMB)-goD#x25qda>YV-`)1v=C>-Og-vGfnfy8n2QuTbsJ7x+!741_3<+CdtI5Eu!A z6oMSI5eUH%3`WVLaE3siF|NOZZBTT;tmsov+F=j!QAjytweW-LaZE7yNNi=vPw9S~ z{62vsJ2J7!N7W=G51@3+eua-}Se6}WSStH8t&;~4IEoH*cZ{KpcX;?C*am+Z-J#>` z`_hN}*QbRY{)}1plKee7w}>Mpz3)8wOn*AW$jBo^$3F9AVd66@0XbkN8Xd9m4oCM$ z82R&7bNGO53)~$oj;mkK=IAQCli#G%SH!Z!oS?+ z>tqe?!XfdM+jn6{Wkqucn#9$Y;ZMNlg~#+KSQvwrS_6&`59NxVL6m8LlxBnG?L(gZ z75De6au;v}nNqFYY=_zn17kTLpBulL;kSQ3gk71$GanHm_la2l4D;v%(qX`X=f1&t z=ph{TRX6O%Yy7iI1pe$A|LhWh?_J~H7>;WKxL{de-rvV?)?^J4Hqh)6xgIoJ zqa=i;<7lxF(#DlSxmgHlxC5NUqJsF|S+-`<1NsfAM%pZhH)%Fx1{M{noGL6n1-Dic zhd{WzyY8wB4@t(8C$-dCHl7Ux?=BmT5G)H&jCndm1mBm`EyJ4glr7yJvQiw)-OF?u zuG(#?usjx&>4c@)>#UUzOqOc6)&_qlT;QAz%=@y!D#P8EshbO5Ggo& z5&YY{HVxmsFB!L%I2@k(%Rx(Z0@(1dOzQke7_Pi@VuSDmxA=#`Gvo3##MiJ4+E6aGAa3Wxh-(?F3LNL zR%~$}7$fQEp^MY^jhjH~8H5F3U3XK6pCHbX)tR|4gy0j@q?c&(LdM)Eo&HYOaQCR{ zr6B{JyLt>rzn<4%ar)4eSl~rvnRDq~b2#OXwJ5UvwwZC|d1Wt8lSCgK9SF&AVlQk8 zLLm;W5Z8uhQ!P4v#=|HBgh!OaH;P8Gw_!Yr^J7!-Ycr>Yd0~7K_2c_E5K5>_n-J@5 zFQTf3-4j2*JkM*`mro!b7SEdGYZr~i`O2t9>P?~zrHTy4+x4_L$+I(0cmA7Z_+OwN zaA3U`PMzoq!TUE)77{)YRp}F2y{glX6lDKf4hDWx5B?4?{NO@*SRg0lCmb_h@VeR# z@6fWQcIvwUX2HHa*t<@@J8D!Ujj~w(#;DUEgypCOCqB6L*WsC7`+glGFfcDmp@m8~ zF}@YLPZdCu_|!AQ<2v8Kq2&{v8K1p0;Y)@J{cCqgV|D7D_)Q@mRGU?PJU71C;%#@c zJ(<#70IpIlE;c(pv89RCoGu`)<<+!eZXzL%xk$%#=qBh`b)^2V@+nxzDk5JsEOpb? zg@CY>ueUwR;qAn?+vY;~$e~c03b)L}!L#)C<7y%T*+5#syADI0zl!BmJf8e~AI)a~ zu&=_t%KHY5+E0w7d5Z6=M8x4-mcqQe&mcRM1a1;+aPb3lcIX&-Fl}E+p2O{iO97&X zcquZa?^&dy6sP9-lv_sxth~k_jWEKN#}f`f2Et5=Ff?U-a}lo8%FZKvFO{}4# zll7vV(QHMARV9`zo51=CX7Wp=$B?Trm@q|>N}K!G!RG}Al^R_e09096j8NR}trCK< zktG!+yFGG}v}-H|wWsp>ukbcKZ77jTbjx5b2X4FfY2R31?6B!C z14GB!AO9${{xPhxi}XLA=bDaX|3^!w`7zYr;KP5r)>oMLm)7}h#}|t2@Q}b!f`mYf zBuE0IAd-Og<2a5HPYHP7K|DUl!5MK-kJFFhY!d$5S4RG*ERqrj8#$&901IbFlU5iW ze1P;LMudE(Tah1`+x-dT2bbdLQE?&ApQ!jK&yb%Z5p*2ElLJo1$iWSWqaD!xDNaNV zN&xvQNTRvo=JL1@OU+ddcl{AgEWc^-a$R-dH`@FPqSzX1l9f>cPu>ErUIgw? zfIJ?HZ5Hegmaf*M7Q=l;5d62%O5qpR2`^6Wx|-lLrnP@}Bz|8^Ox|%jF4u}4f5C~e z>)NI(e^qDwTUhZ+pV*&Z#Xq`C;ICZgA6+K!SFZDqE))2p>-;Nt5%?J}(tPW9T265A zTyCJUc$^nao0ZwN0vS0hmd}#WSPQDzWYf#wtlq+Iq{cG?AUDw-lYr3H+*H6U)Z>uU zix%|okjetM@<9bo-b$~pFY~0!Z&07_l1$6D*Y%O8wGT|P==iN2Ww?4F{oD_Gy1ZSt z6Mtq!L43m)bJ8K*G?zl?%)BsH)OXw+e5q&b6v^8e5PHymyBA#x!!8($HK4{K7(}N< za&Es_aa`SI8H?j9mwIyJZsWOLA{>m&eX#=8LA6wBcm;H+PP4lgj#Qt znaXZgo>0ntqbhi*ZJf^mc|kZDOG18a|!+iclq8=B*9*4;%_cvME)Ve_i==&($~BP*Qx6)yCVlaK86m z5pvtL=+IYgckvSClctU*C^}Qb{%OSLN?$?xy}52eH!{pO{-rxv+AA>YoY>?JjBPU| z*L30Ji9H)GML!*rr{u14(KH1dhVon`Kb<|Zx)OpB7+rhkrI)ev>U5(U6Y6k=!EI;< z2v)-~f@{_7FmyK<>0P)9){RZYhOH)XdoUU64ml$L zZI_N9yF0$=2w&-5qB2^Q!iL^6^~0u_%8isxWM!Hm=?izu;B#tISVBNcQ$GvU2#_~Z zIG4(XuO}Ux8o@U_rh!k7q*HDsI>Q4&YD|nRRT{R@LXCYVluJ?>IU=d#JvM>TSYsYs zR!uvRkSAu(PE63K87pqKyt@~^-PoG;5bu2QQv2?k&K^+?ui2Y+yjlBO3RoGDXx^n1 ztke-zszBF}h;XfwEg``sFkx5haoJw%a9X(l^_*4^z%gorTZ`JOG;v#n?nTPIm zFAK0x?$LyCB1dN#<=1e+UGIu|nMeAacl^eQT12973z=ZZ09RaLpOjXaBF9%5IjO{R zs*o2HOXcfUbT@;o{IgmbF9;5#w`*ZdC5ULg7$;m3lk5Ui)xw1Z++8$`x|z}9zdNN? zD(WBLMV@8<$ME7mTkH3D@ekJdO=b~BKnNjWgn&VaqEHgraUzCO`>!a9P!xd?FodAr zCDMckfBldsqCP^A*@5J;X;2RMIcwXJSuh7le7gx*yK*tXZxD1`bU!;Wr9X6i14nDzB5MeoL-pUY8_ z7k#To2V_-)>y=gzD?wH)5cT6*bO%f=cu~HNM{Y^UT64Gb;k_vGCHIS`UPtCLn6&jS zhM)_1VUhoJs^b?4*U64R^|WukBNR`u>bKQUoG_?JnJ|18AWgc zLP?lHDHx`36eU3tqd*vjK00_5L68)I65qAZFnCx_m^kco@@19__!E_U0&x685)6;d zDeOz2oPO6r@0NJ~kKrF#74YEo@8)$k=pl4Sx9ssYl^x}zC_G4tX?m#Bh0$R*qv%Hi z57Wa%pr2WVF?`r_?9(`qe5Tic;YVzr`j~Cvpfv7|;25fiefkUHqXq@XN1+M-)O)f| zy8wZFgka#G$Uhx;$e_pQW z#GH}S{7Vfm5T!=hz_V*r2O_Q4`wh_OMl1uu*jGCqy_}@po83$|-u?E-lE!$G>1?oT z)T#QJj0?;x>*v%gH@tFQF|LZC#;W^!0sL7$`!}Q3em$#Au;vtp1mLC1baoz<=>0mW zWKBL$+g0hug=L=?OGT-VEd+B~$Vf=Qudq`nr2Nf~HKKK(lx}K8H zsMZiWvX>ctuqKasJNW5erS`r4DXrU;vOR_2DYJy$dKUMyglN3Vu$A22plvc>l7&Tx7pRLRbZCL zaZkZ&!>n^#+YXX~c?8POd78h4%6`N5x}|<^$?qpaJ_?h6v`9;&;Nxa=Q2n_tfbX%c zY2EGlv3bFyzr6B>L4yoEo#7DeKx<7QGSF^U#=2kKsm%cl!V)`wah)*1N=VCcDLnmL zn&U))DrkG^Ct<%S?~f#qh*j7qODDC2RUWJ^zZR#{fn{FF9u|5siwV>kt|#lg1wD=Y zWjkn1VL1IKNryfB-M=6QY17YANriBi{;2nS=-`Cko$iuMU(a}7DL5JENMjc`70nK*% z^ARnM!NYbP!Yv=V&e125?s4&t`cmRgNDLl@8tgMxB0`Q;kdK7RLAfChNk9xa>}U!d zwW5!N%V8X|6Xru$Vo zKcI~b7Bvx8K#{M(ebuI5a3==54t;gg>*-BX?NX&GqSzG-VXhL95lUcsR6^`>7+S1Jbo<=lVE&mw2E6ZxIu}ZbL#5{DtsBHYsD=zx9n8-j`Kh9L6$UL|yyltQm%3rk_#B{7vdyQ*c?rf<{|Nz*3) zE#G>Ou$72u7$!B5d3Bq&$~}Z77Wu)A!RMIQgx%&3ZPrFld!X=Cp4Mu1bP=m>rFO;La`PsD*}Cw_ zKzO%>DL>F^U@C@i=K{HAcoYiq-sGIH+9)HL^?RMd1eO$ua}Lg9x{8TC0iM%t&--u< z9)=CMYmR8t>kvzbJx_As)0;z*=PF=?vK*)=m0at9yJct^{`N6F|~d z$NiqJ)Mv~&Ppfj9F!ojQa+GLk9xtDE$D9-Vq^BVQ?I6a%;^!@XkS3PDP}3#I;JW$A z(~!-enPtlH43yKM3EA&pe#&9r+w4S#Z|uC5%-qjCa4oxXRaJ(pZcpX8n*yUkf_rw^ zlCwRPukIahCf709i@ljECg|+jmeQ9O_*=w4+L;8TK0|x~c`6p=j|1etefVxK%>Jn= zh?{#6ANB%DV?A0fJ&*^6{F;!H9kW~|n>(iR^8uSP`kh0r zQ@_p0rb&gp(>b{cbXciD-FJIt$%afB*`Q@?zq5f>C+8U zsqM~R{Ks;dhX6uO5veF)NUDPMf*7AMW&jKyrqL3%G)p{71`U!xRzf|QkWe0{oJU_l z^ievK z3a1>!`;h4Ou138EeUGScu&@CNWeDjWcY84Z*JIG{qaEJ;1@QbE{;IW3L@@r5_f|9$CU4g+KU^0z8gTAL32?VY?hn&&jbZ>`#jrLi|Bp<*!lKz4|`t z^8Y33s%Lrrin^FTMqQ@s{}*|Eoiuq&l{}^)+dQUL&C&F`0&4Zk!C9?}P!+yaH^$Uo zmkv0_{hayhiGgpze8tx(CU_q1$>o0J_2{?cRFf63tZ$MfeZE{ zaIrfNluS-#R@c@xSil}EL)S|;B6M4$(B&ap6ZWEW3Y9N-A$gY~v=wZuUk+}|GDA@A zJy<+z6Z}igPgKVOPU)kiV&8R;ZRZg@Z$W8~km20rz=d4yR6OC@N2s_shdNfKRsfL$h0)vefEXJ7-bdC#A8aBIZO=F=-Kj3DiwZNx0Tc1oy;Y}K@lcXp5Kz! z<$Q&Z2I%F&;21AKZ_hZ}iU)XA+Vq*3Y6P9iChrVF$5l+Udn|W7d1%3zg5YdnS~)&F zOD_T{OnQytsCs9idfFM*B5rT9c`GM_OBV8Mx?Y7KTB@C$B9d8Ma|an*Zv#lOr&L*3 zKoN?zcY-OVuO5GEuI_C~iux&T$XPMN*}M-{;- zh+HtjE}hfmEFR`kjiR8+lj?Put95}kjT0(?CvJNn9pY@qB|G5a;^s z9lTVm!R&5m69QETG}_9z79uIIZPQL2Fd=2#MLG$8hGN`LPx^T&{3rXaB@uw$5}J3n zuz=ppP1Do;Z%K4-gB#D?l9?JvzfZ&?^>A9OLgD&ehT#&U^dWd+!$rn>MTCOF50|Ycv0`>TX+7E2pnxs3Sxkv>Jq`r0J~Y!Z4ShDAWeRp5`70Qy zXd2sk)MDZF;=3!R6LR@1Yl4nQ6hDa$TfOY?c6&%6aA|M}Z#eXxDx6u?R}?g3G`PcI zz=p!*3YAp{Dy(o>NW z5IDW9^wD3p(0kZ#A(cyqxm$XkO;i= zXj1*ZPxuC7{jC>%MOAume zAS=fx-_sGW_DJ_@vz2V^5G88NHSsi1wRTtjHATK)@`1vDFC({&+<^B0=I*XO-26(g z{>0PP>qI z%Jh9@eLAOGfHp~?H8y}4^JBO3^BKoo15tughXFxz$qs@fnq(^}v-^DA z%9l~sx>*7?cxDE4)DtFsfSw|S-Gi~>6*RlPw_%*kOQ`5~YYe_rP4@!@ zNW{&(`x$!!QPmT!;4Mq6{4G8o_(oZ_5h^#0DY=JDysGq!)rm(8SDYc%m&@ccC)z-K z^4{+!H>vZq13NljF3CvJIhQtfIs*f}d1jzk5d}5nGHPqJ0^dBf!Lw7$5FApxfreP^ z_T9#O&!Fjp6@?^O5As(cmdooUykgqIZG1KBI=s`s_TP7b7~Q!|SI{wVR*pNvLJ*<7Ov)?n?y*gp~@ z!H`wzq*o^Eu6h|0<&6ncbo0T}c&&(8JuT#Go`9?QRte=9j(DHv#W?At&fnZrX$m|} zqH2dwP|ixa0iu{gI#4?c5J-b;MLgWoTu=zm(a~cLW8ZTXmx#MW4zTI;?54-|070Q4 z;1^_&+x<+Wqhs5m=-=#+^wSuvt8y6~1USvUaq8S4s02|-dblmNK7SJLc4$lr&8xO; zUBB8I*Qa3!GT8I^g6-(dk>Im$`lbThVeefUTOufNzAj}WM}~GX#Q8B@L0T=q>d8MX z32Wfx#-pX`w$L~9}_z#KR!RO$e3)Sgg`;Ei* zY@*p*0yW#_QFq-a?Nh$${aT?*Rg^jv+3UUQ zz1(uv=VPd!7i@-eubSplaRJaW2u#sQVec+GF=!MrRQT%u&)j=0yKS!9g7E53$v+UHfNv^^@!V9$~>Wxq(}P!cZDT37Yy5 z!a~V+O$*=KcIkV(fPQOZ?{l%?-cN+zPV-T`&&d9yrnQ~E*OK5J%4}GTrrvsX*t?UM z?m|$z^ftZ&AmnXAzf-H?-OM5VnPb-mh;|tDZX@o3+wUm~gxDuCX!yt+=3u3!akuhr;3yN#&@1sjJ;cs)IOGh{H?mH=wR~TIHd}92I|svLaZ0sq2oifE{Licd%r&f3hmzN6Y%v zRqaUYXO<6tL|TaaFsX-7%!Cm4+?L13leu28mIRV}JE*r#Eko|Hyu`jc#z@WuNH2>V zua~`T7i2OQl<%TzDFN%qj}Rt^GwH zZ9gyQG2t1wxSMH<9mKFV}h_UBP zH%-F3zR4h!%G%du+n>2dG*PgIPL?48pl6=7g4;4fBnS~$zDY;L)Myh5=-VvZ(r%^u z3_Z`W#|Lb=A+V?nJj&Nz!LwE))Bw;IHyVd%mJr&v!MWhA&M&};?zM{IFIsxa*}(Fy`t$iXJSG^D z#O@V6&WN?@#&##b3B;q#-KT8L)8ht`J5+WVCb$^Mdd5nXPU+S+Har^**Hj+D)gH~* z#qE`J;FN|k9&kWZR5~7s){7vp1B?Gdqy_wJ00%>lSu+-mJ~meg!Maqi?q~PnXv=HopBm4Z37Ls(@8Q=^8P-c+MA}#u z(~5CUtVpXT1a;40b<^V%3mQyNmJxO7rO_Q!ws96a1ts*NRw=-9`_S7*8{iFoOsz9h z9!RFnN?VWph%dxP*s?jFyUe75;>|eSUT2JWY5H_w+(b*EG$acqIAt_o2E3w6?kz%J za6#Xd$^^aZs*TbpbSJj)^H6n3G@m-VG-UdE6b|rua_M+*wFNp-5>PF*pm=P4Odkn| zUWWE^IZf>IDMn$Uy3`H5h+|EF4RNC3L|A*HoPt+RiINCwqPaLgomV=0>ejlZs{%fy zS1}V5&Sm^sc&6KzI1cYYCm)?CPhL-5eQJh?CCWJ?OioQPJ_Q_&qNXBou$Fyl*EbRQ079uaX#FLljho6b~H9PxH&v~{ArsfR}9Ks4mSx_UkuP;ABAp*Jg zWQsWKVaK4C7WfE4KQ1FX*aD~$s2aeW+$Y?Sy@0qa2upVGxxv5c+%3Jmne?Y21 z7OKfxvFCQP`cpjk2y2yp`yztr;1KXZKf)*9)#p&Mw{3nIhmiBjMX~2hD8b{=3e?@Ri4GxM= zm<;Qi~Voc)o&jz$GF5@^nvm+){6VK@%`6EQ&_|qRywa$UroEHhR!< z3?o>{pr%dTQ#X5!q87+(b#4mcZ12u1Ls;GnioCB@ zBV33yIlu;OljK53;dc8UvM!mSF z;ELrbCfIuD1pn~hYFxe`UqZh6QZCpX1H1GX#RcI6C)b0j$BBh`06KP3!;Hj^*?H#3HjzRA@)x_rT z;d!ov(l2IVG;(BVeZaV=$?lML_%f&PBmmpjmUz}ipE*ZdeG?^lSAJ;)I5xI;KfV0159{je)YygeA=H`SZk z4cYfj;F~&*hI>%o!aq&DNj&j?!sy5HL(nb|v;h$e+Cc@qK?Qs-Cc()5!_M%5_fl0# z?#)Fi*hl4e=Hm7!@+as7LiWc&J05!1&9I$Gj^Vq4IUel|LxSAl6!~V76L0g=nA|Ce z+aGNoBz#Mb!*4DV^>(P=&P?!~)VQrL{ac???yyr8+pjW}8lwc~mGFf7}|dYrM$L_KZ9-u{8iNbY0$OQ=O+sZP)+%H z;RRSNt(R7{+d&omJhq{f{n(O))DJu%yhUVo#?6~$1dCzwQARs|ctT9-En806r>;3| z`i_;w8%{abUtjJN)*HAuBhSi5#Nq7jV`A`2H8=3|DTw}JT5r8)Zq)N|PIT8;HtGP=~-Rpde=zKnPOV0F# zKdwIOtajFqtSn8K^y}KjBFDUkU@sSQ7a-1yCfIkhpm|Sn{ABz7qqgzCy~$T?<8N;8 zon0M7;y8{_Kem^^_7eXV2DS|sc^Cc3cas2x-uBYi+afyLb59E14*oCzByT#>-nR(9 zjDiGjHq;(akhj-0vB#7kdh2~qZ+23;pGKiS8w-iva&d332<#o7cCR^nH_h9Y2Vr0A zes%+(w-Mf+Qop^fx0Do)-r6V0u8R!4Iau48_E}u~oj&jUsK0GmlzRX`zp9A{lF+L^ z^yTGQ=MUWg9xzK`Q90~$5Vz5h{1MhdX4Knu?BE+-7KgvuQGpMMjjyI~JkLCN|^7k?fs|GdP%TOsgwOZ>YP0{aqwT@{#j zU1!z=o=RD}u~`d3fk7vSnwu`7ff9FUaI->uZd-|KImRLmCp)l^i|8Qfye#1|aivdt zYOhj7-_fYeJ=15BN5d;b3!KGYx zA9eHaq>StVkh$-ldE+E?nFJGs3}xDyl;?t|b1f`Z$9HGNN&6KW(MjcASNmr5iki4TU?5f6o?)&nQj1kI?#Tle>1fJFl)C zfk2^@%&~|_mBQYFM_X;Xvo(nld13H|6?tb&w3G!eWD((vu@r_}-RV}TZ>KD%wG1#D zPpSoi&Il-W0?mV4TtX8_N^rEER~;+pE{O(4Ud#Ge zZg9w}g{ASY8Xt^4b-n0%AV1S|Lf8(2vk|ne2eaFLWk7j(jaJRA4<_u)X@-JlLldAC zV4T&}d_y2)C?dKybDYk9k-vB-TC!>h-;U z;Ehz%EQbt|fbSAyf;e&qt#G`T;`&ydAF&hIt-uvOX0HqisTULUAyv4>Y|g7Cnu&Ci znuFiGp2D5#EnTRFOio>v?|HS7VZI8nM-0=zQyw(Ipw0D3tQ#C@W4O;?b(UFzgf9hg z(a2P1tdUpTM7{XQHLH5eN}N;6mQ8S^V}L72vW23{HSo%0@Yp8?%5G1OnHU_3;zp>4 zF2zjQXy)V1#CSx4xcPFz4C`3Eg#4@lc)iAFIbW|l$FdKhAgX#q^7|wYinam$BPIn@ zv}&pB7-c4uaLX^=)i>pvAjJClkpSR~JD1=nzhEMf977Vc*1d<3m?`VI_D?iUoIQ3K zkkcWS6Ngh4Ix^jBzUmsStkl5=7^Y>or(`3QFEUuBG)St$ZvE_JmK zKc6kKCY=bsf-z%T%h5v*vk%}+I78fpybu*W&=#je$f?D>>#cMf^L}RH2s*wF-aw$k z^y~0zhel0X7sD=y@s-Q;&EYLqhad>~4MS0yrf3NLBlh}NclZjtesJ}74T2vE|6*S} zf2nwv`9-KbBSxvW6!1Hd-STqcEwl^mriMQRUi2H!gyHVC72vztMgZ-(`j&9-_=kKe zdB8h|97T5ggJN$!I<-CUC%_8{_A%a_a~17(*}DVe?hYKj^J!vR47CHd-5of3-wuD{ zt#HS5B(r?OI@@9k=45YqP{9*ZMuK0UPgv7q;HrB9{dF$m zch32iahnXTn$hzjzEj*6@P~tc;+z|m{Eg~bYjXGR9`ppn7h`|s_59mBQO-18eO=5u z_LlH4phfy>*=6t_NhUsrPW5`Ht-lks{sHG)GgVG+hbw+Yfb@AwID8F)9NtnflkP_9 za?Jd&fjN;F5Uqo>2JLwwZ8@iD4eWj|9qiRiugUP8Q(6J%BJqgFrH%1Xp)NF(acHly z2N;PGrjg|4?v=}}ZDLd|Yw_CH%nE{4JkiZz84kH_1CDPg&wES-Mu9(;E50_t<3+{u zC}JWwk*w99V6{yL@>bOsP*cSAy#12ty; ze7SiLM6uxD2-c)2onW2OX1KTJbY`x7na6{254T@87wuvyfV2lrcXNt4tk9 zW$+uCzabk2?No?<8fRx*j`vq_;XpFDWa9Z20bIx^7{YB}F|P|14kUavToN)QaRE~%jk zi#CUy2j1Q5d2O^=D7Z5@a9pBoJMVBh0m~B|#o4>lTok%u^h8B>>e%fsit;Lq=;_+n z1Gb+{Hrj=MGri}PSJ}|;l~{cxm2hGnG6!`F+fC$1**zV zs{Fnd883uQefu4kV9Y+v+;1|#u}_MZAaYZWr^50Nve^4L)K|eo-h4ykKbs5Q?uYs# zTduvk@b}FHbG}=zZIe(Jf}><&)Shy8y9LJ_0+2t$x}Tnm{9va7J_+h+30p{U+BT%@ zaDnw^>U(v)s6jBbhl6qM?TVr;mCT5HR-XnMw;RGZp6(z3DUxyImaB;uwqtMKChqJN zA`)rfi}Y0yE9EKhn5Ki%Hg{~>{S9?PDSXs$nI;Jcn1xXeTu++lE7H4 zi<8N5C1u+d@x~&9(}9&wD?;C#MO*WVvpMai0XgQ`N8Gw2iZRy%ac}%_g!&W0wxMKa zrARDIpbc{9K+?gx^<{Jku*X~=&TymUGzEdKI^^Ne!~G43o1&XD{3R6dyj&enXKu_% zgU<~wP={Cef?eEe9xKCD2{RE)%(4b$1K}7fINN0WqL>U9uTO6_Y?h91gT_=SZaEm4y7d-G`a14(`U*#@INP8Qp#i9c#tLKCh{hah& z(!-Ot-7Ea=%)syAU-GR&v>hb=4%hMH4o4oy*D2t*7c#3cm)wh`0nAEi4!Pxr^B?T^ z$0=a`#{X`1wPC%Z4OOOZja6a_g~~CXIL|k?_5|MgxL3Q8Y0^>>CX$k z-tf~08~B~Y6?0!G^6XD3^7@-1&%P=0TQEh~1O<*ldsjA;Iz)YOoJaa{Ie2s^#eYk=-)Shp6 z9CTM-CXX=5M^Mg=heS+awzwCle7)sKKDq!b!a7Jk8ic#}M=Ap`ngm05L|+ z`et@;kHVOH7Yof&xKobjMaF^bcBlHM5kt1# zCzcdz{wOsdi2BRfXcuaxdDpqEMQ*2C|eo$A`S#sGUV;kAUgEa-T&$rAu!ncrqIH&q- zA=-3O9V()@GY27Z1ZWYg28L}(56(lUA#te(`lP1I)zTi#>ES_~PNL6|sTvIKz2nhr zB%)x|f1vo{GooyK^ny5MAA?l-plp}mH~AF?Thw}0Mf6IVVn1~IZ|1-MDE0C$uK%j> z^8K~n>5JkdgrN|Mkpu}-1Px;dOd=$SVi-=5C`FJMijpLbQwU8U^bZFjVff90fp<>I zZZGt93EE97;a!4{Oy0zq?e9jD#OGT138X!=Fg1$pbwhw&cZw#b{Jd&t{@ z;uhn!;I;Fg)BnUjb3EFGMA4nFgTB@C;b2$%!-+i*;^aF5qq}B39PJg9EjXj^0?oF5 z8rvUZ9i&c6+i(O&qdz7{^LYx{`V!_$V!vppUzh`Sv7 zbNsr)lm4f#F0g%f7wZq!k(RK0GhWcDM`&C<=P}2Kkloxz;q5gI^f3gEMgYEpKSDIl zWl^2<8}{6joloHv9@YZg@=sR5-b{$L-oc~%694uXXWkb;d+9Ir#l8dJ=fTfoswn)S z(a);ige`?<=`#@3V)tHwP!V1&?9rCksWC}yPg~4Gx8<7WyD;r|TFgGXPPFOVMd@bC z8DQP%tNku~{Mzu}m)Spb=5f6fW)0BK?!`+IXYFq}k}bt>?cfCUm>65mFBEC>VX3V| z&#s=O!c|$~px#L*G=KuECa2K^(CbZyb4}q-47Gq}0JWHQFZ*Z+kKjck`Kf@@?0n~D ztBa-O04>y+^_OdmvQu;oFAIQXOw#ejal-o^%m!;V0|CjPYz80UO57b;fpG7F&2bnu z75>7nGkh=|T00*OGVk;RfTjW+7F^Y`3S_z*{u<-;g4N~&Td9lMbI(Rd+kqv$Ip(}Jg*p?*r0j>_@+A_0wi z_en4zdEU_%tRKwFcSW3>nidu^wG#d^ScFeF%(sSZnSIwD%S3 zBQU=+pw?&o(RC-(($1Eb_O=+$ZiB^!eVHokFrV^(sboGS%K=k0+03u9v;r}N^A9gi z^E%0|NdUQ$gj~n@Fs`N8X2~>0y;9!V8;PgmQgZk8_8<Ox zWrp!P0Hg2JH^uf3LLhr?83udCxXXZ~doyE;^4mRQXwM#@zxRxW_Q*(njf}b+hx&#f zE1tTq8n||Du4u%cif_<|7huN!IVx^hPxe`Wm+URPxQ{B9sLYn^GLZ0j%lMkWv0r;I z1omindTk-=b4u@{Vh@KmmjBBMFY`lV8~Bo2hVO>N(H>>-W7uq;Co^jsiV=DZ*0-kZ zx?SM$FL`-O*YXUa^4SZxm=@yX*|zU7khTwQ@ZNIaRb1Pkt13&(AF^ZJ4E@1odCJ%i~KeB9N+IF zcA)Ho-fHYKh8N#8&@FjA^&gy8`JZ@2(+9W2@X=uaUb@A3J~_S=fpXa+}+zedizR$vRiEFonotBqzU$5r1NCbRy{7&;Zb(Ak_14;Eb-h?SmH(b6+0m@o^x+ zQ*vmzjB|6l>za6ZtceV>hjB5j-dRG;nG}%)E~nWzyhN}(uqhS_Adg|r&EZ|Pg}g)1 z)`Bv05X~Dt28BkCA63noqVXttbl-SrB>?GtEKhPRol6~5tmmy*yJop4h9cMaBF^|R zZkiK;f_0|2OXTbK$H1M>$YU}MpX(0-aGSvt>@O)n*9msYN>cIr_~~^BwT_qPde7;n z6v3G9)wyUNZhCfCNPP?!FX7qt1=m0eqmXnV*<5v4>V{vMNJx)X3GgAP2cN^56 zb|53g3FgVfERuy17kY)S+YL$+UFUc3|= zR0BLJZpE|Xs;1{>k+}guoL!uIaK21KeJHM{vFF(NE;Em7xqSp?deSF}o}5dZqU-D2 z=s7&AY|dsArotnPHvoE1huSKi4@I!S4pF@p!)=Sg#lC)eI0}y6Q(FJje*pg6fVd&8 zt>esa$*vfo%-7yJuxkyO?FBUd%!viwq}cB>0PQQK^(a;RK;DUv+90QMat59A(ouaH zx_kDvrkdmv|A9FYT)I){VF4lkP7EiTGx?xa4bo7zTIjdYZv`h^$8 z>rw-8>6{fMezey+N#Cwqo~l_n`x> z;8fN#{!*JG*9`uOd5`u49`8J93Z`P`cd&2;ChAnqc}!9MoGx_x;@|_Fum>JfS|B6? zB9t{grV!fIV)!^ zpKn>}ucjO5M|XWHkssnXC!BH^e>i9F{2I6Ko?8s0U5ihr%B~{WM3R<*R{+0Ypnx1F zgl@+?<+c8StP)d+3$El*o>B%GWZe3CJ~f;Vn7nge^Agur^2K<=V+ad??;U(DZr5Li zlgFg0lBS4$W1=8V>g|W1iGMSaAqn~@|4nX&u^6Wv!42=q{*KKc7~de^Ke=)TdjI`X zsQG_t4WBUdUq1g^hzk7(eeQLNbmyvW;BrH08wQQSz2mTZM!&lR6!spV4fmEr^kdg5 z=f}6fPZV2e|YGz_YEXU_7uHDK^5drct+kNdkCey$f0i0 zK+Ao}9`~Pj4O~DLPgR82c~ood&gR%q)nkKZZ?qY$9|-jPy_zP@PP3z0dvGs+7 zx`A3#e$O0hyDeR*E?NR)DulhMO@9fR!ppl|M^QM_2zTM-gc8cOXDPLd!Y%Pbr z5ZPA_2A~VwoJHb!vR+)g$*El7GXavW<6-Cz8}yNeXAg2`h|OM;Hi|)MLR+|E?%P^8 z(YKShXtmmGEe8zGD}12@2x1F9u};Rw&D_~5yNlzNy|0eLfw(fdpTH1+-40EvP>psT z9;rVeuceXkSXDqduY6Zm(4!i;D$ESV%NpC8YKr_dkcrj_NbUp?9MG0-EMD~#Bu^;p zMRQl<^odKG=P=axOhEG~OQLnqB_^@fL%dK00i{!GhK^$Ebk{j*}Smt4RL$;PPHBheo& z#S%E09pveR-W>1hD@ZzlK4ptWdV}g!s(dfuhM>oPI^^YaJr$Zu-@RF1Gfgm?JPv`#j0TtfMFG^GvI#-M`T zuVVWIs{owa5unfDiMFipRc5+UCQ1@qAZ)3I+zU()tDO^CuqBd~Mq^mzc-MmDq|gEk zG2mg14~Px;czPcqr=O9wB($4_-SyTRj59X#9#&Mn)Ubz>B$)|B@oHgd#!c_5-jITx zRyLR%03{_2(qK0fLP5~{czM`s7JIIJ2wr!%3^($qKqQ#;Y5Tk_@+8>T`+S`=yVIWa z5H~sC(#5M3?~oJRdJ|d6o<$kcEWw z%C$DJSXiK&kdRgf@(+S2!$&up*YF*z^AYiWP?g3hZ zK0#|AdU?|m)c**S{j~i1KMiO9cdz5$K-xd7;csCr1@Aq)4Kc#xKA00Bdj&LscVr92 z`&9AH82Sxvu;k@jy_TGI9YrkhSZxF8g0i@+W^cMa-q}>r5@J}I}!L!^a zg1c-84*0i_*041Gi#?a|QE}Z#${!Qmu*ydpwB3hxqNn;ME$e%+b*Dyu9$T`YefKhf z--mhPo2tLLH+voQC@el3OB={+)NhvEzL)*&s)2v9>~}?$`@Z-JsFuFypVimbDErQH z*!#HN%Ca6J-hBt&f6l{tCnei2-w{_2$+DY+zqT7gK>RN0;;)^Etgj!_LAzzyPK(z5 zf|&f~C7+ZG(3AX}ZAbx|v!~$Kk}qJV)9n!JH%jSC`x>8|)pCr!bmsbsayG@-fP6P&g-t}5iSd@awJEUW z5hsp8hZ_Ok#kFkW2p4@<&P8e{be&KIJj3eB7;CC8(o4%ZoMQaC+Um`aK1Lkfw>WAu zCVi8Py8!C+R*?9*$4Y%WJ^rY-`j4;vs<`^imEX-(k_bf+G(r&sP0|oX5)gqAB!pln z4q-4sLj(*XKitQmXx|6Zx36OSVM>ec#e*c?#Y(YwC&27l_Rv0{f&I8Vv2Cqk{GQUF zcjs8>JyeOpdl>rnKY70YKviIqt_XJCv?ybM*Z_5*6ufJ{|Y1b~i$FzACI*i&iqwZV;sL8;1K(u=@U>Q?l0|D6BqIF8Yix z`yK{ufnox-)HAaXyNum;r1);5Gtkoo$9P8~hi-4RYqmibtyZoH47vF71#~q4A^K zz`6sNlyVWQ@$g#a79?%-Jm1y?>NAs-EB?r7%vxudt=>uY>XUg53TI6z`NL_;3ki)4eXJ`WZ7irjrR`a2Ii&P?{*w=fUE( z8x&V9D{TBAqg4hWu}_kGqdbrPL@{7>V&j5Ebq7*LpCy8YjUSf6(`5>W(CzrLWh=Ue-GDj%L>(FU{OC?Tu zIVGv9G(u)$P68b)H?z6raxG(KW<&XqKy7qGRZ*B<5;3v5fIj&R! zU~znEy?&gA4K;{QdBkM0R(#r%yP{od?se|yY|+EERe3!)I&3P0OCK&kcU+|l6tp+4 zlhI=k#66V;okdF?*k7*N9UZcs*V`5Z(-6yT4(87K2}biR;CML7$v|(BHR27#bA%ep zA;DQPVHMJ@zaql*r!G3TMPuwtZ<<_TkY}9fn`Vh=Ct@Guj62b>X^p zBCqr3qbJq(?6ltHUJ_wfeoP1XTm?7KrYrvpOkw^K#Kx5U_<%#t=Yc%mJO#o#X70pQ zbn;Zx`Ksw(6YCRUe-e{})OZIWyM}kdmvjJSlPwV&MM?^6sCmxI)RN>AysmUGoj~a^ zsKo@j@S&dDg1yWj;)31%HWY&qT}n_<08Jb{gMA_T0LOiUFSA3_3L7i_H*YG?(M8#If4m%L& zO@%cYH()J{oqUL5E19ViyA~*mp-pLCbbP&}2bhZz=PALVZV$LWrQ2()Htc2< z5C~UueppH_zhd`Jxtx&h*#Vf5bwiNzo;{mKdLc_UT+d0N#WCfo$U|?ygSLAp(PkGRNI^ zfSJa{3wi7liHm-5!0Gb;id#(kFN0I}K_X^LOc~k#?eo~TXzFjz{6tQF{G;zCizu8T z2^6A`4K-mDwc)2N1I96eLN*|^{XpVBoGVI@|3LIUle(p;G5W?A@S7?8Zs=?PWKS^3 zT_Xi2e@02!AP)Yfuk6!1$ewg=r|<5F$lGrR*(oU-*1_Kjp)|dV#&0?6_Wua<6X>)j zo@68so9XcV?Cv>{H{zX%z2w9n(lM-9GbU*&c0!`(IKk_+t;VR)H5!vTi znOrjOuywXiylD!)%6GvJ^c>}=s$n@{&3*;lm3Z2_2ZcxA8KCXAh5F9xTrpTWH`567gZ() zy}ok~sZWl@wFvFHC-G*w6u5GEtaj`e$51N>)H0&9)3X#{+34;lEqcq#6gL~o22ppp ztp?*Cw=bg3FJei>P&$+^9MZ{d&}3M<9Q~&3c{zMBFTgp9(Rj7{aMW4roSA9;R9dJp zWVV@Rm3c^#)1Wgsqk5;yNfh|_Y42>O=8L1Q`BMZ&mUjbTOBw~9z|qJ}ChuG#c6in5 zz#1ob_HpU;Li@XJamy)Kpr|Z)35)HwLOh2EE#L)vBsV}+q!UIy?T$;G+X2ygZzjCe_Rm2EqfzIoSbTvZ_@3pMsGrhPExX504Ru4i$5 z7~4oMAKn?lgNTHBN^^8I83C)4Pq=iD46IFwHEUc?&HBYWg<=pCPzZk_pv+U3%=>f6 z0Qlva!8N9zDJl@BHjI&5LmNo;Iv6yfR%5D2RG!T+K+>maiU>SNWl8m%6)%lBWV^TZ3%G zO5pGu%a}ku9Iref(WyL$Xm`JAzAeb4EqdVO?ZyztT+waH4amoZxL+tE1xQkURk`4e zRJEasGH(epI^-n|k&9WsDndK=rk>7(+P2-eP7;UI{N+q)MS-0o1<`=h<2)T_i&b_D z>qioX6W2<{Ldf2r9`D@99MaftNO-z28gnR|gLe{PzR6mKjbXg3fz-#Fh`I#IyoFps zAjAs=&7yoM{32ilPB^-_82Fm|n&!(vWGVCcoLJ!!9%7G_pXCD}TGBABK%>n09t<6E zSTAS|c0O~f0!M5|3~a1W$Lc;3C+)nf2WAluwNoOm0nOI)1Axcps)BG#6&xLxONkUE zx_t+F$1!bGq}R0Ish3y7cPZAqrUlIoinq?9IS5QA>O+pb>3H8^@nr5t4d)gvKOQ%8YT!Fr*MKIsh#8mBPdKF zCd;C^U zr}x7C4z`ka@&B!J3Z;ATpGbE7)b#Bo9YuTPYS%MO{saH4$3P|fuuJk@0G94zuGAY^ z?Fud7UW3|@Uxe945%dvfy?E`)c^$>qgY5I^L zsXqah$<}N7!fUW(S{$2Mthit6s`SJ42f}*5wrS!&r~+MgME0c$BdxAs=bv}wtqf!Td+4>_x1JIaxsN7@W;y7@53wY-uW0k z_c4d%?*MCig#NjrFFgi5d)L$V_i+0ez!E+Hmc9e5E#{n0Sav)riRP9-6wt>^WTDg{ zJs8Uo`c$miP2rYn^@XadW9vf%Fk1jnPNyoq4uMXsVgWuf7UU z8ZJp>bimgX8jS`u-C{<@1dGcozWMn5*h+AhIA>=vcr!6cg%4;BabX);jHARLm$PD;Q^8zc|R490#FDad3AHd zJDYv2#ksF&G^Cz{;!5EXMTw*F2r8t~344hWbvx=TbKE|AT*l1@?WNa1nQf**?xjZt z{-tK}XAl6`$8dkZ0Fr)NB^xA^S*>J!V);5+2uZiHR{AVn0QRXfT4!%$83(%0=EAUf zNi)kXg{t+_t)1{5taRQGK{1%}D}m?5eVCS=Ov~m2e9~3eid> zTkdT6-p3OmgBJ=p5Pe7IyBn@a5-cr6GysRK(pb~dy%U9BAf|9 zt`FN2lZ3;aqy2y#@>y6Kg)1KaJiC<~-p-^=fzKz<9;Z~7ol$ixQXj9Pk&|T~->;^~ z2C(O#QOv*e)quh(_UBBFu1DHBUhnH&Thx~N*mF z-a_gv!rlehz`c5bMgJh8eY^&KJ01LUhk^xrK%Jy}l{qH9wqs)N0tNBjMTR@k>t4aY zcJ8hy-ID-lxVeR2I20&+tJ}fvqII-8DinOzFW`NZEr8$rUHYzmZw_p895}pty)C3C zk^Mp-j_3wd6iKouk#BYGuzNe%LRp_LQ7=~ z`kc^I{(0bhzkl$CXw|!UlLNW{T#j;Cw}2#)ke8 z*KX*BBj9_Fh*W=}Uc7VX$SZNiS=6U`0Jc4AIx=Z~07>Ok3vhW%2vK%$q~1*0Gfov2 z7gd5p?j#fss1sm4vW4S8qE}jWIL}l?QWZYJ?CLWo9GKJF@^F` zoXTUm(hkX8FN8ynl@GpM0YV)?9rLhIsLaa{b>VSwXlPCk*nu(*&&IS9hXrw2$|@PX zI=T4VJ|=DV3R}iMLJHR`m;`vC80*m`x8zGX3T3F!0&%Fr5iM%?_LM z>B^|;Rp(t=mX6l7vLBR^YnK|Z|Aac{Z-MpWQP3M~LE8gcKq^vGevWI0mZk~TJ9QfA zK1vu+q~(?4^>P%c_2^!fO+1B!kYpGQ$RO3&9iWMH{hojj0gDWMXzYG zZ@?jIz*bfVFFvdB&4GP?yHun`RP$2yUU6b?ew(ZP@eq-9-N{>E0x3%p=iQPjBz`x6 zJ9g>2L-yRj8h7K1d8K7T;3vLxW&cJ5<9NY?!z)B+Hl;nsMq;^Ml&?Wgb~QLMpo_&zg}4lgkxR3 ztX|TMOGZJg$_Mx>G+IZfVifD72kg3fR#F4~I80pGHdT4!pam{6LF?+HSOHUSki5cZ zuaHY)o z;@w-Vm#3~4FIcKr;HuOpGrwLNI6)WqAhkZ*Q0E?d!Vyj}t#iw91ZW798qE6XNeBfp7*kl(;T z$Y(fc`=LMzByb$2P+|i=$QDj-!8J&2K{mPV#wg^|rjG#Jhl)20vtf#q*nvt+zPt6X z9S7~9_PY+TtL;Ktbo=>CO1#6IINl)(5`ER--Tq_bJ|=>r`%AyfxWLK2>OQN2>?INW zS6m_Q`Imk8Iel|trO;ap?X5eKAUlW($-RRkdB^=bH!8GGJMTpY30vl z?~iy1{2fY*PrOnOjN{W|Iuz+otiWLWykILQggiR`+=rQ6WctJibir+5q-(ZIf|TjK z2bhOz^~~cI2>k0X2|0KjqC{Y89c%bW)mcerBYHY6mHb+(XVWi5kB-H9&^p@Y$3z8g zFGCV9d2#f^D&3GUbfkGe#@AhN=lO%}EVZbCx z5}z{h?fgRTF4`D-YYq{6K(%+yzDL30w;aUw9Q5738+~5(O!1vFfkgMRXN>RB&GsF} z-@@Erv^NuPaoJ{F_Fuw1IR?EWE`0kw|H^o576Oa+hA{L^aI_l+aBn@^nfTt!fC#y# z?e^G-+8@z(9Js|@(R*kv4fhP)-arQL(`>t4eCsW37ec&A9RA99kh}5liXV*!DG(et zclyEEK3~J|VtVHEv+-E}!^Q*r|IT<^PJhwedO7z+8E+s+y&MPOoPblCfWC4gm;#^* zFofrPkz$F)1&ykUlps&ldc$avhentHNQ;;U);2=M<5s zKRO4O0sbtzlhLYRv+C)gNU1=jxiEqnb*qY_i(}B?E`j|D`_BAY%k#OK0rnng-daU>z1ZODX3|1y9Yk{|v78<@*NL*r1+ipYUL9IQ#bl`FIJp3HeklPw%3P(c zeVpE(g+-2f2SaC<DM zo26NxRd^CW%iY*kkpQZ4nh{f>MzwgNwFEE(Y^ z3#vL6=c5gDBv?(BB14qIa!Q)`Ap2HQ19^HQ45omWGMaC9)2!f%(o6b|Z9brI#}XO5 z90Bo;7ZwW@M2*U$r)a$>tdLdFzd`_~nt41e4`gr#1Pegt&aks^Hq|pX^1hjY1ud{H z_6QTN9|^)Hubh)g&)Vu+YvqOp@VYz6L+~~8$n|O;t?Tj}ywh>Matjnb&o$&DfuhGH zJ@_x&H%W`D9ShCP*X7v;Hw6XOlMzZ!R_M^0GU;ygTYh}0`TelH`;;aouusG=^t8|2 zz2=P}v1F;sI>NcPf~kA74^X&O-NA{B;b=jOl~O(W!ee*!pwF0Kw%%wlixb<|zAE#p zNrE+bNU5ga=k9_>B~}9^HoKh5UYoXh`UH^~P)nTTt|>@LSRN?a9?#8F3*FouR#~JA zlN_X)cuEIa>cnt!y(ca>251rvuddchM+nakyie;}a;S92(3dA621)|cy_?++aNWZq zXQ`Us3}{RrZ`A=H?^lD1$)|5p_q8JJDHM)s2#X2d`TnhV9QpgpltR~1?wyHwR{Xpm zvJ0`|sW@3FTml|89+hChgc)O1KQ6oLv<1!fw%62E7T=;~W*j?ncuJ!NAt!RN3e9J| z+_GwY9cmHC`TU!tY!+m57TCY2<9r#s5lx!YHr%3~qRrP&3~-+J3GH@PPV{2~H$9Va zJflY}ZQPPTG{8tyapgt5e2;lXa0P~lj4Ac@^%uW<{ek_DU-Z!a%oKkV*c?9C8Lym$ zi8P1sOvn~+;6`%ziNE!@WNrMcB*uK@{gdm3*YvWFxsodCrzY*oe5}y=yar84#0@#6 zUm}t4sHT+J+0Yh6)b7aXFz^Sw zCMo9GR-sF%DxwI^?O8>%@RXp#G!m+VY$qpCK-CIT)i#XlEI8Is^F>QeXfNhynBNG> zbTEO9NICGLcI|Uon*7`0K2q}0rw|Fmun2fO>U+!DHq$)^3qeN~A>%mZR#-!{Np!|* zHDNUaE+;3v=`%UsLx~G0$bEJ$?YPMSfK~Ve8|9>A2SM@ANyJj zqBZQZhu>YFJZzRzS8(#-pXGC(0Bhfz57xm7k99dskLudh<1wX(I&~`I$@pg>_3pBJ z=TNiDRk2+M47$T=@I0*#$kkIoForQb;q&K%~}`2nz=k}Svw+SAggUSUJ_SxUlXb0j}C#P z;>D;dY`K#h3j;?O=jw(7t*lW!O5ahsJ78q*yrzP8;u$_qf*r_L(Qjn#gwnZM&(-qM z=xpx$-^O*8%}5q~{^K0f(;ue#hiNK*oZI`3w|1JodoUD#{MQER`l)_5d{|R|FJ8$X zOi>l}kW_y>lRvEFzO((6#r+Su4~DVm>)?;`{*q~X?Z*)``~UrNkZ&u$wvbd!`g^kO z$M|{%KS9X|r|^yeS6beWW&d*DH50jPI$sB-jz_hG)0K?3Ba!J`%RAv!?@h zF#A`ql)LS)6rBD-sEB32pU|hnOAGK%dfmu6fpK+fx@uSNF=48_xy}$+{2u*%gw>cM zIer#~wFQ@-$;cmZ78*yI1P86tqrO{VcZc$5n)=m<1v7Ei} z8C3U4-0!xj(&k&g1JA&Qo^8A2ZYuMIz@J&vs{uPjQopZP3E@lbZ#PS|rCF!HQthvm zz1@>O@Tv-sIJpajYK&lKkVLNLGvv@35w0 zY&d}Vcvmjlk7cp@DCf{sy6ck8I%z{vd#W(tL%HkbLKl#}XQZ ziROrndS&5y<@hYLRHWRRm;1A2M611`wT_PHi^Qc8D_&*~D32?2IT&=AXH{~$K;rs5 zhUb!Bst_GD_-vfDKIB$Xj872(7u0$%AM2BGC|m*|>CyuiWRB)14$+6jTl*I{M&3x% zly!M^7m6d*>^KQ4`8<>yPUXkCDPFwSht>Rr+fH~YEB^=-rnD-DfMth(pUZkDBQ3u+aA%BdzB9&ulYss2C5h9RtAf6#|?4fAkga6 zCY_593!`g{Q{nVnq&Yx~$-z`J=phLyrewp*BemfoD;EfPOtGzarAbku+RX>B=KbZs z^4i&z5Z!#0=^S2DV2c?s^q}Gh`HHGbu36-z=ZO@FregF<4U!$LN3Xg1@DYm4V7%`e z|1tRe!PkiXF`+=U&L^SoPD>YHh9{u|p5#>t8wo1M*@a)3N=lBR%X(@f566 ziP@+AbbHxE1dt{7a;ENnNFGpQ__f|BYf5R0YG27tLOs$2%LiuEhciN)=6sS1=*Z8J zJhUret8BW#Qsg>5LAr5TyY5NWxO&Xok%jk=u5I!+`c{P#OMjsWrfp07!@xc?oduh| z2!EWk?cuv6{@9Y@;wZ_r^1mP zCm`>#8u=!~NT~e?IKHp99dnl@M1MtBobCy(4NSz~TgMuC^J2t%)}IXa6g&7X0Ky-Q zP*l3-w8C)5GrPz%yjKFh_9-E6#tnE+u0!#A#ON=XHTYsru^{XRFpyHc_Kr_R#GCfh zDeT*K00Gz$f)1jaGo@F&(ZFO#8y@Vl}$s*d|Aro8#~| zpLV$_#iBZ#KB>l6CH9>vpYcUwr!M=N$9lhrWz38Dh1CCRE*=C_i`x_Ld(LXPIA4?T zmb7l$H#dBTG^hRHlz%>B;P0OD&u0w$_9;se`h|r ztm;LZ{ezRfpqoU&c`mc5`7v9T zE>r9abL-nezM#@52`>SYS8K<_Myj4MA31kYE{?Sm7fchV6kdPPW-$!+Z%UTry^**^?E9)YB6gm$SdP}&;a~pVfvGX<(~(QBE^XD(kM(X*>E-cK2tH}AQ^FK^?rAp%6z+t+M+{)K+KeRx zGN^N}Q6Z5CzIJI44EL3exe%1;Udb>W?8v_~3K*Zq4Z(^+f8lF z^f=QvM?3;6HLeq5%u+9&&)7*jNBm5&hd4c+b#e3qgouTs76^yonE_jLflrT6p}aM@ zJ=~=@5J^@CXRB;yaXrv49Big+Ng#?{oS{Ra@C?NPuRm<&#FJ7Bz!7B@&{Mim277(b zYjVF$)ZAu9WgLP#xsW&hpf@_|dul@rJ~>H**IB(+pM|Jo7zY5UQ6V^1CkJS9D7iQ_ zi+3l4CXC=XBZdcdaA6JMZ+(gwMz{p`1haVeXc>A1h5bVZJOky{HBH4wUJtjmmW2L! z;RbGCm~Po?g~1A-WS$rY<~qtiM#oj3)2TBbQK{R6Pb?hxHUC6ZpXsZ4ciSUce| zR~zQ^$R;ZY=uWmD)$8?)i~1(=P3AZV7ZO)T%&%Iqd8QbLJo4TrCV5N|HEgf#>0BVX zJBvsNl6e=K6}OTjSP1^XnaSB8>HJM4BzRR4f$<= z5Byc4Cr0;*CKc_k+}7QIUGnBwi=dre2dCacQE#z{fY^ay8vFx8_a~F+&cGI-d&|eJ z1@&eT{-R8=UEr=DwaZxiWuiyj@!ayQUqYrYkB|_>l_qHa)A4XgxPRm+fDcUu-TJOi zf}RCi;HNFX&s9U8xi1`E;)x#hn~UY4%Vj$JML`1CB_zI<2E(ti3a1c}G8?JZSa8PZ z#aK$g-2Dv{Dff9&&1gH^m)y>Y!E7LEoHgbyrOuVQ<_4-{)370-9Uv-*m-VCn^Y zsV#m{n%*@W6zhY_=QgWv+MW#@mK^-9c$W7K2&#)}MK5*Twv{XcbbpfI;J)kJ$W*4< zIm-C)W^o$~{c^d?JS!jfXvehgQwyJzQ2L`w^Yg{kGB{6plk6XaQ@*Yeql*_^Rew+EZ}dYU4W0g%M-R2C;NKm68dw7uz&#UFwP$Fh+%W`IsiW(BV{;t57(tc=iJ( zxg`Zy9BbJJuXS_ALkI2jfP{1=VfFqcBb|9<5eFEO2Uxh=<||qY#+$1>fvT)Lux45g zv}oaX92(C4d9p*30HNeK9JRLeS5W4L2h`OGK*_{m7BNvzOclX$z3J_W*vaLp?RjbR4ZO@pdup+=RMpaB>cvQ5A-d) zx!~1_+|#%)Zj{}`F4YzxQ+c1pW4G;HAaCeUz7U7A)b^n8n2+M4Kol7}wPSVqNV~x5 ze6xN`yAbs#U&ZzaoDywe!{q$hHM|jZwY6v#zmyL*Cz;KBOMiRvXU_$Gn`-X%Cy9nP zuPyK;M`Pb0S-5fs{3_<4VN>mBuy?;@uwM1C%NBi%S7%{D%ajk2@v_LG0^LBQt4niiF;&9kxFiKBfA=t8E&! zYGLt&vk(4ZJ%>>DWdUBP8Wz-Jn2vJQ;vrY&(K4swAs(Mro?LE26XS6?4uAsD5k@^> zAGxR0?d;T9((vcQb&HvEe{M|Z4h14}k9I1&8Po4qOYTjCuoKxlJg!57yd+>UyDF03w`y0CUg2wRsy7N`iP_bod>d#w|W%x z)~AvLquNe;ve+MFs#I}v;lMWs$$hKA>^e@>PdZgUv=@EvBZ04k_d7AgK6o~MlYK0A z=2U(6^)I!&d{KSerI6Qsj#`4%wc4er?mzd7{%srtd;p<;6$b$yK>e11ZiTofVav6Jnvk>HOg_FQ4Yjt|KS)x-v73!Wr_*1Zyk;3Z!C7WaV(@iA702$+(Y$nF(m}^5$f;vsD2j#)^?n~*>HoERf$+rbEJb;z9YjhdJ#1}tj9ugTN ziiMOOcHmYeT_-(lvq2#gY9}t#L_OCJ1Ys`gH_+`FI z9=#qk{UKeD!}zS1+tT_A({zqBlB(&K$l(aO&tkMw7l31yuWi__XG$p(ly>h?%<0;o z8^tpx;^*n~xW0yCM3X|nMrC!pG096{SlSo@8+s7H1rLy?^5Ad-8-&rg!=rIJcA8=y zH@jlobVyc}LOSHIbhEe96YE!YC!pB0s)cRNJp!1?+~6FY40s?*%{iiUa2@%gR8P+s z5<2@%pn;WYR&`CuoF0xj%WNN*3%A6N@k#d#Ko4Ys`Ib+jSO|0L+$2lR6N9Z*x=I(d zC3a_lYK~6~llW8B#I>GH%JUJ?ykafxtpl(PVjE{&J4>8(i99%jty+&PMFukj; zv+mVyr@0Gm7Koi2IYHp%V5&oTJVE>fK+`P$eYnc~pUhGHrxyPcJmr4QNl_R|!YE9k z8y+Qb7^BEfiFIINPujr9UVa0Ey_tMNf<*M@ea81>6!mT<-x>Xhf8d|D#AD=Jn>5|0 zXLiCuVt*a}W?)XiJ^KW`$pm+rg77`*6Ygm%Vgs}BuUg`Rol<85o+0#=#UOr*SVh=A zQAi>C-u*G!d-ylt9KU5xp~kpGa9+6n9T)XSHmC9IyL`3wA%Ru$T7mJ;^0 zW{Id}HeaB2&iwiRLTK)(jQs)4wI86lVSh=*{l3)s=~^CWWAqPg+=SrlM`@u@g$oP>m#uRm<*Xu^u|<5Om0RdRAb~oviDu(E!uRG_Ht62MLXM zQ|kbKCWkyR&QvM%48An^oq_zM#xodMcsrGm)nqRYEWYke4$>HaSUJymo?bs95LJ$s z7ca%r2D?sSK`hw{M^NOt4R*R4l%oy)Xwc@PIoDAKzGNQNCZL^-#BNzd%%zGm8t)`R zlxiCcK2FbpS)W-<4~yUC^@@yoIqLFL8PfnZ4&P*cFGlg?HUyrpPBIj2ULZ+pPF~VpQdoz?1hn+BF@U+fnS6HNZ@(Mvb zkVh8oSpVTm>W}0j}(K zRy>O(FIeq(NKY%Q+!T{7gI2QY?ZbAxE8uj>uKY9cM6Qt|rQYtl!tvJ)|G5P)%100T zJGCd%RQ^}g)?X)IKbIc=!!YU18SmY@n-A^U{=NSv-~Deb^x>y}caiTsI7t#1j)E|? zGv*->2%?{M50m&_quHG!xHs>l(B6p~y#GgEN=wn6yx9rq_W82U6HCNDf^hHT0pG4X z3HHVwg4nZE(B@9TH=|v!7ns8M9|5&@6rt4K=d+o)Ur^&=dovLp?0G6U*(D{yWUosl zZ{hU_+Cc^Ro}k;sB=NmiMI`(7T~adM+ljFBEnXSyC8wRwDBZ_+q4&rePW@$*5VA8F zk?yy|Qu2C*;1bYkcmFi8l%9TS5_*rnmbCh^B_7-zG6Uw%xBuKv`JbKC zt$KpqowA#Ml;`ayf2-$|+@iANhYxLS=%On1BdV=-8ABtXK~(cfOBA6dRb6@R$6 zm5h2B>S@k&eDP0^zCG=Nb*$DmVoeX5%mM=sc;ruM60pLn>&2sn2i*{4sP?NKmm{c^ z-793ZklASPal6+c;pRL0bv8R*mwU=c7 z42DfxEXOQq6YYig-12x0F>^gsW~L(mesk~Y>q()b?_9*$@3^jAh;s`P>2{wq2`2^b zDXo|o-;10zz-88{;BoKn%9PIVXsp=FPEnzpwLwjZ*IFr$25*WNY}+B# z&sP_(nHFzt_fk(hZV>c9AsirIUi7);nb6k{FYP2}+vlXI@MB8aQhk^50eiggK4n6+R*Wo-shtq^F5kJ z6mGK5BD=v4vg+i=^;wXB@32~8PJ!?500#JN1e0;J#AHUrHiX=Pk(guiEfpLf>Mo0X zhT1z+XzGIu2ZTOtH?xl=SHF7sgHmdx^CMz33S(OE=3q17J*}KNAQLWTB0vn{8YKjq zndg@lgb#sWFqna(h_lLKM7V=*r$w2cuCu^*cG6t!;Puq(BDlsxbIAtanzi|h1=n6V z@|k~MVwH!Y$UO`xT^gww2gljJVQ~4REkU4%YJxQRL};{q!Fb|s9DxUBpuSvMR8ht` zmCwFs5vTrc;dpet1@~7qtjTnMN{cCohkZg?-k2mQUt*(tB)tv-(L|Rr5=UcqdgO&e zKMv%2BBwO#@j|*j;n4&GY&i3Sr(X|bUeS-urQ2z|d4J|fl|2yP%K@2|Qe9j`nv3g_ z9WJ`l$K~K+<-y^vNEuF}6zYn2h-~nPN3X`MUvUDuv{Fm6_6X`Kg;-qkSdb zT^ZZ_c!Ff<8d3v%mN{kQwGokTAbPi|6yqMp(kqs60vcr=TK?$-8T<6sG>6hwXR#v6 zr>HJTVkQLq?93C5g7|AbGv&=^amUS&Sa`tqaY}*qb}Po(Zcft+Za_K1gp?iQj$uj5 zDqt>rUfc9;K0Skulc}f&IPy9Ix=8Lc(WIH*04aiJrt%1RrL4Qib_|1gGVwPmlfMPV zb``|`2sHfFLVpVyZj1Z?4N(dsV1$Gam?B^ZN8!(tJIPKBkf3`Nk4WDwKIvZO+aTUf zW%6zpf{49xhXns1f1&7w?C6V#_BCMiEux6NB_qN&VM4g0G78)Kyc77{W|Zt*-5|VS zzh6K@nrleUW_Y;@Qk*H)#hTYYFaV@&{PBqe9@{frUFN z1pXaZxT8Yg6IjUWp!yRm%$CcEUVnszU$z1N4lI0+X#YE~a7Tr}Z^6Pn1+{+8A_IJ* zk>Q-_;heaxP~oN`+szLsRUzN6)Pk2eqOyusM5c+C_ZnlEQLL(>SA0(b2p^R$QP$vS zt=dr8-`f5_^20S)dGiKxL=hnap#&EpRzZe(5liMD=ez3=>Ueyx*9>5jnmIf#B8Xo~ zb-RT>@)s*c?x{1j+8l_Y?EU$yx{Jt3NqPC`9R_}$IQqGwlZ^r&t*7RqTUME!&BMXH zgOQ%&D)|1O0e@~Z{*|EOvB9Cc(Fv#PEo9x~0P+Wuw19iOj##?r!NLnhuSSy26ca(5 zutRxaum(HnV;q$P_sFDKBwjdskY@QhlHrYU*zSG+G8$YlHz)^OBf8jC%K1KY6?8zK zw8#qi2sTR>R>u@`yXtQnXU_TSh}(dF+eH5x%l&Mqe{ZSp%{30ABn%TMg(4WdJs{Yp zTztu!tQUdyoHZ2eZ55lT#oop=eH-d6oQA&0>BgJQ{nT7 z7B0e}eaa_z_l<;a8XY*@WB&L(RkX+U$1q{&ODMu~dC0e*4HnJGSrTd9-r+*W}*b4k?-fwP$~K)AeoS6=1XZy4x;k z&p$WJW^um+=39_GUp_h*S!|E?ryER-o7r+d$YS;;M&O?UEl9q9`N5?-|t)=@T) zjh^rty4*}l3TVmoy4Zwpufck0CSsu4rqLe)e&Y}(CFaNzhk04M8!magj64N6wQ|R1 z>Cu;8(Gmb?C?er{PG7N36r9jD3ZguyaZKiW+TNGf{nGaAb-iABOY`SLyF#!l=uZws zl)jI73J}fod7lRT2|araKVGv7!hqe4bCK@Qo$sV32KQTwXPQGiVv>q!zP|d!d|>c% z$(T0-2>kSshtajlM&-qwa$9MqVt67atSvC)5L}k)g}j4S@Dhz#oeT283)E)z8@0xFTKBm5e@$iyiHjEK6Y5POvxtHf9ha0qLZzc^UM?b&7y%qJG zt# z_=D2U*XO}F->9;n3h?3R8@|J>yf|WjStFwNbi6~0XZG`EB)5<&ejG+^* zXF9SjJ~#5{nXFv}xH4F7bYHAgkKjtHahZ&|%pmj{|ePZ;pP54ogg^GB&<;v;K zJWDx3!KXkWanI?%e2jQuIJrGy6ebfR_qx_^#+p<&26QCyCaTw!rr2Z0U7);DZ%Nip ztTDq4CQ{k<9Ry5@(`?p@U$d(6WPPIPT)Wutxi}y*-5IsQ8OIl9H&vdDti=vv!+Bvl zcvL>i5DOAOeRdWQ(k<9Mt&~01*0EoRf;P+092|n@Z@4hTkA^+`9ro1Ug=v2$!2eg* z`n%Bar!XIZb~?lD{l*Cl#V`yevCnWLM(rpOhTr@v$a}yV+M#0v?m_YPXGrbUn+@uv z8z=-n#f@mR6SZK_9$v@L-tPgwp(BLufG)!K)(hm_D6)4@K<~C?d|w;?RS(B@J^{Q} zbaq5HU@c5 zukR|~%@8 zw#`C=?9Re1Rba_2&$McZ_+6y|M+&2(aZG6?XKvLRMa=DmK}b2gU(}qp8&UE0%n2_4)?z@%I1LQ=;f<6UvIJCGW{^b)bjuZcqBYUOrgbn%g!mhA$OHD6IeM4+H<1z2je5;2T@V=g;_&C>tUO9LFJoA`lcssa;`cGs++WLO4WW z2=S?AUAmjpEhtXVJ>=f)^E(r}GswP$=XTMdH-qe3_U&`cI&dH2z~2*^;oI^B&_3k> zz5C*z_Yq=jPvw%(JL!tNHSV^+ANrM9j`pPOcHA_1r-H#fuHOvxK7q3Nh%d$++^swk zf917>sXdzzy>k)Uscg?d-`pNMvDjN3IEdfLf%JC@^FN6KYeo_fG^(yM>Qtr{9u4PD zEVJq!)>|iZol|fnOtiMcNhWqOF(%0*6KA4{Ik9cq#*S^f%Q#JwXQ>t_&RHq z5csc5#@%F)lYc^1S$#6vrrqg|c|~HjJk)~)C*CNLjF}L0M~4@zg=fFl#KM;0=CNnf zRl1~o?|}AUPfy=)5HDO`QL;ja?Vt*v?Z(qUwP{xsz>}JKH#~`LoNEZPKWK7hnw9I9 zr!?Y%?58ZKQJh6}Io&*hD>x_n$~sh-4$uUw;KlGyNN^E0ycXE0UaJm`zJ0eKeJ3kE zQOJQT_F$LOpb$FIOxu?_I)&#Q=>Hu8hOXdUx&TAEuG&{$t{CeF(Iz)`DQ2!dD~@AN z|L{}CE+s|t7v%#vYL zZ9nu;<^A>%@&@b$OA3#ceV@U=vu|||B#mvcy=AZS4!Zs+h>On6mT;C0>=8y=x?aQ?vof3v5RchMW4g3}pb;uZ&6lq(R8%@E=1W6hh1lQM z>5j2G(suGl0uMvSD+96#+UXK2fAr!pi@^9DJ{i+NnyKwJu#>};nkzr;%0M)BEw{+eYY0&P3da2(d7ikq@@5FlUP3;o>vr>U9)&+5L_Qoi|k;Jx^SQV^p;c^s2wak=t zOv<*#?QFF_t>!3zf8aeYu(Zs7LJ@5WoL71&-T!2eh~a`Q>+RWuozGMjFIWAhwid7F z!w$hKe4*-UFBVFpVa`RwCSR31z3jWDW~W=BLeMq9`aRk~uFba8&>0D7a1nTVTV!?v z`zyjrdYOPf049>!J7s(pxlBX+`{JW=x3LWTSvsv=N%_!nF{wrc(&LfwG4u*~b}h zkc%@X?D_n2eZcGx#4gNcludBM_FZm<e zfErsPKK{3Yk=HVIc;JqngVhp&w(DP9KwRnNL4Y0N#-*AmySI~g{0!n`Ztr;^erGs@ zo=l0;c3at_C`t1>=dtZ*lss;}+aBzTsz*5zxHHJlGb)&cb1Fw|FZZ$u;unM zp9sj;AH?q&^R+Sm8?Bm6B+lCJ%8N@BM^e{_q;_l^%r>pC%m^v?4@?EC zq`^0zHcG1!UKJ(f(4LZzD?fg*xrr^)qt7=-ar}c;%MBjmk_DF!^}q4Pp;G%W!y%R^ zU8=he#t5KRNn&pQ%~oFhRvi(8HC19hpbJ&fkvaBP*y8^98|7b)v{lY%R-diT@jo_pT!oN zv*@=wJ?C0@?w>0o{H9*Z?uhgjj@MuQ^+XNghp6ZGj!#!nve%x_H1)Mj!*c|$hPOEsLpRSZ^Iks4 z8|cg)1PUN#me+rhAGDvyI}IXsrJKma2F@hzK%J_dq^$#9wf5mL0@H$Pa6NKcYo4cE zNQoD_OR931+ojC*MpmbsS5qqRto0WLSj+8K|Bext_{X;#h2*Ekw9OJ z^k0|s9FiVj=BE!wq!)&#r9hrq z-YA#I&Wd>-<*$Y#Ie3nY%Fb_==H%o&6oS*UI=*fzWa+UnU9sk7-U;a6?hLxjGhfHa&-MANZ(3~p7$nDwBF;0FgK*TKVHG-R8_5mkS z^*ll3sc(|`A9uI;6~l5;zwPmp2{hK;dOCpmFJ*}Aex5=~qae(2(zAOOMVBi}n&41h zgjJ?5!orxvK#aE!OTM$qWgTp|n(oOzaBLDk0^uUXc5F_TN?ws!aG~JBgC~AtI35)uyCjM% z)3`dTGW&8FA^80WV|bmRAyuYS1GXfK8O>mfj!>3plfuhehiV@|TUHQ9Zw@ycrPlfq ztxb-~wkL{-=gq)k1y9+aD`k;11iqU}o00J%hEiOXW961vmwvYeemaXpFk*nRA@{FE zdk~zV?Kw<xkIel#5L{-&Z#%@W71AVT)O?QIC;7ET{RIE)7i2qt4hi@ zfxufK36{iV(mUCIt@&ts%3WdvJ9!&%b&VI|FY=ybFZ54?Scd>weE9#KhUr{I3qx3) zf~=IVE04oD-xyO9I-Fza4ac^LjHC<#KStM+-;V9OApzvGXolZdY=fp+jCiI46_Cmr z_CaCV;hoF~+0h6QeQ?$NlK{7r0(^j_MAlJ z3SkW82wvA;0vMws_l`^j`12NToYKEmqsdY!uxRi>^|IEhaCw==e-2|sN1GC7iY@Kr z4(R#$Bbi}2lwiQ$_=I?UUU4uij4vdUyn1>i`6#1f}Ckb;&Y3_T28rk&~@*r6I+Rt^<`6M{& zrS|r%n(7;v`YQwCrlR(CBPhNfzU`7r?Qu15Oty`gR8fps^{6Nn+Yt3l&;hmFiVhc8 z$WC1rHvq)*NPSq6GaQ*FDwjUl;eZ0VKfC9Cf=F?&lr+Ls=@79=RaKK^?iv-6VTLDF z9kSSN{dEkD_Vp4$p~#j(;a5-Eyu;80Kv^dd^CNIal+VhRl>P|4p3j^c!LT}4g4BmcS;mCt>o#lt z?52#Ou3<%ym)Xt!{zMxAtQSAh6yPkrs#Nzf;n^E3_ilQVBJ2VY z$=J&-zckbZ(*wMqEoxbRV(od>x_Xy?@MWr3K9S=hfEiVu{?aw;3p3)w{bG%qngxs< zg+2SCwii6-_5Md?1$SYg7N0d{(RbtOKW$7E7fmApikXF2?Xn$y<)*i&~ zX$orQW7w}UKYzc)v&)AGK^kg>NE$?$9K@Y&?X8w8ox7ix-yG@;G+={Qioq?5Ww!3y6kxKcYtjUrUTMK`B@_Qno zE4~Qq=o6w_L%I*jQ%Odl!LhMInh5VX)Fn%`%33SwV}8s18#S_M2X~ z{&s-)QifAo%tO)Ya71iA*(**fimIm8CuF7?dpFj#(4xHsmf+LfU9qkUXxn zr%>|UT2cr5a82|$(M+A}mzy^Y+%m%HFLEFSPE_0EUeL>bl8HYV`A~Tc=%tn8ogovN z&pe3d?s)O-v}u5!W`o^xb51yk7zKSgcx>@CsZIOYjp)!q)jmDToLBk0)L?h-eI4bYu6IYoYFHdruBlBx=NjCn{{a+1=D*|k zdHh5mN(tqbzuUdm@CV$`_m9}H#p{~a-ws0jl(I}M3e;G^>?tBb1R4bfVL}pNo8A-r zvz+~Vwk#q4ykx%(Y*V1!%4+Vn+OkDlQJ8v33Aa(($IY_J{(7)o>3bUD61kG4mUw8< zE!+v|nb)FA+#W_|?@1Knu3eXr3FB9M#~u3aa{&-rVkq6Jvv?vOC8d+8-R)|w z|5O9VvjcbT4}qQ^u!C8wW^9z+7E28F3&9aiU%zNYh^T1)AUL61AaIc+X{wXUPw&1- zY+apbZoR;WJ4a4Vnao5C?)ji&Dzv~n{c=~h?f6aqpVU-&!%28I0Hk$d8uBsRpnT{) z6jo=9_HEY#xxcN6C$;l)Y3Fy0uO0zh4@yR35)lSbXp{$OcHZEv55W3@{l~|?@9T4J zln=$sbk0T3cOzKi&G2$zHvu-Ga2(8Q^EOi$%IX0XTSf%uN*8)WtK*}SRxWJjSl@av z;?*#Qg*S2mtyfp_&gRT^Y#PlLa{FeH-j3i3^abs<(<4M6!%lR`kBYsmP^NBep-7~H z#F;3MJCZ)!CzAfv|2=$wLGA!-2|%rFer<7g7fe)SJPcg;C5bcjoZ_T^t!#D z-&5=titt{JXz7^_8EmAhLL;(m0djtr+@4kBZY z=m4_9{we4W7&gME_^?4x=3O;zU2C;L=hJOa{Svtjt7-5oBn`cTdc3s^!~a?H@LLj4 z5NXS7$dyBUpBEPAN)9db?Wf~=3gWgQ@br0EtmgeUfd1~3Z`9Ch=Q1%9ANWqvw+jCH z{qpwr+@+IIbs=>Ebs)IiR?1Lk`9w23T;n5(?Ws;^sjsS+ zg0=aj_0sTTG>mvWTs7)#Tv!$nfZxSkoRxT2d$VkNqryz-`ziJ=|nJ3mtrop)2McqrNmV($cug!LczmJ<_gk`7Z_Zd@~8rr-e@o zm}RwgTa(9#%I9@tn2TGEpNedYNTqm)Exqs=W4zh&Ho% zj!7W0qOttfiTsns*hu}F8gU29n)~G~T*c~NRq#uQdMZp-{HtyPG1P0cS7**ND>zkp z`O0*1j^C`py_ClXPZqS8(QtC`ftx*WPggVbXq30Bew`3q1p|2CQm=eBsqp)vqUk|R z^#SRc^fqw<;<3J5rBCvIyco1Ku}E*d{#|&=u^HNXtBmdO1v(+SUMoWM zw9tsZuGVb&vV3xt_CtrwJr-|nwhYE#FA)BrvZ|Tx)+`Z9hEi*iJ|7OfB%Qfhs7#te zh|DS@ji?knaJCVIR$<-l_)gQXcZDQkocum4)o?C^+Qd{!EGSvNIIawCGaw5LAho`c zt0p2*H4q6kv4N25=)_$0NZQ8J!jh&fasDpj!N=Th$y;;9jAUh_pxxZ_V@e~lf3vY> zY{G9A3w=Hi)_n^^nc_D1^WRlk!@|=Rkn5KG9*3J|Khc7y(tEtD2zFKN9PM~3oq-)e zR>o4ces&bX?WQ7p0GtXxYgAB-z*7;V5D}};X3D&55fi(ti>4Tlv1V*dpe&0_TD2uT z4g2`N2G<0=yiv6U%W#f|ZA>7B`hM8Hxha)j{ z2PL_wOgt{`#+kyX<3fpymUBER?7o+#Q0?I5*l{1;ijlM7h>tgELpXBx#~GUmm~*T{wwW^3t+@ zg#Z#n&5XsS+W3@nV39Y~9|@gTP4VhYEA1;Ug7)iDHou)8)1PGoWJFTl!45h64<`~m z`iXGbxR8bk!cQ0RvLo#q_}VxJi!4MSffXXYw5Vy}(TBNYzYxBhk^7$RN(Gqf@mDC^ zQj_RZhM9{KqCwdhf^1?;a2MCfYPss^1>&?3t_KPQtS!GSglu&bCE2VJhWQU-xzH|5 zHJT|~1&5|hO-Ap!|0cx$Vr4QYauM=by3NxeScC`PrY}PP?2!Ky$BTvF`S_9Fm=>6f zegmMBY_6WV3g_w`tjtDp+iDl7{8&?h3aJwMeTrkzMnK$z_HpP0-}+r#yegFl5kNPO z_*>2x8vmbH9B{}%5AQepgicG8Ejh7kr2paM=pR&0-a)ep^Z8&sH4)Kp1pu)r-)RoV z`hSX)Im;=^k+DX>(<=!Yo{)6U6#^xo%`swfa-Wa_h^sy+-?(k%RbLnB;RQvX}fexUIC3&aD zMFe42e|7ZO7NbSa#lXI8m-xl_$O?Pn0gvZ4bs^%)~)W|aqak?db0Y5V-qoPiEDzvpI#-J?rSDh{G8RbLg z$30MSIp#D_8_Lso8fYoPPcl3Zj);b}|7~ZpfGx%;e}ZK)c%|Xj9#aOaM8=jq)2X8u zu|+&9Xh4v{DTrNhVz@ts}0ua%J$BY>~f-~Ty8iU(L&_ySsN zsC2gOq5!f=70mRPfAp{2#t+f1WX2M9bzlvC%q;4xwz=DPGA*gQ z_wBb)LJ)@$hM#i7xjB%zhVTOJbJN#q_8mjVJNkap!btKW)?piDGxBt8>E(N2;df1P z;wE=5mr>w(Md&svv1Jb1`Eh8kYyRf47H~F1_Sb%iSsC*`Pu%VZ7v^st2A2@!u;P>L+3!HGkUO&-%30Ne>xIH>(#Cxkfl7Ts=XBIx` zh(AV=r)M~_9F-$`V=dgt=8-#yC7?2`ihvAL!s#jqL-WofWld`N0?tj{#mOM>oqn7Sv9dQdr6th4b_HdrZ1UQ>=xme>d$>8eNY zt`QS#?U~i>gYr_tH)2Pg$twmG$t#DXNE--c2h9Qz{|?{oG#onLK<`QF;OxSY%VN4SqS)f@7zzr1DPeW(C!QiJrNtEYz(knts<+Tj^%WL@?9-Nh+ zM(tOFqotk8=afF%Itg`_?W`nBfd_$CrAJ#`cKImMjQr6?ERgOP{@2+Hn8xtTg^Fxm zS1V7-FWnHBNLR02tBp$~We=KyUXN|=Cc*cQpG@y-{S`iINRWIJ*R5Ed&m%we*SGQ+ z@~hl!Gqt2_4#Lv%80Kq};APHSOoY#|c6EphOHbknpprn*^c;;kW+Z-YD_i+ng`2t;6S|(1 zCQfAfhU9Jy;60AjC@|uEAQlJEEtlU0z&i50grK{Y0n%cGR5z255lVhEXRaQ=xob;ex8`oI9&!5R7SCCV`#e807 zT73z(uz#*!Hn+~|rGvJ~a)8@l90}}AbxrObkCK8YYwZb#YouHu4y`whG&J3)hx<52 zc6Vl=tR_|;S){E4dUbC=crqpcTlYC;=^ctgGQMg{213ph`x5;*!#ERAtuUw`wil~T zF!!2Hs8A)wjqBOiY#18-mvADE7<#{Bs%W5av_N5wF~XEqAP&FdjunFbAXcdlKPvBBr~xms5A$xZ zhw6Ecj0ig}?Pf2?L~2hX(v`RszWREgo{ul3XK# zhWlHA2tPm`wQ1Ysn8a6rIG<aahVSMUerO5|;{O(3hpuwE@(riE!sZ zmGem&?|~!)X*`r}+!91iB_*8ZksmquUY=kej9M6zeu+w;l%Oy&EmhHoGv|TI)WH7i^0&aP}2l|di34ng{ zK`$u5G%jqCFlPo})SJLrQWQ`+;VLdz57Ce4W+B)7ns6tksExL%{XsJEVVOjiS$h?Sk_g=UIB0#L}|(9R`h2ebbH74@=Y-RKWQ-i(B>2;K1Jkx1(ZD znZE!7aR;%fO&DiyS$o)-V@LRVnvUpbacw6xqXEz&>hW`XM=EyqPeP7VD2Gbp)6(3l z>h@}}=JBTh&Pl7F0856x>T-CtBI=L5-8#9S8u#`|Ws`82gT^>$&uG)HCR)p-^y)j* ztq}h7KkbZ1VTNc2)2H#SS=^H%9s+nj$<02;+xuD*V^0{VSQ7;pdC!wsuy@oZ?ll@l$0C40A-{WU3`2K0EFGB2-Uaw+eE4y2ae6r8XLl za0pV>B|)jSM7M~XU3$KdayA#7TZSJ(lya?Rl~n_V0d$V#N}}v7`jKRH7KQD*ajndV zOGp?8M!~5#Yi<3GM_~M6a&D;m_D8f=Vpow`p?k{i2V4(MJlr8PDZ8EwouD%nMF=7c zf&%hkQU~uj+nmuz2YNfpx4(bgUe|smnZf4GcE@#O@0sYNGkq5*nmENM-~wy1mA2rk7x+6M+5b_Fym*g+K>B38*S{t?rd*V z{!Di8q5yd3G)c}G1c$G=aON2fKQoqTP+bd9P9&7f`y2a^grEJAJrtgQI`c>eRPs0)_0B6_&s{}qE?-y1H z$KS4cL-;r4*VLG2s#kCEtj$FihbFg-;KOZgx!y+?a>H2ys_UHE8z%xj+D(Ej*YXFq zOkcd~AMG#Ijbi)UnMgawKI`21xMrQin@m`qbxrZUgGsaw3mxOJrvi9g#By8wUuZT?9@+k=<`$HYrYrs#2Y;^Osy zStrVuyrKE~X$l`vFa8@*X-`a7tI+&3FCX@nD>c|k<%x5)+3B`IUXk6$av3rq7M-Qn z@3-RW?Z7#K!j4<3WNV4UJG-&%d;2cjb4z+DAnF7ZI(vn!wY!)A0_!xG>`(&l7C%pSvNMh(we5oEZ8ma(7NK?zRm{gR^Af9c%xN z%`Z8?ro$jBw|{XrA0%r&mo)p@5X2;#>hNxw8=j&C@t{SUGw6sliu*{T=MbgUlKfR1 zgEoZ(=&1LCd!s>%1Vck{9sa#A-e)QX$RO$;iWynq^o-lhxx1r6$}bmeLnv#Gs@yuj zg)rMk^M@7PM`NtgS<^v4ceNgML5&uR)wv@rrT>4W}y1 z@1*$tQ_{`i?CyO-V^1uiJN;l{@cukt>Bp~wbm8o!O@EGbZ-h)lv@ z2pG>c45%Of(1WYtalNn^S5;(;_A`<4<;6c8v&2iyjja&)iLF{9dZmc=CbTirD~hO} zJ<94%eUBT%5c{{}HBP-NwOU7~ho6(YGJA$IHOWZ4NIq9s*Oz`CG$QCDsJ5DEmd6Bd zXd*~e+2Pyu0YWI;vH5fQHGuQ7!vJ1nf4O($w+_aVP(TY2WP&;PiKGA%y~iXAXu-DC z8gF@yAJami^!i;~^p@h^>lU4~F{zE-jQWXrNV0ZfS)$j0+V~&%WjyY=1iu#;I@fLH z08DN1#xC9VUR%2Q(HT30?$v7eE;Ws9xbw2$_7778q_xdZntPe(q0n(+CvRPQ(toYI zcx9h(3B_pM(JE13*YDRIp6Pj=FrHI2u)_j7^yWzZYJ*$U7^*kksvYC`7k0rrm(zW_ z`TgXoHQ5`W7XtN}X=A?w>#t`W*ow;AV?)pd(6U#%)Am_9fUbHh1irQWPBH}MUi|wp zz1G@y9h=P0_xbtI=X?M1wg~+-eQ+&@`d-m{XXWO;o{KBp_(z>L{r*M-kxDJSrHU0O z+A!=&*4N89$O+3VTR#a+Cx(orE*G=)cH4utFtGP{|0$iq7XCfj+p$1;ft>I^;Oe2k zP1l;h6T*ex!Y*P+G>QY#P~-cYo!b?yppR&z-o|g=2eD!X0&dQQ7~Ka7#3~O$E79bZ zQ2;lXBwD8Xzd2ts&|Yn7d~G5i1pqV}*Ftj%?%N=ptv~Y^7hGnx3klmk`M2K)abn7t zxVAmGK*$mQ&{Q(DjcZZ3&0W?knRbe42mQ3!V=RAITTE@4b5AaH_SlxAMGTQVRu>jf zcvqQ9hvPoQ6?>F&$B#`9QmU2d;u-@BH^@=1i&KnJN#$p^HU!y_&fZ7IbrCH zoELlo$G83QoK&%0qGNU}V3|7%=nRDHi*Xq3u(xd{0N8d(?=gzJv;lSpLlb-xdeEKQ z*@t=up(S)hcPThtlZ@{1lCP862P&Pa!MAG#VZ71qb-sB)_aWO08(*hKZQEpHHE^id zBBI*`ZRTW+Jsr;+f>b&LKb~k~K+l8Q)zAd?rPuEMel2mwt^Gn>h>7jTFG8=e>d{g%D>91!_f7?w{neYJKDp$f1QK&vPJQE_1&L@_|^*I#_i<`A%*}N zyB30=)_>wVZSZ*U>VOeqOLM zY|-J*w`{LAB$|N$JkB$b7gEzNZRa+}y${^8_z|KXr%zaROzBwJ8iAAUI9Z2eHcaq& z?{i+=4kW+!Y@g6%M)!xYYzd^Y>5!W86$D^tIQ`27EK+wU`r>jb!H?%1K^_A;~ zzen*c3MOG#Q=u*RRbu&gm>c;A+qJmPMyeL8Y{J#CI%QF{1r9(q^M8NT^+~nQ&!p>k z;WjwG>?HR>JDnpnE@!HmL29(_3L<3Fk=(l?SJVOXzPVq}J5Ufh3f*caebroaxdf-y7NW?E*!F>cVT!3S7&`B+(BG4FpdO=+}2Iq zTcYw(PSONX?Fvq2aAqA8dvvHaV;(c!VFLE9mcV*}Fh}E8fc}+{usc-yx5@j%zAi8K zC1XtKhaq$dd`=4V8*Z ziRthr?%ikLH<2G^E%7coW;|Lloi>en_y6*7)~cyrg!MKJL`PX@w1{D5JMVnQzqlT9 zuQk5xgMBBj+DX=UWy$`C*)-+!p%HF8F~A2f6TT`dI2a9acC@D39J*1Ad1)kVE`PCF zsx3uqzkQSL+4CjIeBZ2o%}(4PINc^z1F`@Uj2liW7OYE`I`aiuzBVc=Uus&qOAA_} zgIsPe;2%y zuZ&sHyK;Iht*+GuOZcZzj?sI>93 z|CGGnZOFfs@bW}AP1(E9fC!|cm7ZK^xhls~$0jbt!v-I^CyQy#SU3C}k7d@K4SlzF z*GYL>wY`nS|8a8#!OtrU+{FWrF}gJxsuy)oiL6M&oji2*)9i+hmy>KkzFcoYk_HvF zkqe{!Qx0bh;%YA%h^5AYK4lG3Amai5V_(9!JhrFpeK1XpPV-)2{ZBZE7hw}wm*~Yt zUvcGJx$Hh^2UFcUj{qUVvut9uZ1%7hKZIFCZ7zmEhuE1o$;<#6#&hePz5t8xZzqS(}2{0Dt za?sZkf7!VVf4n{$FNv*(zf^z8U5bZOaWh=8grCK15~K`Xr_-|l7yop=Q``bScU(sK zSw8ysQ;ljh6zJK;ZzN%F*Q-Jg#Bhwhd_I$ErRU|oF+4fE)M%M_QFnrWTkdB@&mFk% zZg8`A&1Sp6)(wMp2Q1M8T05|%q3-if5GLR1(L8#6V&tJ;zXxyELht0>@M73-zT`7R zo?g?1MiIO}3hO)pnf3Y0BA4W_{j}fAP1e0XVw665G68_Aoe8%c-Af35Z{MDo9R8ba zcVDluw}Q;y3vZh%sOhmEF1w+aZPyDVK#I?rX_IS5$R1b1+Ti%DRRR|$Vq@r?C~A$? zC1tbpb6l{^K%czaU%mAGT~68)i++O@y)i*1|DQIy#5_wu2YL?P5e}#6$uT_&`h$W4 zaX~~=G^4bW`NwCDHy-1NakmlsVUC|+Y%IGj)<~9f_AIblg9sSp1hGZB7$29%LBH|4 zTCg{GXC_bC_xk&917QvP1ov>!d1aQeNn;h@@C&FnzDra>lYWB@;@Xp zU$wF-P5+v!uM@<&@3p8G_rsQ3K|y$^M7c(K=J?9ijV=W*SY8ab%|9IJzogHJI(e4r zyYT1|N4iUaSr0YaRfVEeu#)j17^l&>N`_DjYV?wS7?7X3JeMYy+QF%GD(q?O-r-!A zwqc~sQ&b%<$jx4WyN1=}<~*R{kO1Bk4CoW-#zU&=VFjK!ie(7^Gz&+z|j7T?Y&DwlB(r@|*OxuV)JFRD!X)a+Y zFG(3CpVB>S#$aQShdgl)>o5=+=B7VlFVHPxH72A!*2kW4;nVo$o}7C}I-@HTA(&Tk z+eer4`nUI26U;D1+(wM+ve|e{eJd<+*ili9AOfjMGC<7ZCSMNuciw={6>c&p-A)0g zKn^&11q1jS@eaOvODyaIFO0||U^)9${<_vidSh?c9m-NQ&;p0P$n+@)pX>Hm@KeL< zZpn6Z zIiIjG{A8wD2;|$Q$`#N=WvhKYROUZBI0dTuMYJkdHIWilhim0!PC8)cJ>y0yw4lyI ziaw?m@Pz#KCsJa<7q1pJ5xT!H&YzfZ)Wog&^K?3MdQ=g=7l}f5e+OZ!w!cg>eeY7c zcEO~d&}e!BhT!6ZjP@WW{+Tqx42fztH$l>YJGSv6!-_%OrB_!~4WZDhU#D~`*}kBx zfMdM%8@AQ7JTT2>R-RE!ewvza{)0$Us$zxGa$G3A7MV}>IsiEjc`s?Dn#=w32B8lg zzYjMCc92C$QUtHoYqyPAf?(^2kSo}sFl4-|Re#x5+-o)I8`J8YpY|-~R>kP*Hti_k zkbC<3O@&lwC~4fhy8EZM5OK}~mTe|A&FfIjzx>Kj0uJk3*n;pq#49e(BuyMlOe4{j z#JxBQSthe}Ipoqz;iAK!4y-;=!g!WhbJBQ?%=bRKz8HN-d zQf)Hs*SPta9yKQUVT`%6h^&YQ^gt)3J*esivOJnWClrcf^ka-^%8qe?LU@&;H^&Zo zJ|B1OGsR*vevf3-jE;S5X4~7#oH}&+>3`_vuec9(ZQEba@>0++SP&2p@DSs!C9*q; z7l9f7tv3D(g8#za!k$sj)x_4=&XLi`#L?Np)Pm8-&e4Ry-a|Bc8exD5E$I3UONzG% zJF^kKC-@mHAzEXcL?Xidb{&Me#D&Z{2%yfI!8|wS#g zK7ROZA*?C`Gek<+{~HaxSAt`ZO@nak@^1&iOV~I5Qj$Hm|C`dyEUMBW6a)nBHwXxl z|2HLb14m;MXGT3e3tJ0kJ-z?ZN>-9_+F(NKzW?nyK*n^?L6)wYFy1dAy-&l2#6E2g zWl$TaspUw?6<)gdwVli?f5)77-WU3?y$Ecrw0#D_s(sp^4g6|*8XOC)oPT-!-4zIO z?Lez-56P;FN%t^BV9ZOw{weJ@kYrW(Qo#bh34wWLRvxA|mSonvRUs0A zFooZrNBd{23hYEMqaUQXxK59tOcyHAJmDd9h%P5@4pWlf(7`17WZhKM<|CC(PCrZ(o zLYdr5B}n@ae!^9SMjNe>%v~g)-iEs0c}w?=F>A1!Biqw}r(Rv;vMfvy@u;-3IEZt>6s68vTjYZXXW=sfX5D03E zUJC)Mj&+8yCeZz)OfN9tSVArH<%Q6k`MY~7FD0nyFTHpQVp}H7^wn#6crz1 zK28!0^TElLBEETw2d$@RTj(2^!SJtf*F(R?>6#@w8eCjMH%T-ozCY!!*bjDm!5 zTKxK6ACL!~rB|^*kq$#bRpN>JOKAJLRc-gxiCga*=&L1`|KmQ9v1K+FaCe5Q=iA}^ z4o=N|e+Kb;TwmMzwDP{~*}mP~e%d|P=JsyzdANJDZuPEz-re+G>2-S&e|_GL=IZVA zx_>_HIe6Wke_lNTL84tJfthY3-gmE`AaB5(oSSd2*W=CN*1^-w$I}zXM%1&f!}HU0 z-P~h*{ z+I~BH*5aC_$atA<^{w-MIA4BBdhS`z+3s%t&kT5Ll5m_FwRVSZ+xOWC>Astz_e;2| z!N%9)^TiIR_FVh<v??yp`zB--i|7FcYIylf)8q^HlAbM+<=*( z*E^pWL~jRA7lX6F$dlUE(azLoy9RJtSS#>;m60Fd9yR;*a&!0jrsr{XvdU=0`S1$b zI*7H~p5DvteKCD|zmj=ye!Jhg=p4nHR^#`5KK~R2yxhOxy4CJ%+RW})^WSb{l6*2N z<<7^~*2Y-p@`~KgT#>YPzP)hIe!guTWV)MFk|epwb!v8P8CLIjeWrYlT7C|}`I2OR zx_Dt%-o9KVlDr>dy&DxVw!W>hzX?xyzhfYe2>5<)-00~9`uI3Kf6Ug}76!XtKh?_R zd`zb9@BsN<_iKT@J`WFP|MYm?E=Uf#nHO(Y)qAbaK1Xv0VDxO6D@IRhcRulnV!wUf zoh{0JQu5u-kIM1+-d)x{d^S?g_Pjh?)V9v{06M&zydUQm&E)vN$M>;0wtC+850#9) zpAUgHZ?9KZTUe~=y=>!OW)Z!yRK9?)bb!b66ZoT&gX^Jpk z*m}|+>ihomZ4Ix_*Zq}s5EJ*$Sopgg;Md#Z>+aR{dGAipin8)TpvIx~Hu}CDI^X-c z>xx6R{rK;xwG?%^bF$Uv!KM2? z@3YP4eK_xnAZOynu5d5z=9_&D>HF&^Q5c3Pv%OxT`h$Xbe7)aCZx`R#a^&m-52L61 z>T!qy{Bz%HVFJCrj^EVVuRFf(AJ1h1-miNMz5nj}0h4(G?jMr`vG;p%cL}42-|KG- zPiw6&JKra^-}$TD(%mYf-Y*Lpqq`-F=Ur)PvuP80A5RO8twj(0Jp`-LC)nZ-!18+A zd;Hs)te;*JtoGlJwGD_nG&lOaU%nq@?*V^LEFbUoMt5GfE?y0sPX=Gab|ydWHgCQy zzw<9iI2P&zLInOzkMe!T>MD%-^%plPBi0#b{q>kMd%ruu5U>#lR$dGU?(%pqE92lG z5O{ldeO}k^^}HV!&-42z`%${|dOtj{&*gi&kFwA6Mg5*6iqZ)W)93$OER#RDxd8$t+bc!)5sf=`?R(7j z8;YLZ|P>i^KA@V<5Kf@@wj>kYoN_LI!x2#z$`N^V!VW;R{vw{=czFN(HSxU^a~ z&t(g=??T-@aXxIz2(;rMSG7j2R$fmyiwNlOHD<<*TZ6vtH#zN!hI0b4?^e~C0KP-K zQ|JsIZOHQWWS*>7N0F}9F>R@*+Pw9El^Okyy{sY%67rfW^F5!O@%D|JPx9ljacelY zvJ*P~i~}C~3#VP%pH3|r|LOGYm;Jht7t5ap%o6raWsem$#8F?A!SIZA$U%T6qVIv` zUG1s!8Jm`|n3Ux{*1=SYk#CMD#byT&n?Lp zx7%ewyV%|7iiLLr<{RXfM={?JlAV#~0YM8Mue*T_h1f4pZf)9OU$qsk_l83Il2P6v z>zt7Tx*p>Ymg9@)x5y{Db-NfB8XCRrSw=kbmbp(p@@8DX-4*S}36hfrGm91u94|V3bPWsrltpkqIzRes+lQrj zgQK0)rE_$Xc+$K=wZQXWEW%5q+6ot)IpBTg>@(Qvt(#^%?vSQs=?i0Dq zT*WX=@MkbrlWgIgML3z+j{FASK&LdHaq0$sj-91>6vyJH)lKNt3g3$De4Aa|=|HsI zunp6(#)y)UudyjQ!9E=Teq;)7e&p8$P8Ry;uSq;~{wBbNz0q#7wy~Oe4AZK+Uw^6b z`Wb7DteeW^!K-yakfGO|wR2{O72E@*-FtJ>#!D8abUHl`+xAX+n?^aZH7efH5)RFb zHB-yHYAfSsj!kd9BY)`CaMMJ9c?p2Yen69TBgU=mSf)L zpKypl8iUc&9$XA(9P2jS2Pb(LB;tVX*n%zs?ojVk23Sk`ELN870E2m|t2^GMHV~9z*m|rqH0yI*^kwe;7J;w6Zwn>15OD{oT%){%UA|27lz{ zh+7A@x_|Y{peQ^gY4d*bLK7@Iqy2(889 z5z+~X!H}R)@ccudA2Q=F*;~qHSb9sQs+e??u0|yE=xd(8D8?xD&RNkXZ53{$??{nM zfb%b`>ipb5SJ1RzI+SjWMUP$4+X!WjzDN|Weo+k!Up%kNS4bT>)8qXB&N+Aef3DLa zyNQfH4(w-eYEgE>sM+qct_-?k3f`yKaJ=r|-bVHsSB6PJ0*Cz90n)^4M%+V zjqeKC3SDSb7MW)>+WZ4BMJbxGy0!P4ezh0Rhs2JCm#?lt2_Bs~n~RScL$&Th_U%Vj zoIi4CfjWouqaQPJ@6GhSZ{8(chuSd+Nde8wkQ$@fg3yxFtnF8T4_*eUg_5i6?!or)q+(*YAkCC%hfxY$vRy8oX)q7`!RTe&Odn^q zTt-I`1YUkg+NfX1*G82fYQ~6Nbq&_^I(+?POtkrYJ-D^>@%}Hc{}2-sBO^u^7#;qJ zxEwp!PckA%RL!Vw*cH9&j z#S8&7AX=bCCQ_$k4F&J$2IyCoedC6$7^d9{t&KtCG#Neehe-eaj~J0lX8$=cVaMAg ztZ-`bA3b?*T%PL`3I9RJB9sKD-jKQ&mnc!2zWq={yxkr0Iqa^#QQh^8YtAX|ijrLr zz%HPgq2@KTSa+`gUNCy94#&cuEo)B-c9R7N-hLU6My;|?fa6ZFOjuU{((F)J-CkRB z6Q~X|9JApN;4we%8hAwAnT(TraW;nnlefx0n$$P|TvAyb(x`cB^p^s$00IqVA)Vur zRwfGU(Z&H-O#8(W@08E2e<+p_)R`t{@#%QC!_K@0hd)p$PA^lX=tL9>`zE<0LcFQj z?`J7$SLRH%-_Cd5oOwXZeL*C5gTLBI`GftSPV^%3f7H7(xXjujTqWgJ*LpBN)+HNU z;iFKc>xN(;7$<&CFVdkyJJ5UO;2;|igZVYxXuXD4I#KD7iI&zV<@#n#*C*!Fl#e$U zy`{RJyc!KQ_tq${ZXF~Y%1x9eAS4u!+w{zRA@V$WNbR&6@V7lmU^9z(D*Cs5k9tPUwD9x%$KvD4AX|>QjMH} zAA$6gef*wrVPYr`bd`{kJBIPG(UOCaHcXN4idIQu#a75|%ynN$_J{}=${Qdf1-3TM zJlOq46JOVb`3}TPZ)2(FF$t}|Kw)n?R6at#XxzwUAPBolm^oA`$1ZFxW&#Peut8}F zJx_}i`W20b>CXJV*=Hx(i|_@X_9syjCAq{AsPxaek4=gNAj?-bRldkXY=&OgxW-`px)+EZ5f~35&fSfMSW7n3QIp?;lwxeQt>?d_YVd2Fwnq*`oEtLDn z-ZK9vn`zKO+X65xl-$xa)@9Mqdx4K9mUo1{(0igy66fGQfE~_M@n^As5hh)BDT;JM zqYy`X*ens8a+%>l#?yi$RNrAmJ>Q)Pyl+8IrFSJyVKw`TIJnnHvk`H*>g@(^hD>&g z-!ra$uAQQ&kPs|}cqU-zvF~;58m`4dU^utLT<2{NwQ%{@AivB4sZ6*RaI6nm=adB3 z&)8_V)JxKXzRuTE)>JP2cyckr737Wl+F%xk2EJ7~+zDACUNw#WwJ0!FZ@R9YyFR;J ztaiQEdEg8ULT(&O$^LIO2P z3EBf66x$nUU~l>z{tX}E-}eTmK>i_^olJ%M`Ptv&y>jjmNs~C2HAozw5zWb7!DR_Z#zYlAV1h zVQyb27A^Cb4~t_dK#b4-(nW3@Cqkq`$n&=q6L9d966?^lY1&Pf*myO0^}tZTnD`2) zpw}&8&gfZ=M%#>4z!G)s>bkzeLGeGF?GE&QoivvbH<*E_=6`Ix0n&x=Yg>hNrnIEm zF?h>5cO^~1A0VXt#$puds`;dP6&XhZ6iXYmZ}2)woeWuxx4YnUfh6{auSMy4N$VdQ z4h2wm85&30f@=1*F1kBf3h0UEhwGbuTu9ZMCiYV9KwA#YVQBNYuI%Lp zsOma_Ag#GDq5)7$m6@K{*=h1ce$@b57-pb4!xq;+?)uIn4bnYn`tFw5nZCT2U$_uNYohCsX z?5w3t({~OG_oyT#(aZIQd zY~+z1ovVSgv1sKbY-B@|zJ|+Phue%2V>koUbvYeP@YzCpDswjQ1f_)VsZaD&)Ymjp zmy*wY3L;}l5qMY&c)KC1Gs4mB>Ku5EU-A~693p6Y2kjfG`hg<(-HTg2W#w?{BOe?U z>fx7G0pi>Si7$hSEr)wq{ZO1NC<0S`WFZS?ht|Q>w5hk!`p?umk_kD7^)!IG# zcOYpBSv1R}*UhAX{Tlb<2nhTgul)a8Rp z%Pg?nKth0|KkI_+JGh0B6<|A(lFD<@O01Em!VlO9fwBGVNh%{^lz zm=H@n!3Ec)0lz>AgA`IZ7r#NU(o>CgA&;>=f^BAnQR}+gqqf|@89@b7lqROYynNu0 z)M#jdOt|wXTE^VQs!NXFqB+}*1nhE%u`sRhuhOH0qu&RfZin2mVSIOYOC4cIsq2r( zBe0v%zO5ez;w@P`?j6xBpJZ~X$uHo!`3m$UqI4p6G-ClZ3DF9g6m1}IU_ohoTuaGj z8Z4uMA+;jcolet!T{1*FU(JpmX^)G?0M1Fk6{JQeL&aw%q(j67@3MFTxhC0Am>Udv z4m|#6eib-FXp!_MxkI{hqoS?_I^sE7@2Q@(WcTI$uGq}iA-icQh$pPOMxNP3vI-3ue>yV*}JHWoH7ujO$@!*H~i`-f1JPeDjsRx$Y7 zt_N%?g$er%t)j8k>EDr)PwsqEqqRiQe6#QGRt(mBFU2_b*r!e$k%6)eX9{@B%+_XI zL|!(k(6mBq{Gl|Oq{^arQnHKk!ElO==Ks`y8^Kb=!ig{TQ+D=V!U3!y^Uzw+&TvDa ztVP*OpgsMMmh@odYJ^PSU};Tg@CtUz&&LI2nWvhguF^X}_pl}DjLR!f}>#=RJ+ zNZrEtv6kVsgsBbQ_r8WjUZ+sw=7vmzWu}|~JE5sd!(`fuHe~b;6aZPnl@Apt z>Yf48<6T3qTU48j8bdUnG-O~U6WHMUrc#j&H7Q&3oEh(GZaS|l{ZwgnE+F(5O6KLc zbW9Keu@(d}41~(5K|rkfnK%q&DaH_h)LL#OgU?uIA$J?>u=`5bVD%y(2)$iE7fss` zB8cVfS5b-g3Pb3xNxv!)isPyPQr^~{v?GBuSnn4{qri4{)@#t01(Pn9o+n2i={x^u zk284bq`KDZhcIAAEQ(>FCB&WA6_pVBfe9=6t;Ju~K?j+%;eW{}7IXAkV8zY%Kqxr@ z|BIJp=Ev2WUL8{m6}vRXY?n*-cf}lea$Vc5R{zOs=uErf^k9n11Og6yWf2m!T|GUD ze->NZl@rTwv_Ce}leMnq^t*!Ui`19OohKgMXPq0XEHR5aSf=72d3Uq@102XRe!xS zh?SM8tjQGHE$E3WS_jwwg8&z|!@p?v{?{?5@$Vjpe!*#1z%cbQr7(61!C@R*tNh^( zzX8w{crMG`q7xSXR~=ZewAS|J1~BA$D4=maF}+K6O3jyK#^9eXRlAof7XiWR)qR*E zp6a!kT`d!XFu^2<8?WPRH?YyIiv}?Dg{W9GY8?hwZ4i9JP_{crw#ACz{J}Fp&oFeZZtw;M5;d+hP%1Q=IT@h24q8z0JQhcU zm?AqBWrmYH>6}B?y3Y4_x&rw+H9IGm4Ob8Juh@L`FMyxqAUHKi0p zO{6h`Q|E)>bq!lGgRs4d&t$>6%t@aLznhgYWz1LWBwpo>=LshnRyok!JZgjr?FtW9lj>X6DF@F1oF13$PH40?!ErnnX zP*CGLGHhh}@_BwOJi8Q{uBuk(%B;!<9Niw;R$%Z*PS+~-OM~$>sP`c-1NgFf2U;A? zbtEV$i+V;zCQ8Y%+DWv_0Y+cZ0ZKGath3|&*3KxwVxzz9&-~_lQbi2y<~8@Ec5`Kj z+^oZcjo#TaPe>0{fi&vzL5J-`ey@+Ie)#S|I@jgID3B=#?S$AaNH8mu-ANYew>g%Z zv(-|9tDxDTl2InK02;{s!~lHHOd#|r_2Ism2%fWLK~>|E$wS8AIOn-qD((vJ2RasE zX0bz{YE&MxmDgzO9!0HXp2c>0&r#Pc ztW|zxkW4}e%MWxx9>!`_Bu5pwqnEBb1pKh?U|IZIUllJV1;hyBj-}tAf-o;-Fp>gx zkUlYMQS4e-8&8OuN9;5dx_{k4oa^vt2!LuTv*+YN3f>=oPh2yB(Iy-0RNwa%vbRz- zbpObx_XzFtJJ-3i@fUrb4`%fyI5(=FI@`Xdn^_}4ErpGBL7L7R=3FZjcE4z4Pvl% z3`ZDe(^G0rBc}W7T zN2+OK+CNRv7jCUgwr9d=g^a@)l(m#xz!Brv+;pK{%~1UG>v_eza_!7NVh@MY)bNL0 z7u@N-6!?{L*sytxr{e^M35HH3aB~YCarDmO=CH+>2y;Mhp_i=!qA33CpS5Wh{6nwb zSITd}3X|A$eQO8e77Nsgt2I2T_`YL*RKjOS@S6md_wzC<#2K0i8f}%@N@wC5U0<5l zlQ*ldt3muIejYBQj;1< zADDm(3p?3Fys3(S;I_T~309_j(u^%;aVM6hN##i2_6#Z)wpV&8wqwTDGN_l5=_$e8qnawPHf$ zDVNQu{a~_X+6Z`^Vb|Fo%R7rMpwKXEsh(_DSZl;iY7+=Z84|asXs0O41Lta}PDm!Y zfh9Tp6rlpzHei%mG&%P|Fsg}-qnzuBBJY@Xj`0ep3Yt8;U}^Rvl#P08OFh*6yXj^@ zG&EotfiPVi9Fn?{a!GKasgwoBcBTtlGY%p{{%&_JLL^k|DS!5-jmwc=8 zz=(n3Hy!evwEfUE)lRJ+Pc=3OLR@PN8rYwQ_#-B^ZYk`j2 z@VfMe&ABdxw)}vAU6Pgx965jBZoBpISS3V-T-evnf(-V{jYXZedIT4uoMaO`t)2lQ z-1d+PUN8r)PE%tcElWstV6lY{m+6Pet&B7ZkV)*NRf6 zj<4dJh|~2ASiD#Z50G{nF8rl1gBPSlC21=O<@G352nCt zVA?UOzE2o`gMYUPm#i4Z?iv*_3ChofN=E!u)&Z+o<3;_Q&(9n}#=#`iz5)-ho}LKO zSbS%)VkYUhNzG4{lGk)&wH(@~W#CcPjd|~|n86s99di3wn%NJ#KvQN;? zRqCv)0Kn2dD__8ub|%#%eHFurhzJ>)hfHHM@reNMs-b3tD;Guez)DgCqh3on9PedT zlFYN>ClXiUXiwKWt=iM=Z;SyrjeyjrwV!HBupXYxaN>bh&f4t9@OLDrtx_<$ zmI`Pr(!6GmNqpARM&w1y(N6TNrsC{Th3Jt0om)R z{W$G`vz`DRZS@rY*8`M*5($dYcCS#Oi@&oe3G3KLe>5Q}(L;*RfY)-$l@tCb_TwXK z_XaUyj%$-{eF}(#q=WkKj=em1}UQ>cP6fS|)}m7ie~p=bnu37VH&4$qyeXLPD4(QO)p==IBpNeagFjy1?d#KfeSrL{9r}0GhXNEm_1d4 z=sYRxHVpqwH5rt!t71s#|refi28am<_FP2d`@1Qw4H>fx-*{rB(5+jZ%6 zi-(rjTURT5)eKRtl$E0Mj)Y$p2PM%jJ3Ws-W7K%mTivxl)y~sFo$8`#VI>Mvr0U%t z^0$0UU^9*Jz^ed-1aT?2DB1uZwNS1b2>A0W2G`l=ZvDC&dWW#%2PvsXF z(DgpVF(^Y_N5V>}ZY0_i@Jc0U4sL4+ixegk(wyMREVAw>jB~xRY#^nUihd{LjwsTx zVo$lEIxb?(UeivIyy$3-&NPphW&eih*(^)D90`Pe;sz@y=X{l`oa4}6aB8eLmGq3(g3K&A9;KqZA zow*)6J)RRfp|V3bs3fCu2uQA}YAOJF2&t*Pm-cyts@y{Y_GQXuk@>G{ zlA|aj097Y`ciH2wNd!rdOJpNp!Pk1MX3U$_2UQ__?r@XvXHfcpmnBp7pSMkrt=l@< zrhXs?{bpWD4bm5!bwN=91JJhR%n>xv(1}?XVvRqSMu~Hp+c?W<;-~p6QbxyJ3fQOZ zfc&KRkcA5^xYh)c{Hf$SEB3i|fdzNt6 zT@v>6Ay9f|^4# z)%i2s;US;b>m*fq7_q`H8@$p`BmktFm|8fX>U=58blogwVWhyU^>ZiX9Y|jw7KGup zgNde}w1x>Up8u9~OFE@j#Y0jk&5I{jvF~K%SDTB(u+re-wL#8Mkk*O0Zc#$E3-eac z+lR!)(pwEYQ<@?gB^WBW*40s?Qz8~S!ugydoV+?Z|LM}`f~Ml@*ng~fH0c`IS*Lx$6MWyfC~bo7>jkvrZ~g9thp=6Y6+-q0Dm{j-&~<{r-Yfh zo=Rp3bvlGCEA+a`ohlvjw+Y~Izrfu6U90Yk^ug5wQ@lXOh%%{>{9ct$w2!!4{vUq< zr&~oa*u@?$T_@KV8%kIfD`|vYyriOgS!r-Nei)|gQiJ1?U3wz(TaG%oEB_v#sP{}Z zc>-Tp3=a5+3C$UaPVI-91Z&bgG2;}(`2=5KOpRS|^u<#NrR_o2NeVon~;!-ixqrR|fM*DHKfDucVh>4*OHn zcg@z$%WW;=iWYk7a6G2%r0?uf=c!?Ddp`z~Q=z23P2qaX1caDg`EuyoCy{ zi^izSjnqfxs62_H&H^5agT)*^N!yd~%bz#0EIi|LWXU!8kI3b`%(D{W;tw%)^p6?Q ziUbwki&ZLPreLR_T0{lM=D0N9w9<9@?17uzVcfL$TyOl;^MN+Cq0N&!=APeiTUtH7 z98E>D2l}`=baAfvFl1On<|XByrud6i!k@T;pz96Pk45MwF?Cn?Y*VT?%$;h}b8ijR zx~qoRyt~38FFc)E#-Fijs|^J~QzGo-Mbl$68VN0^L+LMvfe?~@g&yi?*kG7#$zSg7 z0HN+$WKiNVnJU5~t2QV3x?gTk4usX+jdqscnC!KlljJ!dP{^zOo$VB%iW6F{_!aU; zGyYj1^aV;o+EkJps?VW5*b7YOUGdx=9A>$CF3@uiE8X2ef;k=>ClrHq<~zHynQC&o zhP{fm8%u?`VrI>v6S4;J5Uk>1F*wC}BI6jMz&~fJ&{f(aDHGikYjR)WE>Dg`uUYyc z0VH0!yq4<$*$6~)zH(va2XDDI#5m4j7GKf?GjQC9s5yq9)*NDdp<&XmY48wL-j1Pn!;U4=HogR z8ab|Xmpl#oGKtlr%&!c?2@Q7m(h_+LDnct6{_wi(R1?UZdbx z2sN}>4LOfH?TvF|FaW&3-M^bpOfMc`pPmzKswhIIV)F7_uYmPk$=R~f($v}Gp%p{q zT^)b00o;DQP)#@%eUKI5NcFD{mebo$3ms%xHvpp|HVnpa19~R~J=fsf{c<2o;C7xe zD2qQ2k8Gs%HXm||cF(lrs?@eH z-=k(Cu{ou!=?&^A@eKZ@>X}j`i1uZ7*b#Kz9K3wrV5@~)IL6iVcYVGGJ#tXj5dMZB ze33@#qQKePgMpAKtZ`Ri2cA%bWzsr3lz0WG^qhLN(^0M+>c|AKYXjfqw_fjb>x}g9 zC0ww0V-6;IGq9qqd!~JxZ{i8VPdOC&x7Gs~@@2_}u}UPN$y2(r{?l{%OH3z27^7BO z&H2#3Kxef35*T1z)Vi=oQN>|`QUz%m*4iD3aIuk++E+^l3x1dnHc0evD$2o_X?*O% zuA_|Y3t+&@hY{@5sNzVPklJTQk^Muxr^SoBT1vG5El5UsB$m3l8R9nA1LAp#iyT9@5;s<|6~c3*Yw=pND6owSC9T_IE;5mVTHIj&$@7sRJuHrMnMqIlA1@BT z4UUE;$dGUM*!^vw5EK|lFq9j$wClwwt>eRXhV+7FPmilfPgWDcy#75=lX%RSSB2Qu zu@MXZA{Q|wyRKUs^qfNF&;#2c^Jz_^?klo%H_#wLg%%YyyOqx}%>|#ToRU5nn~Qxh z5WvfGs8{bbRXoq@-Nm^s%LI%Mo3N#zIB<~-!16S)75Zz*8j4hcQZk00y3GdUHNQRA56Ki)M8y7tL_Ra>YdbeKA z0kgyZWKB6Y2C2-?R>4%h1w}ke5>IQ(fsYgJHv|_}cv&_Xx`VD;225H?M`Mv&K_9oy;-sP;rhJFEqJ`Vjw(I}mX>qtKU4Kk? z98XoeVc#Yo2z+6Iv!Skj_$mC5$5575w-?`AyY{;*>`07JVMEWq*~YR;%iB-6chlg7 z`3`3`KY#(=vg4}@J?fY4#+6qWbjZ|`Hl%NZ=5O%Wp?Oku(iTd)54`xwiM?(y$p)`= z_bExcWw$>qLV#Yf9MkZ;6B81BNfcVlO$wcK;J}%6cN|LtqL=@Sjnz@C*#f3=yUShd z_Ws363~U;*<>d1+DQ!@Cf5FN8x56uj%k$YEoXFg|g7ig-5^jd9 z(d;k5vbr9AWL0e^GQ0ajGEC`dhhuM@v4?`v2buUE4!t`NfVFIYu||?iEU^zyOxO}= zswl8M*P~SOG3cEjY8hRy7k@vEn)!Cv>Ut*_k=}V70;^#8G_c*=hU7}XpM+YxDkcmyrDW;He60EP{AxJtiR{U$hn$G6Yf8RQ` zWij!H^T*NMP5Mv2&xfq=y0X(*P$+3EMLgjol)z#Bjsz3VCUNzw|1U5xmGzu zR%>}Esu7m=6!v9U?xkzFNx@(Yq$0sdxZ0ynZ~qp`H6PwbI9O$fV9ynd_N4V*79tH?|&%uAV{x$fBR+-xrl>V`!$e8TlXN~1G>2kdU0(m?<(tc*tABp zv}sD4I#nAcml2)l_;AkPf~%t$fP0b4b@#6hnRpoU6l3xUP3YaPuoAr5&Kk^0(gIJt z>m8@vM1nsynS-~AV@x?s>+0#)P1GE9Bhp*x2#mWKtT9ydGMo+#> zL%qS@h$$}KvrpxC!+!KuO3-N%xQxAcp!?+J@gixaO7~jz0V;o-cDSXX5gYEqaN}B2 z3;|3~RP|Ocz#Iog3D{Dkf9_VP!R^Y^FQUn6=Df!&clogo>4^gn0=6{4AaF20&EwJ6 zTc+PDn0Npn@rZjF`_Kavj}U=lE5L|+p@H;2V25F_jjQZKJ+qOBWI@s)i#wX? zKB^!5K5FVVC%Ea=v6;o&)sso=Y1q=<;mdXB=9Gu`$X#2Iysy~$jouz-0A#(~FlqHp z(P3?L^cg-eWpY(tG4eJKY;?VyOV*Snb$IyEUK;Vo-*+$W1D+%`_7)qlqi2yIJqbF# zxp}huU-^d$FCo!~jNeEOXM#OK-b}JfuR{zO`KB&?t5?>aHL^UU9DdZW%7{4{jf)3o zpB2z{sE|Kaog&*QC8G8p_r=vPEH=yHNpV;;HB(N^7U{eREiGr$q!*cxGY6c#;=V5E zq;UvZ|GGY837)e9lFSn{VoEMlA%$he2G{DXX>N26%>u%+WVQ=#82d@kxRq*bt+xlo zZh38D%H%eIwi}znFj5MyJ01~nHG0p&>ii)Le0c6_uhU4~i!ra%7zPYE=@esuMqzgl zk4QqvoQ6|)>B2&d33y^MEBYr>FRzHF-?H{rk(SFa=xiK6pVav-O zo-HBd?PADov=f%>xz2@3u_-^1&* zaj;tR6l^Odwanc)M4FbZ(F>?>ifLBDN}V9V%-H^us^d5r7;1B}`n91NS}gx}AE$G5 zXJ_l5{r~QYPM(;X@qz*Y0e+ULiTi>2{9h~fqOr8GQ7FE%;-{eH{eyP(KVnEpK zbc_O8g@sX3yId;oHCU&-HS{B7c*x*D>^HDoVl--RQ8JH^=W1^A32c=4qY74*8gdf7qB{M0 zqB;Oks~b|)nyYn3=hEx_28)WZ$b(8H`VfC%F%x?QYyKf+RMeAlfo$5kb+r?Y6ch3( z%2L6uhW;3kKbOS8TJ>+`ROGW>YP`-I=@sn0wiIwEs2ua_}&A|pE z8W)0shdZ@)BM2v(83Zuc;1NGoEb?u;8rYzC0+9Jn#W~!7-C^g^sGJA!6LO-^vuUO! z&NE$MZ|*>ZQQspQ3fYv;I2lxN;KoYw28UnHoP_2NGknD!JXke(1qdhMB71??Fv$RlIRoS@FrW-^4{IiXHlwr0S-~Ow$gmL2D!EY?q?qBm2!elSb_O=6}@NbStdD@ z=ce~Z|9;m5&jVhu8l*EdEB=A~cT#AIgU|6_AeoC>AsPHYo=$(hU&-+eaa0kqPK#$c z_LF(NJN3y9mfhdi2-vV=RG?3+B73@5OqbWtG|(`kv(;!KVw$vCaI5|yA;!@(cxjoJ zvM)pDD1TjXp+Q1Is>MG)2~XGfLHj`ZTntDBJNXSh*Qw{Y`?U-!JwmO_+n-`5f1IoA z6=c!S!T9QznCffEa_m)RS%XQP%2Khb_dAx)-N_yh{4ex&H7WV{pn-q}Nr8YU{vYTW z|EFhQ`N!GG(#XZx(%$X|fJd6Pe>NnLzpnM?F;;VK#T;*LDv|l>XKv zOG$vr5Rblk@{>FRrR5fq5;5rrDvP&e3&!d78+cT5)UNztepsz`L*b6 z-<71RyV3PSFl0m}`s1Au$PcxJX-0D+!K&fBL+bWep{6l_7JZP!4&*3p=yb4Y;f&N$ z@R(PefmMxVL#l{X8R+#uh}FAg*k+3mCaKS%$Oh^LV&t6AUb&Nluwpe8hSf2NI-3R= zoEdr)DJh(V*9yq-=01hvKn3^(WRAv#EW%)0HyBX^RT!84*j%#F1!8fv$`?44MD7|w z$+q6)LJ+OUgQz25@UlMW;)c1^h;k}Q<7_v-JJX=LN^uNe5Xt=!z;R#b-`DO zWIbeJR#UBR#X9fA%6|cEYrL>QM|iA!ss{gv@2l0)w+x4q1=hi~9)AvIDeGwrm0}$B zE z++sJ@vzqPoLP^S%=I2Xus#<(_2E>5w)^2xrhM~1g9@{p(^mW;@dewNgNyq%C=Q`_O zJZ7qYZfb>Hf8>0)w&{_d!!)om;jqk((V!p#b3q$Os#|D#Qggq9ZdKI_&6YHLs`gFC z#{Z0tLM5CTF%WnL2r!=vC$vvTV%>n4UhN=D+$2js7Qzs1e((2# z>(bhf5#{6PAqA6l!X=x{cVVxn%~UQ=NIrR#NG;tMnQVrg*IZDLryLX&8Dh$m)0)NR zl2G~@&pN)Mo_|(ti^E=@YxJ}(pDumdw(zVz$wd@mao)AsxnzA;q{UiHQlxsf+v_dc z)m)ghty=0mdriAeo-f`0$jg3_Z7qEjG|BRq<(B7=5iIj#XYy;9KiNFt=7Zg*21qZaDV`O%k21; zx-hGf8R%DxYg(}?Ri@{3o0hvTc1#0u2{Js?;l>+Dt>R75l5ayBe7^|I*B2{(k6C-| zX0+o&Pahq$W!&Nw$Hq?vFqH-=5AVPxC@@L_0iXcK^_a_%K-)?* zx5J^?>wzVQH^jN-YxI7iAWe|K%vrxADcK|mzB%XLq)5;f)i<-CGvi8FMs5mFsW<+b ze-vf#F`Mgr=}8F|AfyZLt>vJ=Y|Dsh|fV{xpEq3FKzUuDtqYVxhCf70ba=Gq|P(T^%5plDl?|p2cb- zf5k2}tPm9jcV-JY9ZEb0bOhfE!!ax<^ku^wzA+vA>W%Brza36WUqRWw74k|MYu;s} zues??8Eh@1!%SWHO(*|qnbd?iI^cw%Nc6oA`G>&jGXbBXhCYl2)AJ*BMz3UHn`!!& z``s>|Ie~wYCnYUJ8X3CB`>tmm`?7ueP1H`gw6C8{ z9M}}NypO{(@WFomjw}qArh|u z)DM{|m8(z~3(PU8kNiK%-Z410s9PG1ZQC|?Y}>YN@7T8OWXHB`+qUiG=B>K-e05IM z`Ks=(_55A+%r!^%7(Kc*UcMjdigajf=WRvWOqOQq$$pJBlI#QVgOF=6SeXQZfI8Uq z;b+>2h+_A1l&X}!Wi8Pnn$Dvr^Z)eq@@w_On-EqHq&ijfC1izq$hC!vdr-wpZ2qCf zHB%sqn5RBrgT9u`ek9&l$U?E$5Xns%eW>_%0Ig8#Ww~p(=Lk`M@}P2N(swR|_My15ikzJ@Zq1Es^HOOv8Dk-Mm4+p%?Z&dzq@?a87a zs{`^!~UeeF! zI;2u(D*h?(pQtEnub3Mk8WZtE>ttc5Q0h?>>1hxcjpgL4iwUUy9}^r9Y+AW@t0N^Q z9dhH=EZ+{!8JQRK6Y=ukpxf|x+Icyv-E(qgO|6v=Yp!^ybNFn0(Q~iUK#A-R^IM2A zr5VVN_`fF~{r*MYvv0hL@KisZMctL$*^8;kKR{)Lsp||w zo(pGG!5O&vy{H;q2%d9$FBB_TLJx~c7!#xDjVbk5S{?8c!VqGar|Q`(`! z!Y;Ouh&i7~<+uaP5~et`C|7GXFTW`*(-k1#t-1b7p(D0UX8h=6MqqbL7rLrm zoG!6ly1nyL`=QMH_@g)YAanlp<)*s9_eR$A0hde>(P1kWo{{QiSD(8~`3?Br5m>ke zNth!D0Kfzs008Cx1%Wx4IGZ`zx!C^~30hLIu{sb%_{Ct12r*9VVofzD8OJ~_I9z7u ztHbm-`6zWMqR);OIt?9?zbt6#eCR$>dEbW;)qk{sd4~64GP1h59N+zv4|aqB>-qh_ z10PQ`aT{O$z;mfJUY+Kh?G6B^V&nXlj^NE#y2-p*Khz1!CY1MH>+Prnf#m*?u?c}3dnq%Fv z7c?6`46Qoo!k}%^xdYOuSp+3_!SIaw^kM2gU?{vhfMNlCFxP3*KgEi`V#Ybh z{{BR-%3ECgvM1NqYKtK>w`&(DEk|Lrd75nLE}vx?T>+&bOci1idRWXpUok#?^C zfePhSvLyZ?+y}Yc%zf%s6n-&a$D-54`RKD}yq-B>NSn-qUbwbqyrdP|!jw+^HN4t> z0XPl|9+aJ=ihn^818Gw!G7d{|FsNVD`_~x)5rOdM618j+(D9r?pM|L7umB5+bj6|@ zMG@*RI5$w4HS{)1>304#R|Q>u(vywC0=O=;&siLD;tpuCzU&?_9^xZEMX}axUX)Aq zj824&@3r$fTXyaSuHR7>jSKwaNbHR^m0GlD(GnVW65|t-%2f2Uas_JYMO!i1_)H+| z0@ziIta$cjjo2{9x`m}R3zonBFv>D{)xM7FBDZ5vdU1R)kjU;w7TL~ACYZ=#K}oU| z-+qARi%%uVan3d4UG*S`pRGT1*YmS@C)=N3V1Ebkh#!BNU!x)H+zH zx~_-*1t|mW^|!enO%;Yc&|uPOZZv_J119zqy=4dJnl>jbDQO}iRHLe*OVIW{^*2k2 zXB=DG9KleN&{7#n=AJDro*%)iYeJ1u-V5LMpIdJITyGgm^n3kRJ-I`VviZwa_mB># zHJSK)X)Fwpud4wO#ecu|%8TNl6M;Vu3M!8Ud`&!mTFRl+)Lz{;%r4?O|H`aPtxjDo1 z2MJLYR8cf7Da9}CkYhVJ8R2_$c=g~e9&=~Nnht$*aO8OnlpW2<&0a91J=L5@R@M~` zWJe%TYLECyQaGHeN{AIKZM|E`krfg39}UVK%J2%~G}D4LB4viGliODib|7LIA~X?G z7V@F0UwlFGFPtJ%n}1=#tU%FoL9%)PjW{D)e%@T^pAhDs=r{MW7+*G1BH+gwD}HwFI}Oo*EHyhucS>Vq=UGPIPCIv^mv_-$sEG1+3~4^Jn=0(m{<2 zg_4NS8#h3yNDfDrqvGF5fRPx|h|FmezRKg)Ge*}e|7@N`?OrI@=|H$&6beF_yz?Rv z`iCdtP^tCED9eo2b$(!TBGa;A;pThc9BzBU&heDL_qZUJF!Q#C$u#tZGDOWXW%+@+ zofC|8bqJAMI6iTJjZ06+IwP-ZW@hGdSWEzWJFji*Mea8mqdZGunR3^e6|6$7HxA@i#)jffp8ipwE!|%Ub1= zdT!EPqfSYEzO~NzpIRi%%6Le#Cjt~=(k{(IyED+EoCafew!Gd$cRdh-HlJ!fOwhet z*Cl)QJV8&&w`kr?;J8v?a|c*m#{?0wZDm10-3?1OAQNpCi{76U^k}=CT(0crmy@38 z>x>$Dgndw*Ret#BgG=%#sobN~K!^i?9a zk4Tp@?#Qc>5Zz9<{HRkmk$13he-%si_CT-*TRc!`If^?>A7B^iowM)sP=l!(c>`N;M5~~b89=TvXQAFWI$bg(&5__H*GFNVx#Aj3 zXBJdY2%V3jq_?`ct+3zT$j|L#f zS7=fBPSsrMu7=Y~I^m<&T1yn!oADtTL6pnx@hWfV@3Uw zQkQ**Sg0DTRn4|67*Ss5*Vx=-yn;KabHl&YT-h9~Zi{#hR6)o&C1zRc?lCG9FX#ZQ z3Z+!^FLzfSeVyi><^J-Gb9nP`|9~*rlUkWrRVJ~;I+~2(j2<87U*EAM76|I5^Yb;k zd1|2OIgH?y?TxKm|20K&9;QFIBT9;G`t*0HkgqwZm?ZE)LrX!tth3X)3wo9ZJu zMYhsGO6P?r(LwbaVChVhe`E9J){fBo_jYs2@f5;J$x$oKGe)WPJNlp4+03|1Sf4a~Z84Fdd7?uew&ySHi|h}4S$ka$ zM4Bhikup1}oe7L=`!Jy?Y}bWj^o;k1K6mX7n{+)$2J5YHzdFDSY#@iL$E_W?IQyk0 zt%I*GdWDPXoa9UoYV8>A$x%!C`Th8nNpBy6&@{+en;Kzar12#A2De!~r^}C5Qjm%$ zq-LTHs9h5%a3C;D^?*QHqgDL;$Bi5`itQ$GJRhS89;0tomm9cC*yVoT-Dxi*^xCr# z?3_1KvY=0335Jaa#7bSdYOEnSs--170`uQKsMf-zIya*Hk0PO$9T$+!u)+?-`U31g0H-n%zYtbT_R92shB7lg&{LI*?SU9#Q>#y$@9_3h1qKl~i@<_)> zhnrjM_1xSZypAj1%e(VJ$N6)pPJ3rt$9tmgEsrJ6ocXY`*`e~W;9Rn7T2Zm|4{f@?j}sF4hMhown{hx4Fye7LL5OI0Gwvj!Q5kCadJ5IPFT?K+x5iD!)!&_md6TW*u zQEJgFtdf{0IHkH;M%*OuCCuglK7erk3?jzP@~d;V?o(*<0-{_1zl*6&s|$(r3a;g{y_nd;?z$>bNz&!K)k*?nN9M=KKTa`2_c!VTLFH+oS=A|% zsU4fF?Qz+Mh4F>R)gDHD!y+7XSVTH$htdmHAq?%%cvxX}=E~2V?4B}^*oQau`{?((S#!I2M;a;wlqA&C$i>kr2%8PhTm4#|Jh@&+k6o4KAUyrR5PM~T!40LK7LKMnsMMj$AlLv*GxRGJ zmwTns#3IqxtTr)v{22 zSuwec%577BY&MUNt0oNk1v!=yUnN834Lv@9I;i@Q;R*WV7*?tL>cZ)>u9ti3(b4xj zX0=cc+7;h$GcbO0wq)YrDR7k>XrPwnbyM;L5fG{$stmf{cXKU&W3-sP>JQ1JpvzD# ze5+DfF5P3NPxt!C$oB0^VcRCC`bsDtb|y!-)Xo2a{@q^o03+@9V z5o!E-*XqOFc6a*PnJXVJhSh5`1iokjSr^qF2zF(Q@{u~}5HU^_9Nz+VU* zFV>VhEv3P1xncoRAV$eYKQ(FX- z@f0ANO)v>LVH#Emx-J$EkVH(2+szo~^KLsI_l~O}j6TiZ{+4&z$!bvDx>GR8+IHsp z9|LH*WVE<$xTpc{!Vu&rSOq15%%4EO0Al~56;Z{+IpBV z^EolnjvYz~;cZmZjdtqn$lRh8W5C4y4&0FoG8H~pr4JMm3_6tvhM3j!?)5pr)HEv< zM?~T8{DRK54jYrP8K3L>36w1%TpDrcifu+`*myNY{^k6n&x1zO64x3z{I;%BzEkp; zUl;Q9LUgdW0x7e@;O=z^J27lGr4ux%Z(w0A+wiwGqY{EYs@wrVdrBHiPs*4^z){f; zHs?m8t9?)Q?5|9nm@xh>{W&vm1#eq?bjmFYdlHxzdsr(5h1S0BrEU*2E*7`IU6}yD z+pM}YG;AxaB9>O1>1@`r!H!~F$T2x@I&}>rxqd4mzq;}Yp~VIKpG#~XlDK z_kNc{pRRLSmt}WHz}3HUlhf1x!%@6TFoV(jS0%#t+jAiL-_D>t2Mfpl={6|K{6{9z z^`Qo{9|_F9-r52B2NtTbV6_aXAf7`V0Gm zDf`y-n-Kg!>0K1rfjPTW$Rk6#*o-q_^Tye{o)jnJ>RIv<;T0CA$-M zp^OUiw+||Fj+NeCd3K?$vrJ$|M~{HRAMQMP$q4Vt;xw(_rLkpYB#Wb{)g;->oUU&m z=((hH{6+*vD`5e)AQ)T@naJ_0M$3y(7Da0q=43TWwyeaZHcuhL7v-}A#gfrm>D3TC zL3Tr`4B!sa5wsii!Gs&BQAf-Dtb?3N(G`Io%9dFoyU8{SO7)^2@ z@|#tQ;8~M|f_c48E#^k}iKF8B)7ccnBwWc&%XPrf;tp>JFYNoHhaW+Sk9Z>ipcjdwd~DHji5&bo zCq5^vf7cfa#^yH6cPB1F6_Pp~F4i>O&jHezD`(prDCk*C`T_r|fe`Q)HCA=O$?IJ< z@nFtB8du@Sfev}C3kF+IDL278V5V}O@E2)pIcUm1-%Jx*+o!Nawg;uf&ina}+yQKR zwhEqd7*>(QPy5$39WG2dawo9^5~T|gqz%oCY_;1Se=4D^p(jOUFPeJiHEKLlCOVrw zjHD`ax4FuBmk|39?Y$#{3sv-^FS~Qf+Flq}kkP1JyK#Ih5}s$`S=EHl`C?|jjyZ<6 zrf|H?Ww^$$zhf#nF!+OxIoPz@c8zjwD3>SQ?#Ks!{KMjJ+ekHch4~D3n4XtE(Es;ZAq-ME*85v4ynoePIRDFc zYGUhRlsZrw0E*#t2i6>YofyNy6gxp6gw7X@s|L5qB2{MScVGPKW~@(m2#IVwf;C;i=ev{L|e;pXCb&6e8< zoW|5(_x;Ir#FnpJsb#&UNvk4yApHca>3)hz0E6Ufq%L{grCqz{c>%AxC!`48ew(-8 z-&Ey7;oS!0$rb-xk+MM|#wkX+Z1-pDSW$pD1~oB?}07$h{dF2o=QCJwtO zNIAB)L3*M_Uwy5QPZ*YnEe)^p-8Gsl)*zbSX>io7S~!ykpRZ`VUDEh>yb?>uQtz%S z+HKN0x~e3^lO$;U$>=GmS}_>uT^9STsO_YWJM1I(?b_-?F4ncF2HPo1)N0@EaNT$p ztZ5{R6BD&@YXECTkY8d_eY2`a%sUh6JHiTJo>m?ubXf-q0Z?|err*9h`qEgIqm5A6 z{4D3Zn%)(NZD!?jti(}n~{znAB@3KNaTX+Bf zg8%L0I~n~~eX3HmvD^Qh;7!+HkSc;Aod}joP8G*XhP6H5+SP~4TBvA5@`R{N(QWA@ zIQDcm`1G--b!;|$15HkIb3IHl2h!7L;qLbK{9tyl(IAAozTsqrNY6LkXzvw-S; zTG}lXeF}2W9g~MDe04M{vb>nqst1rxdxt*e)}ie7XXD4jVn90fY)C2im-|oRO_8yw zg@zOgu~B-GnbZ~7vn?3D2A!ofoEQr40U}sbAFFw}WCc};I8$7n1c+GT7PEuRFKha0OYR?w#_sr8 zY71(ZP8`(wUe$h*uBAYVi8H=L43KlRr=4D1}DLsgIFmGa%et7Ld+T}bQ zVH~~JZ%mjOJT!(h{@z0G3;4p&0qh&ng0tk;MEt91rXx^EISR6=TsU&?;8W-grJ?;v zbk|Vfl+Ph;i7i5}`SAe2F|h9*EdDSs{xSTw7g{SEzn{9I^_Vr$8^42K9JYk?usMdD zi|#vdlbTY11&q~m(Bd%!2PG6n^r-8P43BiNy2+EGxX3B&El3cHj=O4BqtH3m8C|~e z*HywPaVa$4%UF1LkD{dj{~mD;!XrhpqRXDFrI8LfaKx3)(?=KESMFbLzfeD#6FmFU zml|!N)GF12L$ECKsU*<`6-S9BrI$+x*fET}bhF|4crby=MnZ2J^~Pf$`0X_beL1o> z3B&+HF(*a$=ydg~RVXoT(qPxVfK&rzbG)=KszR3{HWTNMuNwmfNb&|xH)$BKhKlW_ zCHudY9}G3twC3(mJ+a??H4Bza1xXgL)iIXEEml3|C+dEYk&&0o*cBOp*%&hO?X?%^ z&W*#cx&RwUZOXc23X0^SA?IKypoJb8Gc5Pw6@cl-XWLLJ)gV8UDU?9R*y;UG8OlId zKidkeT~Zn{X24>e{i84uBNS0Onk2$V*Ly@KaX!z#tHS+p3t(^q&BH8b^Y;i93}aZ% zT**L@5m$w7joBOYkmmugm+atKMnQ!)*-)XM(6qse+gh&&GXt11imqNL5PY2oG0a{! zbKCXwFYxuJTMI~ z+lVVPUbMM>?^GN6^vscg#0yLocl`euB;w!;M`{$tNB+- zCh$?J$c&=M5k0B0Ofd6F08ejPBZ&MOJ2rLoZy`yB=f3%wXt%YS?_s9ckqL!ZG>VOr zZMrv8>y+(pDvvMb?FH>)Mk2?igZ}R8)o}VW+TI`!wnyb6&G%s9_g+tbQVYas#PMZ! z+?x3_Ll=D45c)pWGXIb_FSm-W!JXwQ@0APi{@nOK0(j(i&T_019=`YgK}`Fg^b1ga zfd<^KbmD&n8%{<}HosuwD&0nDUmRg%=Yg_)8Ql`q9wBGt*Sxo&{$3e!Ipt#*t6x|V z8_5!BbHDn!LywIFIzA>~^jrs0^VIpr)ATRiyV~Aqm~WrQL;X^)YsK6pmJGYy3)V{9 zu4fYGuf3$8+}cYsHIBJEF=R75@(ullgYdG_i@u@OAJn#HZLZq6he)ru7`9|6ZfGDf zuy;3;-AqHOIt!-swq{D84JYqUH5s0!S8!mV9i<6ZB?-h)M3|GvuuL6Dk-8G6OG}(y zi361TCQVeK+G~w}TyUp{7lCx%Wq60?9El+(VB>hxKyulyrMY#WdBltGryJ8<_2hAY zI0gXz;9njL&ztt&X;>q8RQbQUX(~5$Dl+S;1ESWdr`_X1AxMvvRT3cZK1xSIXIslXGY0_{pHh7o6BYKxY3I@bqw9n!w(x+D?xYm(r4`+i9@oO=17KsdJFT~ zM4Oe96W1WdMhy$lwm|v({6nYErZ?9*jIT_@a`R9B5mCw(PZLhaZE zbzX%?2hmr`g0?=s+HmiEXverBp;~j#rl{h+9qY`pvs$zrs|L9Uxl=Yy_O_kyETq#` zyq&OyS;Fj|Gtrr>20Pw%@Itf*`;JqBbL@iTjHISP-0Y4s(m5rWQzuK*sFpqIqLjr7 z=Jr^6BqO7JdqE+lM(~~E}g-|3#rW3iJdA3Ngu{WDjIel`${JW({zzSJT+q#|-of(8gTwktZo zFpJ4YPj@@4$53zB6@s-(?D_G0-&hJfi{z(J@V4A$fY&+8sBh9K$%^dUIQ31G!5;P&yP>Z3rG zu%(;&1XqWxhyDyFR0zH5iGMn_?J}ed)<)n;e#2kLNKkz7sX?F@ta6d6&^ z9B(`6;Yswhz7r$f6H(?KRJ8J*$>&8=xuyz_ABoMVcd}NqPXzv-QZ5_j{7KX)j|j;1UvUH*_;2&W1f@`9eJ+P9wjluVR}byVEaiShDmY z|9JAAW2zbQppLo(cf}N1jaq8SH9Es?=NmF2@fNJ9AdC#o%Df+TWyUMVbY6Adk}MQ@h^ly_}JTxXn(%-`OoFvLMO zL>o(1T7I+^b48b;8yx~YbkH@*DYA=Q81yCA&Wtv8NVY>5Frtl{+Bmz;@42cerT>=be@?T%tMqAIXoS)Nzo{P7E>XW%Gb3t0H z7BZh2o~srzmK@n(;+hSDd-ffP%Rz2ZN4h(pBr8zTlT9YXbe1Qvq!of*b6M)=NrmG$ zXlE2gocO8dQcDcVHtGA|G2K~gBv+xcJzG>8O%}Rjn-TF$+@_ zSlyh5HK&5K|Dwr&oX}`PjwQChbp3XQOJG~D3G!7<*}{maZCg@W>Mk6(WL=rDCyDH_ zM(SlT-Au2H$@gZwuB7=B-O9KC(*@ktefX|%tQ#3Ro52F9n?B5tB|n<{T$KWSn@9=n z8BBEmz_tl6qBysFiWMP=O{LqjN)&mr2}=+{5HxKC1PB-=0`h)E;iJo2MuyT&=YT5N zNW#Qy|E}s*M-QP8wmOi3R3htAtl?Rq)1=<8BOb3iZAYe&n_{e`s8Xg_z?y~(e{0We zq2lFa54Pmo*p4}W?V8Oslhq`DJuAKE^5(GSJoIa~7oU$q43VKDX2X%j!;AF*Nr8Kv zoO9nBxBm*`3N1Xroqs;IWdD>pj`OUjwyM)2;3QA0BL0q7>$JvZp6M8Nn?!rCD%H*> zNlt<{4ovu*|6QU1bW(?`<5i#_T1N$8cI%k#lV7u{ey=%oLMJs$u&5gorc8v#;Zx+I zV|e-08;!22UKdMHkF{l`{g{0fAsk&6$x!OC%2(L&tAr9eg)`4XGHSJKfh%W*cJKh= z3P#MQ{wz;@+Fs`GSCK6CLn<=!!tWv)xv+gBx?n(l`qnepb8-O2<9ag)HS0F=q$k+V zu$&?F2|mtxQs-_@omEp|bnfk%mO?pFdW?*7bmjcyynTA=enNicSCcd1i=#2^?0EXc zf*T9-BO6mXu!WD~<@Kiq^h$$NKt!lSrZf|B;y7ytn0EdQ5QiHnhyv?xC@dSS2YeWwJv+6Uku0_^18U4oX=*;0~;`@BRo}0aMEBVXi z?d*2vV`3um^J{OQwBjo>GIOA=vu*RH+IBn>$LZzpVzHs(Yl_$GyY|Dy&EvI|D`lX= z@c}l2<9qD-_^;}=R4I) zX0?uxHDxdqq>*3q}$>fK!eB$fkVCarn(bH}7YW!($YszkH z_2uYcPszi{K_#Z6<>MmS3u?baTf6IPVlVB14`=&&$NPAxw4$XAx3zl>mrvU_c`sH@ zH)W*b;;`|vwPPLEiEW0rt9!F&Y%KQ0&Q)!t!_h&9_x}3*3qRp62=Po0gCZVoLg)Nf z_vQ0jc9ZWGZq0*Cc*oO)r5;62%Hoq7I@@jT`se82#@OSDWBNL~PqxQPCef==soli4 zWc`iO^P3pbWb}86sfzB+c6mco#WeYR?WAU(d_o(9F)s zYLc^$%$H5lGd^z#WH)VF#lg_h)QK@SOlR?~CswR}4&9yj``* zZAe^vB)TS!7G)l9A>u7%+Fsa;fm-4OmNX^I6!G|7LwE4Dn8=T6$I9?+( z!MUBYFDmNt&anMl>Uq2#hW-%$+vJq!pP`pmy*}T%yUo|`6pd&6OnUy(V><#4N$U2< z{&RnPue3j4a!rr8s|3ZdMGX47cR(I>W%_dbwX}DCJ7E^KtS;5&bh0yU?{@aaRq}Rm zgZJiHe)nzbrHF(Wi&mz%%}TQO*gZBO*am&XM^6uE|zzs$0oU;{;k+u;nw}x znthXcXUl)hy*35=?QyLF7m%BUalo=U)?+6{pYlEA#_KB$(fK*NnV1+#kNb+x^%1`*uf*O0x+C|6EO z>%v0Eaz?D1+NiSB1n=D<9ILaU)C4mHhwX6XG$wLEarx+xgp%enJAyms4y!H#Q9+bxqznQ zo16}MD<9c;hL+>r`dYC;c?~CvSv!ap!qH)bSUBd3CUCut%E)8(-~&!1_j7= z?gvFy3BpBvq%8E;)QjOb3vo<3WSab76DU=K$sk@bv~+c2$@honX$SeVJcfZMm=&jK z9j8qROcPtv$4fnVzkzyJ;pB;?3_&e$b$qgCh(64DDypaWjI{Wf!xRlD(8ckSVj@p8 z9fYNR$wi@L#wMv z^}Ke&RTtv4dEAy%SSkGpi$RIn263SWj=zfLX`|eNs131z{)L^zaJAjy447wWyP8KK z9^U#a!12dH*fjPHkGp|<@gioTp}}xxaD64AE+fv`cE&rn-NtlcD~r0{!L$0dQ`w7z zq$+A&9>R(jyTn%vxx~JI@M_z<(>-XoRU4PyDumXrip|&e9bw9dKtg8kl2A+atP%ii zpehbKlikwLJQsse#Ia}5K5LdN2qbz1lUa6a+qreS-$8M(THMO2$^!XYXER!r2ogWg zB60S?2Rl!j%{?I80RjpnQIBt%P;WKF&@eHX1o3kbKTyO?t{J%KQZrS?BLcYQv;P3r zQD7`If)M1ZAh;-^rgj z|BkSwGQHq^+^DxkmBA@{PXManhD>@8{t}T}yHBV{SMAnLW}ZA;89;7@J$*#9v=5em z0On6QKGrd4`Vf3A3jcb6;_dgWby&)tqR-qkx^I2GdALx`DnAh^8IX!eYdg;4)+&_Y zihR1YiOBvtf@&jCcK~>lKFqGt@i90I{MZ!oby&7h<{O|r1*rI{Ip*FjATSh>HomYF zI|}hz9(43>Kp3o#@iJiFq8$}z4Fd&QRPpqF%LPfW`EYgK6Dg<|A6@@3xLEx ztiI~mVkRM>TfW<9u!$NY(;~odY62WS&^N+V@n+z@p_c7FWCt}M9Z=sjBY7c7vkrqf z?jdZ|DC#r8&1I^C|D;*kiJL6(sCr|zkP(39*W@R~P;tuJ`dC>mVV9fgf?}4Q>kmfp zITJKw;=2O*g5z`Lt&+o{sZ`+I4;+_h8#6iCgB6TKa2l8a?1f;`ioIgG)HN6|)b27D z(AX~XhuOBTHj!H+m!n2qLLebbwiOW(f>;m%SdXNBT*`f7=V40B60w*uyBSZ(a@M0^ znxT@09xh0z2yo~tA3VXKeG-V2!UbEf71V+au12SPS%N?R#R z+zyFmBgquU`DS!yy3}u!+d$PaA2T2jQ&XsWF|&i`6tc0QRyVGZK_i1h=`#dG`In*)X#)y6P3ZH!i3d?kbg1BfhBU&d zLNW3Zi&^taK&Z=f2U5Xndz0dk5{12 zjpmEaB#|O}E;-`hs3Ha7_*^@cYuZjTU3BrygQvU6_!>tu`YjCDW}1q$vQ;+3MuNegOf=BKX)VNDFt*Q$g0)XGO%%$@I2R8f#>RjJWMGo=H`I;9lnENU z7#gKBubZd9L{l}H^0oy@N0+y;_M->fSHWRzzq!S;0VmFhj^TVWoVBke2wPjtDO0W_ zFj3G^w^>IvY!L*d#-h`_N>|rfCGVv<3Fb+EA26s(z?#&powY3I$Eez}R6{|x$qKDR z%{aF!=<&Tnl^Y}9&yq*7*H-V|uqp2*rpEb#7CusF`OELmzEY4?Z!%<^!5d`25^eqK z$o_}8`^um%XejbBi3!k4MJ>Zy-cGqUpLNpo*??G_z{pHL@yS}Bh-4Cys05xS6jr)o zA|A-f?TxjilQK~Sjn^(_@I+*bs0NhBFd&##&b91M88&?*Ii$70B4x907{4lOWG>=! z0LWtDCIa_Zc0f7JKj#2J5(>=mc1n}r-Em`F&C6ASQ21va(|E)HCL#grJVh3}I$Dqv z%m9E&6X^wrUSz^{+aq#`e;GCb)hgYITLHCibaHFQ^S~cPPtZ!gP2hrIkQ>WROaFK0p4g9yB~UaEsdN5^~X{ zREKCU{t70}c8o$nr$P1(!N9!V-*& z40m(FE234LGC>6HLMp5w2BadW_xx2j9$y>+n=FlVa@oQh%1Nj%sAY?kNCk)$Bf4Vs zar+c-gMqp0k*7x#!`o9w-d)qf3X6qiliS(%v?3n!U9dArUV^X_^j=$SnwV8$ftG?C zzb8S#4b#%_JCD)p6)j=&OrSua0JQSo+afl*~A_Z{TV`AgV!eID4 z-Yx#(JQJncp=4SBh*$u36&M|2Q9!J18mG1n0%GDBt}*hQ08{f%G{?nV5CX%A(O!(g zKj~cGh>szGc&h4f(`X99=8g^!^#BMc&oVaK2xeHu=4hZYb$JJ+d28}hQC?)Mplh}T0A!Q*DeoU_DynJ^Op=7F>!yqN6UN!XdzF2xPlgO!bu zBhARuHo_ReTJ@g}1mJj91uuBbpHBv86aAzgLDnss$M5-p^0@^G0E*4wOfgItGQho{ zbZVW&6vixaBrsXgc$6|lp_eWLI<@XtrI%P~3ocu1yG3n`d1Mv*VvXZ8jX|U~{=ywr z$vnj!wJO{ikx+sD155&66ApqosKXIF1YUs-5F#Wc`%a!Bljf(PfCMZskzSTtj{XC& z2Ip?h=l@WNV~DY|^mH%S4NVh0y7b^LAObmZ4iQ9M;_U}xpySrE)EiZdt7Ay` zwiW^NOb+Zg%LH#<=~>m?WIs><0Y&fAV$5$1<3gPjA38P}{C222QN(>07=kUqIC?n& zR8Dwuh*>kT5ulsfKYNWLFYQ}wDK-F_aj38ja?cSeEiu1ob%t0OL8>a)Az>GS9@@T{ zt(p!#GtE6e+1O~{mUqFsmg{=XyjcHCr|>NSlWPMBhK5m-W7nA0TBk%?JU4 zf(xr?RAKy(gD#`AhSeOHvyGg$-vpEN)ZEx8&34|5nnK+(qtDNQ3k>|0OqJ*jug<-I zO9p0Sv@QmUXbx_6?Ck&H>l}kCZ-Pc2I~!+X+qP}nc21IwwXtp6=Ek;dV`Dqn=$@x; z-COm3dB30f*G!+8#&q|u$wDd1iUjSMH>U4z<0)X*-B3y`3k`abp@TttYy(OC1ttn0 z`junF0s%50Isvm`)*z#`df9yk{i2E_)}u$@k}Q;s%+QTk6>_?@+q^oj0 z{`O$2T*?<2-O(1N$BRQp%IooAo;DT~GL}5kQAkbZ#pPt78ATu@@FBn{02bR?hV>|7 zOz|{{tP-&nW~r%eL?IAf2h%u10&k`0V2Q0r8!dc>l{sR5|NJ#)9Ccn8Cv`E2vmN(- z7NwM8)7`bqUCJGrSrQ$VdnfKiNA<_3i8)`la3_&($hyu^21qJ)Nh1BcOfZBP_MV<&{qLQtETbROR9Djk&?SIiXtvH=8hFTp9Voo8OoT3bE2uU5*8lP z$jZf|4@?#s!FXp?dvBQDv!K@_j9le8TBbDoZ48qJPETZN6ns;`m+|ItVh2^}#Eei)7JqQionvgXPyC~Q=T z$jg&{EQ*4a$`%eb6r%%tSXU}4>?>(%gN!sRTZ{oR7*|eVB$4`WBy<(qi0p1A%EUlF zO~Arb>X}&v1c=+_Kr+~t2s~?EhSvEsm~-+tfy2|>2(GX}{=&h2y$knqzPEX^YBAG; zmd9&)v{OZ zjTWT)kD*D_M`qMg0xS;hIcq*m#`{*UBrvFLH2fJI_B(LPXc`yhxX%wplk>B3x%nYi z9q<} zHGH{$RL?MLB)DIrrCs;qnx6x8U778-ZFhx{k&Y*%J$QpI0@c-LU7*`u)JI~7FnPRu z_UIWz=_|&_R)?f!i~|)+)^ZLZ^1Wgr!36DW7X{%+L{Qn#SlA!S2S4J41Z_NiwN>ig z4$de(>_nK=L(NJ+&z4fwjUpR#jcC!?8wF!YcXrGbGgM83)kOr47yrKCQj-ry(SjMN zK(FFfW$8>LXsvIAuu zdJi($If4B5S%*1#=5H7}Y`?I9V>*fsUy53P_+WFW_iVpjMaQR zLY?p&GQ9rHN_r{3zvxXcafvMV=& z{S@|BGiE61-wE;6zd+#*u~=ZkPNJw(X;X$7ha6YG+9#t-&hYh= zZk3&zwF6npvOh(}v{2-2En@9-mdhoZ&IK9ve20hcdOAY)%~S;BWq%<3&qOc!{r_6d6tztNu-Cx%1=wrw6WX!a=_kA$Cslo;NtuLCkXg}Kl8`KE z7L_;-S&Go-KZ3W+QjYpbN^6EN%Nc~S?H-?UK@S{xYraURMKht#J36mY+J-BQEKJG`>Ql5JsA_BI zSPaM(;s3r`S=&bPw+3A94`Ixzz~4X7it zv?Q5%Tk5iJXd{5VHnlVkcB9+CBIJ3owHvlH8+&tUcZks3t^&_1P6@*EFgBUm>U!5A z72}NYjDg;OHSp!qLOH9(Y}wYZFy!3enQtb{w~}#lWzJHW6RI-ftM%0D^8G~@X;U|& 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

$wqcc$rVG5L1lZ;)YRR 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%0A&yN7Ft@L+3#)g9gUN4Vd7qsvapjnflq% za}$gk(&7t?av|sgR#E3SWm|u9(;=hd=D><^9$4V)<9VVI`CQ1T?1zB7AJo7&U#m44 z#uYFseo;C+S!07AjqZ9NEWFQ?bZxK@H`lVQJz= z=8U1O!adQ~bA^KY9KAT<9{(K~CK%TnBSNR?C*aFMd8e5%@dZk!8F4aTmazSHj&6lq zBRbOnnMplIT4JSKOf_Q)XX*b&nb%w%K23TkKyxiPZ|u~jt-3}leTz_vb0Xc8HT2W= zJxb=JNOk}0J{m(A0ace;5tK`>Y|EA>wE9QW4y~YfZUB;)5;sU>x5&d5NO1}T*{6M1^?({S6E=Ml?vQi{z>3bx=u3Qb*= zip5@`nLdSNk~VL#hqx1B0~+-o&Ch2a3};$`-R}Jl08&7$zd4Yt9$3Lh8T6{d!*%Rl z&=47jh(N>$fEGTe7t0u_dVrq|9Ff~M3#5I_naAzB2{X3?>|ua4>Y0DQ2$&f&3GXY^ zj$wdr=mKy@*FbUPT<7@k6xYD2x)ejSdVoE_YU;QMB=dB3s_D08Yb3K4a0qHysRIWH z2su%<%G_v@R+$3^kC*)MHaY=d`Eo?L9T#zMe6T3v=7hi&FEGcaq8^wo-^t3I#UDwv zef@_`(3g`)Qn{3r#50p3XVUsBZZn|_cf80OD&oNV|O^5D!D#>>$- zngd%-Z2p?`S(ELIKLQV+Tm#qgGOgVVSYxkR))#+{3i=6INEAm*ha(p)P*bSj8LSiZ zJ=sKSErD7e3K)@9B*>X6&GhLS5DMi5urjfx4ke>$R;FN5U91y?o3rN@SaFL-abgb2 zAOE{bXI>9k0A0!~Dn}84jDFt0k9?lxb6&u13hA-Rd_;l9vb&5PF z$hxAtxv3VBeVJObZj}Wa%(YB$(7;>7L8I_7?fN>@Sze=ixlondy7i6CL;-;R3jLm8y?HVg=NXqli* zbE$&uz_J%ZT8*4grnyNa1|6}D z0HK17g7P20V2~^oC8JKqC;SH<@&Ys>wB8Ufdda9>4P)tc)e!^s^<+j;3?rco6#oF1 z%6O00O>QaH=0{Ap3TugBEmC6&(W7)ke+jvwKKw_XXK4=#rd?+F@QLrLfaF|qea4Xd z1CUuUrJ}#mD)O_uWY1I_mIRr32fWF?nYepae>>HW=~R1HRYuB{1!$sllhI#87wQXO z)vC8LsP|FQDnT6PXK3pTT7Xz;ETjbXM>bWnm(>U?8>)8l*|Z4gMG^MGOaAlkNdhCY z)ytTYsZ7A00TP(V;#uOVu_9$_O3X~eyEBJB*2n+hp?vw`s>Isw|L z=J}x|yPihv@})&E3%YR@d{M1KvE&(qBCGGvBQnSij0hOWJ=jekJ5Y8W!l<1%mv*g& zhg&UOipqSc8=hoRk3Lts%7ktq%}opdO{T#^xj}aI$gG?pRiAb*CV#-G1o&M`WY=i` z7aO}7g#V%d1ulTsheURDk#*@XZsZeaaQq3}>{F>_d>SZ(yAqRt^=J3tGp`q)6MFDj zO7L0U4bS==dA34)Wt-`1LKls+oTjg-o%D76`|x`DQ40$ovWwX@FbUu0T?~AKM6t_? z@zh8fvs6Kv0sh;GiMs{>gE31lJTuHpIA-aaIG4IWP$f_bc0!h&tu%<1R5fo44uBJi z0HprMB1A5u=55AJo0mRwLXgKjwsHi3)fQkxgz;n9+6EnH&g?Q^=$BSxnr`mxzf5eu|jb#E&7{EvdH&k2@oI(vXWD>KlV7&}l6?Mpk!12$fl|%|cN%a(O>jXp-Njr9#F+TDEgpq;)~E5; zPymQJx!~_;yptO6Vy<2Ui$6sZja=|C%A5wozYM~%CBALUib4P5XloT46O6#8$}Lpx z7s*ooE|KK$t}4I-G%8OdXtkgBDn5dvdF_DuIt;a|5A!QG(b%aO z%LbA$lk_|zn%_nXio)%u`dBA#wjWW9S)D2Aj|-lr>Ps)fwLFXF=E7ClxRlM|69JRg z|1u0Z2`|-`4=#w?nPPj|5D<)DxgeynSp2U+4lnt$LgyLGdJr`;p&77HD{}*^zk?

P!45Jsjij|Edcbif~Vn)I!@HbJbg)QX5%|KZA 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 z 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�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

LI)orGU*heWuIL#qcoDSOmtK;&PLiF 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 z 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%0Dat2u(LbIBF}0GULY9< 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

Yhr@YN*vPxfx>!Dy1zBD= z&imDFu6zrOoiC%?!`_HJXkX8tIoee|~XX?A1llz@`r|fkFZC&gv zr}P#cGd%A^c+CQubRhc}wuk*QqA?~`6^O2X$8elx8<9@l`31YfKHC{#t$Sd-?dc8l z6Iw8>htk5m09|e_@e#DcZ%{#VML0>9ag)77Y37joW&AtFLG%w5+Qd(dMEp}D;rwq4 z`~S{R{H*5?B^kS-ALi;kmFO8@yrN@V@{X5=NYzdPu#kh5^(0gA{;nJJuaNEL7Wnkr zEH*s5Es)iK)gJO$b1O8+g|tE^v*JRykyE78nXbM)6?_m8`i#k2K8eH$azggXbDi!# zO*OZP9gA41+1E(%E$h}_g>d5L8T{Mv^nwEGnBMkgIz)h!3+VhRD3Byv@zK8*|F{`R zj>yEoB$u>iPBIcPPqUJ?got8MN9e$RHM-_3JY@=N!}SG?@)!>pK;2F3-~Reyk75e; zj3dxmA>`kmjpES$0!(BXs#YU@Ai`{qdNY7t&Da3?$9x(9wWyv!)J`KS0g}=L%~^^2JjBxU z7?q1cO4L#35vQXB(5*VELW9K=GpGI2RC?rB!nHSg{JZ|Q(xXf$bJz4>ibCy(`mTWw zn`mXT$y4+0Wg%k-RNYTm`hdG&PCTEcWu_$-?Gjujk^39}_8L%Kez;D7@ci~&KJPzw zcQP#TZ0euscoD%j@q@BIxXF5B#1VEH!_y@|BPdOA!1o=~cxIT! zBS^h-4uu~k+5S7n`ILZsy*wNoP_kcME{=DXRoRDNIk zcD#_d-#;Br$MqkD-QO?Xe@iz$F zp>RysMsfqj`HbCI3@)~i&Jeoa2qh51TM|$y*wyXi=-i-4H)xQpXxC)j^swapq!^~# zm#k@IZ*v&gcdi6fa9w<0Y1;`7!Rn>d`?6sneI3$Y4eyCy$pNI3)zE64mJUu=eQ^m8l)L zI4Mab+%$yGcjND#w~SFL08@eoe~1ATtJ8(kzAm0E zghs5HPK0C}#Uv9Rq7ae{%_PtI%bK&BU<@$eH)KDX1XQ`S#+0s} z+6@L}B&&gJpY!NX4doAVZmeG03S-X8r6cP(F7GO)OiHOw-t9kmR^upBB)63km0yd7HyV*pinAmo(mhuy44N!1gu4xeV1$% zSeHK$t^+yIO+b%Rk67lg(qj52MB6;Hnyq>OT;NZ zDJM9i$CM(M&}L#SCv| zw;pDLiq)9vsU#D=368?2T2iq}rh0Ye!|x@tZGyC0e8Zv3j_YMN$3-*F4!oGWe(17b z+}STvhFZ($$ctuTK}>q9Sp;L(i5gL+gWuXdY_Gl)15Rj4i`pt&zpHk#rowSRe_R6$ ztLyzEH>AaaXE6&iMvo1zQ@EQmD*2Nv-1HlP#G!2-T_a~8B#|>uYXpTuJd6}-_NK#k z`{`QW%i5D07Pxc_+!UIFmx-tRWJiBAAuA~Cav$iKkCK5?jI-P#?-Bus2XC-EON3FZ z#p(EgbMViincLMS<)3H?3&zkN-J1gsec`-Q$8#=ZYVBju>^R-M=uR%r>M^K>jWwLh zg|S0dFDnf7vU&9!53R~Xs(BL@+|}P~xXAIIOA`Fy_8qpbak93DX5QF7{>5!G0Lr|M-SL^A`$y&sGk_+~1zsRGfI1DkE|1q{TI z!*o2Du%K@&?wK{^S_@aIPzj3zlY9? zv))u@l2TOqatjN*R_PH5oGu)-aEY^cCRvQlImkjny~sBPf-uONGOGZ3x*``Vrm`1L z!s{HUsyixzqO7mx4)$b7`wB{>jrpzp-MsDV3T(icxxxhwQ1>d4OcRUC>xXye8~nN+ z7e;`NQTO^3wUuEsQ*Pjrq#~wav}R>Mn6i{xKZs|=d9LouU z{H3xb${sXFGXKONzR?_K#6+*1 zsCRyIzJLGP!ugQU)!XmY@_RF@PKRqjCQuymo87czy^A0-v{$df(;kwJDZ*_CU$f(}gUX^qp) zl9+2`5kw+mcEfR>Ks9qly?wAp-q#`r116*~he|btyEiw?wWCb~m>cN1*w@KJQ zhuB@wtI1*_js#4>7nG6*?VF`rYu}9eEtd4t_W+>=Ad`7(dmYWb|J4UL%69$B`E%7Q z`+*w&!=L@nIo5qYfp^>MJ61j)SF(b0j3R*;pkR@Z=7clq>DDz}Z}C z6qY2p-XW->2Rl-0KJ$e%TSop?Bt^Dy&v~y=`W6+vYK5F2|EK`6r%(??7-qoEVS}Yd zy6DhG@n8(b&FFj6K394Y@e%jn1#5Z%jQQ}v3r^GM&bHcd5c9O)5|aXU&WY3QwB@Oj z4x)h0s#{mTLiFwhRG;>%2TlEudCss^5;Lc`hnXOKSFlxx3jEH0vyUpP^}J~h{~AE+ z{iWAvr40&IyUtP@3c7lMDHjGhM~SsT%Ax{!l`jMdYgwi;@{6VrqiQYmW|(y%6%Cnh7+nftxx z7FD}-ywmFoCTTuw-@a^ZJB^lC)2}ccl{}7^vneeHvToK)v^`c?^pHm@!G+wMS+_Qj z8ii20Hz#=*Qqu{0lZpTMu`NbnDI3OQY7GmPcNr%{NJlg4$C;XvV$)QuT546G404PI z8Z0>=ueWnlU}v2Q3Ub6R+b57-<*oFt>-1#D!LHq{8MBL0WkRC3XZ)18m1t{2oQ#^z z*@K57H8R52#0noQguw{gy|xl}(fZ0;A4jwPvds_M(b4+G+5U9Kx_`g9uqtIm95rDK zB2_=pXj7h;HDQEEYr5)=#@dziLR&?V_u-02g%4}8kJ^^hJ9uJc3DQoz1x0_}S);PD zb8!6n?j18yXjg=y!?~{rURQTFar6YXWyes89VXo^xA_H<&Nch_XD|gs#s12 z5f!n+pdqFHH^lYB&_+#W8q5H?Mapgmicy)fwg+nL>x##FEdo?OX?0u_%`E1brhY$% zUZWVFD}#CP`QlGBu(oj_)fi=c`Wk+*46ZyqMB#JI!S!qLw9=DPh4TUjff*f}^r7^c zO~&{Z(@Dr<>^4Euvujmc;zME_iUAxR<}gCdv23sh>Rbfd5ayTwIrlh)wx zZ8x6FwE&w0GU&5VxjVoyz;Q$ru`r87ZUZh09Ku z69s!68zs1tv%W+h@|>_N940IM_|p}>zMN|xNq;cxQz3rAdb)6}q7JY~UP}exjb5MU z7VUNPNpVDpMZn(a*m$`t{DCTnxz?!HwAV&DVL96CAYRu?rT#$GG$Idl*4QL~I(gkC zRMO~0B`iMiN8?bjlS1;o!mt{yHNv{91Srxxq;3MjI$FDosbS4YV-bRx^}JcT+A%JF zU2_B}@+q2>&W^ukkcrX(;L@_98}$4vY%m_QU}a~9JI?61Wr9ahwwJJS%z%>kUm)?$ zSb!{1H~Z`tDY$M9lnQ7kC)T;1dhM?WYrr~pUItFsehd^sv)3IGYGddJQD5f)6LGz2wqBgaXRms3mxut2ZwMnp%(KT$=QS9vhC_CY20d(u``?XY1=)=0x5?wN6{@R_U{%oJ_;`8aXVeog$T zf6ysN(Tirw+X8g02ySH*Yg#yEr`!!_6T0WB2PR07ijz+uKIU0H>XYqLj3`8X2@t1% zt9g?zH4c6vq$}t#goR1>BpD&+Gl1TOXcaAsw#g8Gu%cM+q>szx^>`a}t2#e;p3UVx zcm#_`fQ{xgkUaHja0|=m;KlVO$ZceX-&-o6=vqon7pRt(m0e4KYoMmYEMn&OD&kH} zsi89cuTLUyCr1Q21ppl%#k$Dt=c+t z(p^4LhLky+6TV%pdDe5HUvi}3>8;+dGLI_8-^O@<=x{J=zQ-Otz=Q5Q4u+eot#kRr z%d+?Mjeb63SEX>SLaov)kuig!w4ol08p-5QaA_)y%EA&g4c&S|&L^E*8Oh4rroEk*MGGPFy zvXn5oJ|d`6V2DYv{8FuL3FyZKmz10`%dcH2+kq+aAaHNwQlzz)u^yO{3r0ZPoc zQf{??$4r0sXNNFCW}HarO)`d>uKyL;;~YuF8$4BTv7~E?(Mn z%xkR!D_v7c`e{OaM~ly%(QxeSWm)FKk>?z=y z7Ep+YaLSa3=dAqUiZG|QQO?AmeZEYs1F_^Zn%LxE#oo?y;ozY z0{Lpos$(kS&8;#=Lf;3W70yUuc7>8$)%c=T3)64*SVpD zlg5d?^(GT7HX)Da0yhbhrB#0ys@3yAo)SUF!f^~M_E5+p2rcOwC% z>sZ&enX;xS5#}I}oK0+_aEdElv;fqNDgik#GsHO&$0YzGC{Q+`qaZCb#MeCfIDGTu zEk+yI6EwnMos3w7{YHJN{AP;AwuF^SB~jC)PI0F6UPgE3^TKtzlm|$XnZIT~K4pN9 zT|_+eAwU@v((gyZW)9_JuSMboNEhy7bC@;V#Bjqrdyk>*3!ukSo!Fb&ylV{My6_0E zlV>J0tj+X;V5>U0sk)c9r{(B#Cu7+3vfSwCD{L0C{VvB`S+#P1{<@?_mo2hrcTz^0 zW|mgM&bAf5Ysh>EKE7eVxu}K02if(3bz^0828}2tZ^qL>G*_{bOdOfO@xmvt!_VDk zK(zi#7D-y4cXnd0t@?sonjNZdrZ*;6?XV?-h_3e0OeK)I(`+!%@r{v)R2ivtemj2> zG~`3K6{aVj+p0Q%qx2C|ggK498~$)X+NN`R#EC5T=g8=DYLs`Maz}Dy5cG#0lH>N^ z;Ufw+S92g|oeQ5gt|J^t-GO~~n5s?O!;`|^i5?oMz)gem*+wnuE1i@ySh{t{Bg3ZxZ&<2hRsf}NZ$-gW}4z78PnmmyL%Dho&n zWMA`1^s1I2;#@hLIg~k8X~L6}0qNUn zOjw9cv(F01CZKJoy;#PlwXWbbhTWf(jBVO1=4xtcU-zOWznfM1bL#hCfh3Eh46=u` ze!4O-Y%e}(qI-UGlK#S0aj~~qM;1XV)0sCdjj?F$0or-W1s=Kn_85N!-|0Hm1R|p) z(@JG{&l(HYNVat%sDw@r-cXB30ak_6)m@Nns+r)rU2qOB3zN!Rg1jXC8J^~VZ)&`C zh>g48#R{;?+UVY?)pGu>laI_vx!*&@J3T*Tqj##3uzjpK)CcMT0!q+|vwASR)CZBa zqHGz1PhpZ2$^>1;pE`nH`C|d<4EOznkIhmV*;6S;%VJ}A4}~2Q(+uPqEA+`$a{F^0 zu%%7?r~oD+SmxfyNRGB#No1(*w2GCLj@F34!%*B$_w)*VkLY!?MGq zpuj`5n%#iD8V`nNEq8^{Num00WwEZG^#mR;hR8ZiRI5cV` zS^Aqz$xZ&%a(GZ#nvKjsd;8zN^jX$so3xLtN#gV{e_Q%gVk<8Kg2DHSr9%03P8;3B#P=;e@I24l>K^ zi+PBZJ{)T19Fo|vL*vyl__q{txJ76 z^54`4DM-w#0yK`>xKv(OT9efb$T3^UK;I14YQ2Y)qgCWVW93H=zg1YOn8hG5LQ)@& zYN|w)Aa6HeWW*K~JeZdyJtlu=BKFPs4a?%!3Y`a={bp##((cc(fx6pM*ZZm8L#Iwu zjNX>Z>}jKZaUC(4n+^b)w3+!}aRHs$t*R-ezGC*43z?FA3cW~w1c%CQ=g662_|0NSc0-)B55jBt zcLO{W7I8tnEt@V(_Bv=F*JgXwUTpMS6=fywZA|M-LWy_3-V!V!r9BrxI^4f|ERaTo z^cFjC>wW^y@QD#B4w5P9Am#CHV_kSPq?CWv88rm9skb{9L&&+shB-1lsFcPQrT#ld3ap|Xt{lE6Q z-2OYTT=oB}fot^y%7LlvShrzm=+UJDYsK62tx%1%!U`oo{|T%!QNTZIbN#&T;@a@M zU4qU61V+3LndN!DDQAzhD`?!ye~=|_&;dd=tc8NFoDwma7CrG#r3O9;W*eXruufh! zy%a8?7R}(G5iQXKDFSv-#@zQ0#cvr1`nc-QFE5XX(<)*Sv!|Xt_~ekzwL2sE9}3HwxN0ig$hA% zhkqwG@q9lo6VpNq8nKTFMK)UG7Ka2F@EneU-}`=j;v&S+qeR@hl8>DH*+`bxiYPs} zU!uH}5A^ZLMT{e{x@!-cE05lzJRZSi+0No*4xk)_g;!p;h|;FWqe;T_!3jg8h_MS{ zb77zZX-BhLxHV$W<3%!*{243RE)Nkjrfz^1UI-$p_x1h*WQjR*4y_Xw)X-0hwo+YX z%pck>ugOnf91p$FFAhBtWKdeOFt*CSNT5He>@2L^8ocrp zC*1hZGuS{SU_pW(lD5%Iz`=&a-;2jlw)aPA!H&Abr9xA;j07*Ni&}(|XI#e4OUHlnk zq>w+y8V(riPY_v53CN((=g{AVL`*}gtqvEFG(cABFrCN^z8?kjFGb)j(d4r>%#OTX zc@e!9e_uAMb`3i*+_R0&A%c9_y^CN94a*J=GZKeo!R>~PJ49asMj$1YO!rWwL7A!w zAQ7e;dgN;Iz_%Njz(>wp;P5W2v3V(pL9@14IV2n2ypqS^hlAA#g|BisidlN&`}9$a z``cwxJw_}#HsyL)C}07qWLh%9B34$=CAm{nl4v#bRjeL|Q$4ByQ|41@7}jwM<%+#U zO@oqy2vJYog@5pMsL*~6&iH5Ys;ZaVqo}0;+0|XId8`%!^d}=)R7)-SMl0g{YA zV&^~4|MVc+nmD`JIa>WIa?A0*?at)nG?LR5%41SA6ti>_E1-^uQi@8*l2VLLj8cqB zQIGA($;s{iGCc#fRqOjf0|2;C{l7N3|9+u?i?jL9&96q&CT^1z@gJdY@lU<0oPyFG zFO4nSm`xU|c@~(BqX+^uvSwj-XNpKj@d`uW$8**`*JI;MiCKP(8e!Ny?<{nV$+}c& ztoBxtSx~1@jwNL!=1u~h`X&>BS{2p~#fEbtbB>{*7?tP>A6$)P&k?x$7ae65A|65=upyBH>aUetz1s)El9t}(BjLTSoO% zVAxGa_po^#yf;AY_P2IiYKNiig6k6wjHw-*o5>1>Y&anjwiO+%PwuIRWI>$pIt#Zj za0$LYQb-@^*jy)}cS2gKCDaVd=xZ7qtqKJs<;m(@@O>21ClDG@#akb15GnYj4w`TY zq)HG55l1VY1A^ooED!)^OMN_%ik`vTL||o4vN!DLWx2NfZs3>D_Du-f?@}_qJ@5=z z3rG-0u~NDZ+^QQh$p}*}a@33wANs@r&oQPmE31@Do3KyL_go4V*_4J;O}Y(O{0CBk zU@ias_LHb4aE4wHY6+JoK{ScBKM=21CV?=#F^sB8P~S0a3Ei$t5QEY-eg4$=J$$t^ ztMLsS2;hlJh27PTVMk4&$9GE!jjx{t4|^YmT>cWGlY#wImkUU zKnRx&7{tUkbiSvynZN81AfYm_(>{B(=nAx3c`Fwrg{nlJXmg#6V;Oiujeaw)M;zvD z@KD0um|drOY?6Z#|A>rQ3-FzBf4z+P1_IGj3`{XYU2TQH?eQ8>aVrj9C#M+8U?Q0u z=a+Ery|R7Gg~sv)CcA^z9iYO{Q>@iMxoe!_!18NnAc+D0KJNAgRI3%Q|NBhA+G9Nh zh;c%xo|&E*)*TzrceE5pHC1t;;J6X+_%i$!HCnU+yz>P*crpyAnMO=Xgsr4Bp8nl! zu=^duq|L|z)!LQnTNn`5hvNcw;L$=_@B0a0^vCXx-tX^RK+RgbY&NFiNE`g2wP+u~X z`-xRk?_%uj0iK`jd@sOc;WYB;q4~QhNsI%`NMg{;q{PS3sK}L<$hW8(fQqci5%SzW zhWeOLTA&>!BAsbV4X!nyce}hD+ODl?KRWo#!w$OV2a@5K-#ji;B6*{6kMATaMBPHW z`LhkWWl7|b!2U9n)FCX_v?&!M5UYkEVjgTL_FMUKC$hN)pw*BW@oK_c#5cO@C&u6kxb`HVW%?v1Lfhv@|9$-<1pA-%4 z_XN3SW8R`fSwM)1kYxTR6a)5-OVRwyrbiPoEl8E>M8LJ!osw=3-Qc9j>E?z?s=sq-1*ArZ(}nu~AjP<6W$nPd z%@SdFW{aDo*v2)Tj+EF+AIP4fz7-e>U%cYipWtkp^0OEq{*B161#!jC!TV9ED@4g0 zd|3#~;#SGBUc+3~_1$J&^k#Kh$xSbV*0y{=YfLSyP}gVtSgJ+B)?;#w z@VisvMqoKF>hbXL_)I{HaZh_G9~{18Db*(QTTPfF9)-HUjF8YgG;mnkQDo`fdxO1l&&5pj3mzIo1z6U~T1#;k zp-w{3Ck#Dh8x>I^vT!Rw5@Jm3;ha2^bM$p}njBus^#W!#p1^-rvrN(Pg|T3@q5A=zmNY zHsnu{Z@+ZSxjccDb+|8#%Bc-?wQpxLk9sDucnu;<*W5Xa$I6imG}c0%YU^Hh&J{gsb)a`SEE&3xSv1t^xUz|Dt{awym4&R!v;0PsPVD!AG|H z{rp>eNSBQB+>Jt62U^0)q?q1w)#QkDV*Xsl;9!~|ec88=#akI5Pby#QGE@Uc}{F#Ze^QL*AY|02}};ALs*W6X*>7_)gf zcXw5U8?A$ORVurecF9OPGMNvn=o02TPX8W!x~j?@OspbqUItW+91nJ*l$}k`97rzn zLYwzkg4if%WLQ%RpvG0pf?jzwXg@369;t@Dqhmg611>I*5?6NzZ_i5>h>#de7%WUh z`-!>*COW$EDox{k_=EnXtGhqXJv@|13`%k1Ndw$6ku_|gPp~5Yv<_e!KK@Wl9%ZE4 z21sUDZkSS`o`rwufL=?$LGqqNmaeDVJy? zCjJ4o{$x3_xJRxUy><6#_{E>uzsHm*{-iF1S4a^veMir#WmGudy@K;adcWpgRMO`z z6tfo0)Oq+P{`?P8p%v-zyZF~*pb7bZ;zR!Hnnfe+9P z*w9xyTDs}n4JT`ICv$`*O^866M_CghN=yd%=GyiFAm11}L84pnV{RnTBv}60*S0zGXM=hlZl+g zlyEKUbJD-@io`6k2({%1mE`IxYwmjf6S~ygzpkSVdBhM=3Sh*Gfxfid*qHqMxQCHspsjuZBkVx zKZS@t>mtgWK^pKXP!T-tNuNAnDR~ZdQpXDtelC$TXnDOsXXYeX=^C*tYi3bI4S!dP zTbHFapYu%K-sY<`*ps{CJ59gS-R7O@`|9lEi)JZeOPT{N!>2o#)BiBVt$v;82icvp{ z>bz_}seHTYg|PVI>AC?uGNuqIWRQ%@24`m%T8H!(EW8}5=hiAbJM{JW0K1w!_+sNW zo@P2bPp6<%`7tE+->^o~9nCqYiTe*I4H3ntwhX{aG!6DS62~~ew!jU7{YWV$7xP|l z5!x(ble(u7xcLymyv4y=UTmR6KiF{pw&V;4dfHx~SA61g;mpHoe)$6F9@Jtb#EA{U zK=d4k79{1m3#l?YdY^1z1b~MQIlDDgf=>NZR=BZ08=oO9C>{0KF;(JFCd^vGi{Y9P zXbeXN$ui`QG)9y8o!ISZ7n5%A-LvCm&>REV%&})f=Q1VA@?$LQjLLcT*~*%z$>L(7 zP|}Q-0d-3eqs-En5Y<^|o*oo3H!-!PcN`01af^-~g+{ew(RYY2;Tope8p ziv%(~T$mbBlQRyTfW*lG&w*w|J2Csh~M0}=v!8=0z#`)Rm zxut)H@uAKbQm-TX3cS=+PO+&NtRH>gIgc(|Qx9MH4-Q9HoJ) zTxHlpOZQP(T0&C#WlO)4QpCZd&X2<1NKaF&NcmVIyW8#nZJ7)>B)|5luyy3@70q}= z8SohKOEPVHTc_PeSOm1|L{sS$59KWOSCm9PqkaNKTj$vSyBHF%&bI;g%bELN{NKb7 zV>>rnYdZtu-$kDN9}tNH>APC5&#A7~y9A2TJ{PF9S0{4|?5enrt!qFR0iscOgJ|VQcS~D)OWAJQr`uD{r~PwAq%zAbV=SiGWb1yuL%ymM=6-v{ zss*Cw#$(_x3CYV55>Y=^_xs)5hqI~0=v{DBM`OWr;?uO6YEv^kbw&c01z#Ja!E=sM zb!p>Ii;|L~sc+j!`LmFR=&l*>dXxe4gosukUCp7rWG z?%K~(uqh3ztj0t~cIq3zOiA;{E42Vn8gjzqhupJF3SoOXi4^>U^M16@sd%(aFJ zZ9R?EYKC&HvQ5)RxSSV zv;jm&?4djua*5scrctw8)aA;xmAKr+$}kuWX%G^`XP8K;oY9a;b;!~EA}G ziJS!X7|b0nk9J`4-2^|Tg+{$xnjoVXT7in{e%l~M0c5bL0=PnW`8xAn zr(uoJEDiwdD#R8nSQvWo8XD6O$2c}YoWu~K%f8^I2lC(&7Y+6;#~evMOXTPxZS-^u<}-7+gqF3;NO0>f*WXW9wHaG!i%oztJcTG7-ZrE zT~$A1Lt-f83y=dl`t0RmOViPAaX11t)PphdHgH_g`j^JF9z!hBfX2W|dG$1}D7G<3 zUp&SJ$7cV`cl=r*Nl%p0fBGEd_5l8{28>Lt0IS;SZNW;w65|`+(-m7GU`p4Q_oJ&= z^egmfE$=yVG1Ld|m8s|5b`m(DLk!I9K~Bp|OAFn#kkZ9m{)vG+fPage0OE;-eQCrp z++#PS`Mc_;kp7mybQI)*DyqUhC5OJiupxGo1XG_Oshle7u^j6C4YdDi>EPvxerzz= zq+%X`w~4WcLfM1sm-MZ05cPfkuL2ZK@C;dh8Ug=YW_Ls)A^lEPcTE&1g0$iymLLyJa z8o{rSbqA-=46x#u^o`{CFSagDBduZ3%4mD_JflutekQPWKsrwGhj{E%i+}Rm9FuVr zfsEEGgF}VDs(@>;9w`)0{%hDbC-ojhm}+8qjNu0_T0fPI{zb!acH$I%r(4oXR29&{ zaa7Tkf*s=@edZyhPlt@_d2>Z8R8MwzKETpE#Hg%0UnDp#b{0TLMs5@-%nvQR&xbG~ zuq3QKaE4!e)woHlfZ8vc(?lN43G<^C^>`g1$Y6H+A;uEhMxGLTVMXd*_R-qMyh@fL zLzE%7E@H7(tQx@$ZWLZi*KW@@EYK#BPM(p315VhXto1Y+$SlqY1)O1HmPm!0WtF8y zoGU?+uzD^mWav(hF>ZL%jTpd-jln2Wf-&kW`ryOaX?eeP`rvW$cKN9n?G{2bW_~g$cK=Jx4;!`!l<5tAjEZ@9U+`(ngqtMBUZb;cl@zJAiB7c(I4Yx zZfY#^$s*0x)ItAs?E=9gNexMjh zEkTATwn?nyQmw*igDsN-yU&&}TwR;q5e!iw)B*NeAH@duDbfH?2_)S9|hW22NJbpcoG{K5Y zGZ-_5#pnM?N=|QFL)&Gvqj^Ji7L|8k6i)^0F^WN!_yqhCzbjlw1s*m z)q{~Q%IQP^^yhu*_|58+aRjp$HJW~*X{5-ejGn!4q{MJ(2SVvWZ8AZfG2yl19p#+0 z6OtWkKctV0ab<#1Q|oOWRLGiTkMwo7CcAdmPGPXJF=L%$%6kfkTw$~mQf6Y9(8Vaq zHy$IGbdvkMkG@-i{W(>Fi3y%MC;GZ8#TK2x&Qf8{EOSHVbHWfWcBjg*r_p6h)=%@B4vL;{8RUB7vPB!)kL6NUJl#75sK)fhJG zD6x8ikkV*_F+4wz3KNhMhM?R#9)>$uZ%Re2qyVT%-vLHY5!}osfEh72Vs5-rXlRKd zYrz*}U{9zfnF9n7l!GF~cy;DQ0hnG89+~O%@g4$7@9>GAkc5E*vc|C+WdXX;aH!T29jbm-KRarTv zmstB~B4$TLBnZ!GXr;!E^L+mWQi%5Zo*ZgOodGz}laT^-qRLcdCAbQX!K~V-LzodLz`` zYfer;W;N8-HJj>keZwx@+7!sj{_gi25^=ms+)kv-&dr$-Sfo3;8an<>-QXKrbUSo* zDT0R_Rqw$FrkZ;Sa5f?~66fJK+TxEGejtOv(Fxkm2qREWC@=YLQ!Mm}aJ`5(sb9vr zxjf=wVF6qNbnN@_h=1bi{w7r^;Mi-m%uoL&_&a@C8oVoz=^msE&6*4`kuXwK(`Yvc~aG~}xrbPF&p*#jo(h8KHHl2MX60@OEzw zS+5VPfT?G$Ex7*;P_7cNuCt*lMz0`~F`Cq31crbC1ptt&u<%|#9L`@5Z7|7EK%lrL z5ip@6nu-N*dm*t`)kBf&+xh)0gU&dJn0xRZ2w;Sl*9`wI0c{)vufjR3h0$^x)EkLm zA^M5g$VWn0ggJp$z)g=)e<|_YV>y+3RuEy1udnZ~05r9N64KE(;vMEPi~802P9itG z2wK|&Ig}*=Cnc7Ca6DdH$w9!&ru7N|ANKn7W%$!oxk#TrxxVl$$)es;S>MmS8Q&aj zy8epH*vJhx_8#r6&0u_bTXb}OJ-vK`H_;)wzhVb|wQ_z9{sQ1yvA*B6t$%UnZ}y++ zmWF%6FA-@*arYl}QHI3o#75jGCm>v#KzaPJm9#V_SG6=qKm833kg%YtsNG0|0--cn zCnrRJug=@VjX_|r6EoQS4_+c)_6#xSX`Jy8uKjuL#Zbxa6@ua)OHRPD*r0vKWxs*? z$B`|EF;ISbP!TGPOP>f5kcx!mF@)ys{LeK8j)+bLI1GEB&`#DID$Wo%Y#%U|K>oCf zWktSEXsBGJ(+9}te^P){%^u2?fXxSnaR8ldAP)Y^Q@s8R@lq-cc+~BGgcg z_7_7D=gDU>`Ydn4WJ4mfc&ejm0zF4f$zbQ%_&9Z@+?Mx8gsK{4!=GoR##C3ryoVi~ zizpiLjp;zSV(sT3`W?gfl|_|0tYbZf1e5t$Gi%I%!{@opa(PH#@p$40JtdH}1R{~o zd~%u^B6)9NK5XpqPtmy7bGZTyv}8fbNgWXGSbY}l;$8$@O4<-$Npqjb;NgH$-F8MA z+E?P#togtrJ>=wLXRs+k$<~GjItM0*DRv>cA=z7-y8nj2r9ZKyftkemwsL)YEKP-?NWMile8UWMcR_pl<`!;t`_m?Ta}rQ_3Ls(P z8k4>mm%pp%RaR9Uv*aP4n}_AUesnjX8D9OHzd}#z(F7723VQ1&B(Hj9-taC}o*LL~ zAUU1qV+;amaSaxz$3y`^YctilW7InS$+*8GI6Zq$=iKO3n`U?KnCxLsbI5|?nOs(x zf{6&Aggg@ATiRU2)M2~Hwcc7k+06kVXe;_bc!_ccA-hNZX>UGY3iT5uA@jB;Zy)dk z5I=3tEpGqQL${cg%AM|^1XY=VNXbs!#;^6Xl@(b2^vtlgRey0K=HC?4Tom%G>AOCJ zOrg*RH@sH~Z@>->7r}cpmfC0q*_ZD7&ow*$Xi{TGUZ96T9gAdG$uJWP|!PF>N zm;`vMlZ_?_G7>`cfG=;Y2Vh^hq|i#~9`7&rdv4m+3CFLyMTdT4%L1ovs-ukHMahjP z8jJVs4?Cr9w_ZAB-wl~{H@c{IXWv+CJIlj(HxCZchJcXeObHhtPi2(EJ@^2=l17lX zqkpP=Mj~s$R3y6^yti+Za+3u4?64e|S6V#1eu@}?CuB4O;+`de#8H67z!Z5;BWcM4 zCBRcCz^Oki^6wsV!=M$^=UM)KFtJ_AH3gfY9lBI@&pWDAz=JZT^$h_wmX#YBlKv=#{CX0P}tMk$H8qb zqAmLi^o%VqtoqnyKcsS-9BV^3sKSe7dFf<9uwyQ0$?O@@sV}!n0DSl__yvxyrdb5> z$t&`pizY>`r(h41>={1mOBZJL>z+BBBUQz%!sQZ<2Zv2Pe*_f>pw9Bk4yq(Vi{f425Z$(z8gEzKfEqpe)30Dx6Z z3YiVgmSo)zmsnI-TBTDntJJkj1x&H5Qa15$bSmfo_8^e&D0x)&{?Dl7nd}h9a7a4u zOvADK(-wt2mGR{X{PWK}9g~P4KYK^bM>0K>YUyAdEC(WjffP9A31TvuI;KnIM?x5e ze55e2(7Lyd1-m`yvE1H{DYl7duWm6N!sF6Fyo1K|TxRVti^5n$$u_j{aOp{@L%QQQ zE~^1p4KSkd{{5-D2L^%}#d)L9JIqzJBH2x%g%e6!{)?u_3o&-C;x|*LkA0ILOO2@+ z!;Zq(rb6GI_Vg_Y1crDN8{8<`cB=@yVj7ed2xJ&4mJ?RNlxJOd*{iH52e4c z_a`~#@<|MpG+}hCl_|4h(Imc9TOXe50zZ(1uo0m4o13<@%=7tf$_cf)h3=L53{C-IyC28wqT0TWO| zN`|zs)gl4el_q0>;1s#;V;na5Gow-w=RA4MO41%uVHoscW*I-rteFGgQFMyG-PD#I zy$r0?Of#6j-z~{q9#-hnC3eQ__<@Lk$An||VTu7+u|Ig_S%mOp5PE;US+Jt$M0Ltj zZl~>8=$a{~4wl1x!o&Yt-z&3%MI^DGvX!-t|Zt5^PVQ#J-iBN2tC2-q=aGQsYhf5uxKA9 z>+u#w1!+Cx+1TNWSJ!b-gx0lf=F?JNRqWrOV(}bwtO@%XS=Y*NG?UM0WHpT|`x7x- z#Oo5)!Yl1GoVK1jmEImk_bZ)Kd4TIK>5|lM~>exb~jF zjJpbTeb!o^fNJ_PJ9sK-*6?WT3-w;Hr#X+Ko-vA9bnDtoCK@S{8vuw(^A57+AK(tLKC#!U2aoo5kCuuA@i-4JW8>PLCIF(#~n}dYKfz z0At8Eg4?(4U~emDKLvX~l4ddp3v-j`=QR*y6iQjk&>1@ySgqzfO~;gi4J4CEi9Hi` zW*UAN5d_K-yvasvSRFm~kg&SRs0ex_6U?y2SnijH5*g(Z<9+Hv3MR8uX6r3#c0 zk0}xY4o^qi&cj5tE8?F%0e0!USl%HxvFaiyL-`Sdn~OKoJy*gJFDq9I%lSgDwiS$1 zr$-?iC{G;Yj=8|gjEfP<45g2Q1A6e+^q+#w@leoXlFga8CgRQ;o#Yo5SQ>V+X1nU zQmK4#j5sC2aqt?{RN7?$m`kUJuwqF`#&uQKn*}xlwpk6^S?!3WTcB@SZiVEj!pTmN zeRmUB46rlO46y*a#sy9o(ty62wQDyVK#ttoS4L1zShSFMj7SZM#YQe`xEDok^jS9t z)a4q_J%-{AXwMp!+&gX8#`r0_`(FGdJD#W=2$R7VF$|!Y)_OTzV3<8k+$omCc@2&p z#IhO${4L7k_&0#8oG3oo_Y;?5Z{qB0Y(f^PxBxe;vUd5O<`shsyjOYl*@I^K3ifzq z>j=6%yLw_6ytZyOA+;+}z9-GhbE}$U1LpDbbB;mo+ba+}T>A3*i#^IAHUxYbltlwY zUn*_RrSoKqv{*sEs*X%xxR`W}>WTxtzwc;&4$n8s&A_r=@#DIF+DkvSZJzp2oCa;X z*}b3z1jd zEe`Hj3pnp8=6o+2Q7QYk%TK${1+jz-`n7M9&~~3vyRCeA8?oxcY0}L``y$NO)D!1J z+NqlDTQVWf3*TTy3~)o|*WocMy(^4&tzVifdbr0y=UWVyT3>KS&CWuWiE7EC7&%I& zt?QKq>!wRwBMPZSTAs6h?OKszEot;8($UCrQP~={ABPMw$r7k@E3U8(|F+g)(Rk;{ay9Vy7U>Ea|~vkm!`1 z9?AMU`C1*|?zSZ!1Tm+F_MKWEa5RNky#|&3givYKhF3Hn2K3%d3KthW$OaA#1}LXZ zmZa&PuvsW?fXHiJG>gwaY@NG;vUM7Nx&snRc;0vMiL^F|Lq3m;ehMBW*m%W@7ZR=RbKsd&aMUkwn#U}n48*! zj>o#j>uGNv`u-1Ox>f#11@sp@DEal6{_nvQ|D`0lI9pi%$6A`L+-JMN0MqqB9rip6 zBJRCLD*$dSxC}Z}pFhRmJb*CDhHDj1DwmMhrpG@XakVPJpx=#R@`|@ZEK;m_B!5e^ zd8t4q8H(kbYF-KHl$^)V`ygZi{V-GUWZ1Ml$^Tb}*ET102OZg6NQuIN0b)KSSSnJJ z2{9!F8hO2Z*Ks4x+w<*S2qyCF;P~vqvPqj41W=AX$P92+t>GCnWpKK3UJ!vKEr5?| zbx?!S&2;gT-=C}Y_t*Z-Oi?WFPZjY9W>k(Q#u)y1w z6~I*mV}^VEH!7c{Jo9Xm0__|io}CJL0zG57f=o152pK){agkGppJa=GjkOpHnvqFN z6{(!|&QJsX<}>mAt&ACyr$@)==Q;o*vb>M6nKMd8K`rH= zW4+BV0(kuPBMr|NV|vlap(A14>e_?R2=D|7jT%`4$j}%3Fe?QyKDVEzwd^7+V>;SU zG-ATuExxV1CtGn(UnIigzL{JWo`$#oqXf$4_h$nXFWiVMG5iE^^m&z$A^&ie5vSpd zkO49cy_xIb>nCC+5;8+fF+1uyV;x#vamQpKiZ03=Y(q^q%iwGGdvCx-#wcj)w^{A* zFtp9m@pZU&qSjh$ZM(+F*Gw}OaXz!>UDW5G1N0x4mMD9_2<$p^EOK>g*Qu?aj~=Ju z1&&4wnl0oR)TKK4SM%p#0EVIC-&2GT-q)hY zCEOMVUtFpfqC2(Pn1fslXy}{DB_1kTx<=J@H$U2^$g@JcUS)f%kchtq*4&7Vl`NS} zbPle6t@gToleP{;w@~q35S*E`cg}M^w681Zr&QQ||A$GN7Qkq`_1C1$`HMguqe(Le0_#IaCHhxkX`q6dme#M6 z)&xu^%mKS=o2CtdcWWE9CI#n@{>U;M<#S0Bs_BZBO4#)0_j@NC ztj~0dU&S*<;9Hn?tjSXhFHfh)mqkR+Ov~orynOE7DT`t?5tvHw9Y-YQY_OWcoQAS z{TP2hC4YQs_{m>DZUv-bP@e~eFJpjWkI$#zFX}s^jiVSIH6j}8&(}#bZlUBwm7JAb z?&8+&_Ycxcb3&BU z0Yna5!IhWpnz{0waJYvK?ZNECymO9SHui+6C6{w13yLa{t1E#x{M!$l)ns}B5 z!a;NA{ZLaNqEBvd{dc5xI*(NkV19sJ`lo)0|KDMj-}fBg_nrTLFOuK;e~&Zz4bpKm z_)jFkf2%eC{vSI}+&Er9@$aHJ`~8pgzq^C}muLJkZ$|$~Uu^pSl6eGMF^EtjeEq=T zG3H&V*Na6qU@1BU@<_**X~MB2NFO4;U$*W%x4*lU}BwV8) zmhZh(k)R?wO$tv~FIR9CC^$+5Yf*a}OTHV)6vNx)S31S68rM4WqKyx1HKZaUszd+d zxY13mOn9FBXY2Lrwt4*vA3{Ubr&U{Qq3*Aqu=*9#T&etL$1jX;VdaaeCzRT;j>!%9 zZYl5FG>OuDq@x|6<#WIhgoD^)^CUomFDxM1@n%i$59|wgXlH>?{fUr0VmYWB1K^8x z-_-7L2O$%y2EuFOO2mr0$#46`5`9SHU8gJunB+q33x!&C8j)UD>uW0Y+x z-Z!UH_Iv8F)vg{q0=A`hSZ;2IlBlgf#5Gn*yjgEURA-a$#3(qJ9zPL1(><2!Yr9D=FM92Z(5U8U$T+Io52452;V$k}Z;a^w@BqWG6aKn$_Xe7ML32Mq2|bBwvQ=2pkZ> z-Dx6y{`0i`X_}=@{?I=Bm5s3^pNloGeF8wsmFJ`sZ9q1@LNZI#XA}j4W5CihTl;g| z0#O+Hkad!#1gzLA07H%!G@BhBs8ip4nQe_b7;zV3~1bav6aNM=E2pX1p~#V zRlUHtAS@bKvv{|R-GUCu>-qente>>ZSO20wUUCQb3NWNGKmx&5g11M9onk)Hya=BX zPaDq)J-TjM^)t1$>nxyxlH5RTE~vK99=@lK`?F<}2-Zdpdr1o^U5b$k)oJsCU6F_a zNmcRxY7C+6rRPYFjYlmS?34%)7y%grv-pDgz$DNY))`F%Ws#lUD%U3{l^T&(BOG_2y7f_V0?tx{z z9>$63qeDZrzEhC7TLCzxBWvSDYEo63=cMNX_R>@vSsG#po(>JbJ-h&cjJ7J{=+_2L z`ZJp5YSz~|8?m)u>NlNIcrqJ3Xu^WNi%L5|!pI8VyTG~1qm1k(_y_3{3VE`QoXetu z0fWC{qgrUhAl(y(CvYW&m-@UsB(p#SB}0}8?N!$gGHxSb4ECKnThDv^@^+s%=1ySr zbXJYAbSoS);tl8k2L?4?Uo_^j(Z8dJ@Nw~Re@3mKx>P*^(>c8DuGBY>gRtJ$fU59JtzrPa;8Mz+CpH!FV$x zAmKABPtv~-F3f5^3aEqj^j$$UMu_~Kc&K_au6JXS5yktZbjGIDWz_Gph>7)A?~zZB z-bs@!IN1Jml`oiS4^($ zFCDMgYuTU$9j08af;fLaq4Tc5LAx*@kIOZ0BSVgCdo}IibHyqdYcMVh&OzrOgkrhi zVZ>0-vl&oX#+(~mIqcju)W~tNOJP*N%l?)4Bw9gAYyOG+z$J$XRY{LQhLSvK=JlHJ z8T!W^4o3Y21i;<>mKr=r_%UxzNF?rkdol-4i0Fxgay62RAy2sA)cF+)5BclkKycP$ zgimA8@E)a6>EV7MQ+9#z&dP}4;jE%6#UvIx9-qI#5xY2_=d8K(&3dc#&B=b5%zAOL zn)Va}r^nJVW8x0mV1&AYF}b7v?;B-cBS&!|Gys4W<^QRu<$u}aOdU;3JpaRXS7BNG zq8j%dzM$-agqUW~9g#ym47)>n^OrgfHkyrRs9t=3q@vU?|F$yXY_fg z!-RSzRRTm3rRw>ULP6stjl(k@6iqtw-tO5mq>fb=q!oG0by3gd>z#Azs~Ww?wEA91 zVqk|k$kw_Kg%I20d1_E1r(VVer^yAFq;4@ZbC;oM7m94+EgG%$zYE5+MN>&7q3 zTF{bN+DgI*%av0mJne*_b&VmX8t7^0PIF)dws(dCBy_`rI9p#Xos#_@1+s2R<1RHJ z=)4mIVx;|&h@O)eXc@sj+%k0gWM+x7GeW>&+I$IU=)Jti2kE>|0+t%LM9KNXuC1_+QKoO2FZAJ3v zH1Zg0C-J;c9ww#seLEUim4#|H2|x`eMPC#ja+4l{orI`6KJ_6>yf*OrZAoP$kfer6 z8EzFb&XnAlQ25N7Fz0#>V(;ns;O%}td0Oh(f5Er2)!q68c6Q}v=$Z|+th9j%5yh$5 z#erJkB(|#(nHsgqvl6X#&!^Z#qVdtc{US}nhjKw)m&!R~Bs8l@kwpq6*a7 zsVhf@%;HG~5Z?3+VSCq<18rneYqB%#PyKO(~DnxgOwb~!=B^UdgewBrIDzjBvih5b=*P{pUPs=hAWqV6)`~^z+@) zCdmpq*8vGwxxr|ULIdwr4V&qJO{-%T&LgqoRFMw(XOwdwE#SThP05s$)q}$ zI}5`$tfyX}d;%|e*fvGzv$2P3P5v10AZ;2ULK=74Et!K;P@_Mky%<4%8-(1mw4^6^ zL)L6%q%fqeKds>X5bAsVa{Zn295E_rWpGy}bhY!isy*nsTHY1I&J^cUC2D*p0`$EQ zm=CVFOBi5=7WKk1yEvQQU^ybiU~9FU03#u!0&g9Me}7ANvaH4Vrj*_x)*_T?bkTqZ zo*V436s^7O1LZ7)h@vhC1&Rnk3k^YP@Gkg1{rO@!b}0;2CQw1TKHlVWIuJe74k0`t z3=mO*pP9rWqZ0v#R^zu%as`ZGM(9+53X*irA zi^W7jwn4ybN(|;R@A@tfFN@n6FcoONgrdb)<9O6zGvZvm@h(UfN%(lLBUWIkl03-{ zH7HTo1B!s+?b7aY-vrFtjjZ3G|L`xPIX6IvANU@8z!(VIX)LlDkp8cw+zgGkp}sC$ zW0AO{(l*q5q?KDJl6LPe!5#j(7Q8S0r&Mr)xG9D<*hxQETDQ|#j6Pie=4ZAS6V@$> zPwfu|Lk9nRV35$QlxhxW3#&cG!U;gF##`$U)YK-LVg^i6UVjpfGJ)a&7akCRx z1BKtbqd48u+1{>$DA@4>Oc?%R{ie%FvaN%0*xnRl+gpcHGoHgAY=lDc(j^$t?5;c9 zXI=}FRLEd}Fh|>KO5Od8uBYWJcjJu3FeGyJSB%{=eDO>#4}q5gI&btwQp(haUZpQV zx4Dkp3^`bHX$f#8;sDi1@DpUZFLK5ua}`ITj|?qEgf^(kdsfTx$YBKq?YfPUc64ZU zFGTaW2709LbBTStemBXs;k&2g#DQFfvJ9J&E!<7*6pT4=*A0;rZ@Zz*c7%9+!Yd00v z@lAuqC>1Tvwz~71>xNsHiZeu~AD^|la#|O!P3A%T$!`ks=pQ_vV{2*<=$=7cE+D;1 zL>OuCTc|@AS(On}CquCyhyID_wMsyW6J4zqk+WK?O|B{_QKHA8oZw!%!RT-3yh(Sw zr)rSXhYGTFFIrD7uQ~|2XerE2i1I6hc!E}{EzNqm(77V4j`@~#!~B^1LHar}3k1$Iu|RoM5w z5`q*xjwMLl5IaMkC1B-!`I*1($mB$(nv}u^9pTKcd&(cgW|oQCCe>@MQd-ApeuY7) z#A<#0{-KG%GtXm)gagcR25utjnw^qV4*I_Ei3$iP9pZ}!b#GK<)|D)cAejwyT zBi3TiNNWjMtP&Y`OXiX#{woz?OXj+h>vRhpeON>9&PSuHT_>2A$Pk0P)RcKYC;a?G zVU{L|yjZ2V&araCVyT^PO0?!0J81?CPD%O_8TT|<(Y$H03(;hRQQw$XSBS;c$ z8QGcmPA{6H9MJL#+a1zVd@~WwdvGL`SM4&SV#i&j@c0Z-(13AU;1wtqXk>uh+o{aV z5CMj7GWc3xrTSry;F!>euOn^SO0n$mX7wR!*K!uWuw6o@b?O!F#sdu4vDnUR8`Ksn35Ep@C;c0C;kl?7$W4MkcD%fIDoG7P|6t zs6xGG9CrxCNKS>WD550>6>#f)l*vPTRsnG0z))My^r9fsUFyeP{Jf{UBRI%I!GIo{ zf&uX75&1BZ4Aui~xumnsM}k87D;Cb&!QHDskPuNggdyejjx3UnbAKyq$2TRPC#?jt zEn9SA>0z&Kxce~<=Dh4JY_)0=CZru4%)MDQdAb`~!zKO{*->G<`M&yRg|pVu=L9?bf3{>8vhYJ;lF#yuWpSy98YK zUaUqHa%;Q08%OS|`sbrhmu7CD)`c+1Lg&V4F33iw#0*SZOkFMFN6-Eg2e+G9jwq4$ zknNMVvBjp6^Xn87cdjM%==vr!O-^7+{>iBdq{qJ3un#CNx$ z{5FMPlC&w0g~4HRH?c0s10z!nXx6m}NrD{Y z&RK;`V>pK{+d8=2*eA91b^D6>d@8}mC4|s|BHQ!B%!k^9edTbbNE<0b^L|($!oK3- z=Qy7=J+oT=P!YrBn0ZZKu>aHl(WJ!h_d@XgRD5H(OsseXg{VNE>H>lcOm*JCmW1ql z0GlSdTJU#s$~mCkK}nx~SxTlOT*Bs>&zDvU|Gi9z!R&iRP%}K8l>61r0Gi8N1x9Pz zK=NB?Hr=9^_3yw|;?Mt3fJ@yBTEb8P0Qh790Equ@V%Tp$r@evWe}?=c9;?_*wuGG% zHG~6Z&90I;8pmEbhRE*CYTTOWSH{|rOlY7#1}z+0>k3j_3K_07dq01l2q+a}JxKZp zdm%g0Q-skXhdkBBN=iynqsvVS8sms2Ts96bs;4Rxwbi0WrMAZZ#l7wxK0ZDk9)`EB zQ@X36ED_ST7%E-8lv@XHtLVgsHz7r@tF=%eBjKrfk)Bh9zIae-X00~q6d(aK@Gp-* z`(N0sH$hYZvf{UY*lds4$p}Xjk zpH)#YZvyt%E&e!5ws^7-%)Oa$pWctyc|-U$TLP2~l1DZN79azz=x&!T`sMrbLdIGF;(q*Usw51-)N-kp?#~fpbX0oHrzH%g(-S{5NhtTzaZ~i^Fq34q@>k{D{uHgN1uA zDm-+B`LM(#-|!BLgB$H83MgzyMQy+ctM!+N$!`~5I#EqtKe?xt2k-UDT*iI}*!#M` z!W);t4qJi&IE+K##VbayzUiGNid)d5IYzi%Jlc+zJ zM@x2Y-)(El)q_}s{oX0h^+)p9p)U9UAh5B0*YRYod7Z-XqikaVl2G!~5g5~bv<5JY z5xV;lWYeNm{qlIO3|Jw;X$=c((F@?l%C(y)SBQijG3WmRA)nd|>EZK%`Wp*)dVmKn z4IJj8g1Q%0vuC5#wCwyupYjL|r~8F(jlN{!xs{AJC@Kk$`_eHq7l*XleJ=8 zGTqQIQzv!l{!R@mK!hy+(uXGt(vyA$@6quvmNcv9xicYDD{BZxt_{)2n?9y0ni2qv zbY~e2lv)q7m+r(q3`3(5af!C)Yq*;VD~BKV$l3);A*`N+<{8_t(i+PI?AVLTl;I;Z zIGc$p@0UmZnaP-_NzIl7Cr~Y-(UjO5O&dewSqI=|Xz~RW0>_^+x|j*1ABnDCSYY`j zXAeKA8@9G*f6pdETorMVrX7#*Nhv?Kd$OzA^~c_;#gb@~OBaGvkf7G%6S@0#uOHxN zISUZUYNeUgCV=dLvb8Cjb~4NVVH>V82RBf59_sEfL=!*Y5rx~t*wb{R&g7kiT1#Bd z^I)@HvWuq_ez&qd-ma>rU5r9B-)BtLDVq_^$& z$Ey6Q+Jxy-x{IgqtXHkn42-K0xc2dWuQ9Y>cJWAjV9V!OY%ZDg&HuyLI|YdnwA+Gh z+qP|Y@3w8*wr$(J+ctLFwr$%srq9Hjxi|iZxo0Y(UbE`q%axg5E+8wEx#oW$n^SYd zx#}G#MAt`#MLh>Yws~Z7jSi$*A%(KbP!)EGC!3+UsYVA8H8dNWCb$_3bhpPk{|h)G z9L9BgXfzLM7b6GGb^;FLkkf))0=La`(ULder{RYRJl0OZ4q3e5@3`}YlRVApM1vyc zm+8X>0!!T@-?t3&p5FBz>Psgql!7=pQn23L)go1HFrhA@o(-uM32_2*QOb`Da?=5( zHdB2U>{wzOfsQlKemzADZ3`qaNn#M^yWLLsMCsla1unsa<*#C#AasIN%y1EgN-1C)nL8L*x)6 zb8Vb z60GO&FwMMWy@YrDvOeef0 z^?H-^aH90wLHq%e0HfFDm9KNRhPn<{uuUNYjZY^}06d1*m8zaKdJ^3bQ-GjP2Rq?O zH_3@6<2>M{NOiiri*Yq`VMIGa z$j?`6kbC0y{*e2F!SpYGuLl?rT|&!8chE2)`IbFzC*H4t6p6(+0MP(@RTR>)BRE^P z@K3nMn#>A9votg?&=7VRW3ol4P&+ofVVE;;b#TSm`P9*a+Rd0(z!^d5&-2lJ*oodu zpAD9@7*wDyAuq6yJ&l~KDI{Zjcn;FAd}jUR+;4vEG()iIw(cE%yfm^=1M)Jn1%?)P z7-)=cd=>x|UI4Y!9jv+ws=5f`;6|Nt$cC|Q{t_?2Fd5Kaen2D{|7+8jpHs^Ital59 z1wSJAD>!g}cEic_;Y)|SKEu1PKMb$MC)o#&VO}S3&z*iT2e89mH^aCDrVTDY1S}qv z1eux3P(A^A$JR+;aJ)x}+X5BxS z_!ut`pL@?3#Mx8c!BBK<>$NJOjBv6MeJ)T=Z+?uj;TjbGWG9gYRHBU0VB@6`q$d5% z?W0+8c-k2ncrxEO&_ZVSBmoTepm%fPZuD~VvBnVy1zxs{_vrBTK_d@AbYV4=2O_)4*2}x z6Y^k3fV>@}ii&Gg>dSaTs#5A9jlyjsUx|G|DmfOR#cpdUrTDf?+zd=&WMl$sp9goe z1bPk?_>gVsr*7Q?r8!pH$GNdj-wO;)i*1Xc0eqMPq1pMx!UF6ht_w+ROy&+@G!*$g z((A_X$WPG-Kb{Z&aI5%Co$j+jyI7$LFmu8z9A$b!QZUeNQpil<9q2KXiUTANF%u6d z4t-e2bSW(jf~`a=>4hgC2f1_GQ?z)d>n6q6gziBVj>!=Z5qxx5HPu|F=$z)FFy7qN zhi=E18?bVrFc6jJ0!G(^cp~K@_)Wx&a>~R#XgPy}Iu-MU6WFoHADSzo)86MO7-<3c zx7bUu+d(D3q#4MRT^WB>gdE1eNhA{R20&IHseJZrMcwqOPEs?XSwK_2lustP99Rxu zp%EO6OOgTL{DY9uS^mpaeeHtYk0}DhsTjcL@gl@;a!5I5vPjZjnM*d^lA6paXOj9m ztA%2gXQupAXlD<9n4(EDJ%t8hi_||XkpyCubH@@~O-Jed&EqnVrh@pfUptP%>dqL% zmG$%56jb`jFSC?1g&r~PghQx8uv!>}zCMwhPFlE&A*6pi&(>f>Ad&9>E=KVl?aw0M zOty1#aj?Sch_IGBOycV9(0Uk?FdA{GV&+{`EK@E~6eA-M=lThpLdioF4hv>1qH(7@ zQW&%lBgC|kG*xo(2bu3DeO`r^*Bhfy1T?c)ptBcCEaiETsbWnJM>g15(5!b{mI73m zh5I4=SAkho<9A@XqAAg!EOwQd|Hb2DtZNukIHLeOS@$(EVv#=>#ZuVZ_LF^T9Vjc% z!4^DIX?7Cq>tDNQ!~f!_Lue4#d!w>;b4cNzdJ46)>$sB+z+LK zKozN%c!YX%X^)y&4wxL;L8ha>$E_>orpoH0Al=ZUZW#F4R+!Z)(_giBR@4=;s_|?v z8P|bKrlzGixX*o^T#Es!oQ?yi(?(PHG6XnGXsQ5PHaCBujq=Dx1px3T4LhEtIZ{=w8L<+E-iC!;0gI&~Ea#8Kyz;~HrW6Cnrpf?PvQ?6j1s$^M#hB&# zlbm#9pe_^NkXl^!UVs;Foc)%ED(~^I0Z%CKP!1ep&s^2eY4Yu7zr0OIjyVwr)4${w zdLGsJ=45@c0eT{cu;5OAQ(+xVlP!V$CI{&;)K{5AyLW^L2(>^>g>{8iX|=6{0-NCulz} zk}hPfe7f@o)K7`s$v3NF_j>ZaOs=Re}aZb|i6HVqe@ z_-3cMMhDSKv2cS+e4vgPX!Dlb9LHIM6QwPu;z=5F0$Az)uvu=mRxa9Z{EW zQpuxdXXpy^`r}d10N`yhU;Y5G-s3}I$%T{3P0z7r80XRrp%3`z8hjX*UAKz{=!X^wlX z36&eKd;+ps{o{3D_~hEal!aqngNZ6Q&*IU(tt8?MILen@u}brV5y+Z>+bdpd18Kgr zjip)I@<5i5o<*m8Amk=b7@t8OWyenrkv0s&JI@w136_~7b@!k4}hUtWClmQ3#$Cp;s!qyIZ+)Nn;2xCF;=vT&gcrnj3Z~}ZU#dqL3$b7u#P-gPq)xoYKVlbksU-H zWS=(RC**y|@|v(Pz5IoD zs@Lc7Xu*K|NNydhetv(VGRto-nN^wz*B_v_Xl&L(JXOdb0|JE123%C?)W{(h7+__! zX7*IoJE+ZUHu+Nk*G%C`U)wOXU zBYovQ;8P#tC3knrU-dx{ISMtEB)bPiw8I~6&Jp%HKEG(ru4`n2Kg*5nS=Et?DA7b| z%`!`bPh%kB3Kat|Bu4+_Uz}M>&9j$Xa4aWVcZnzbnDr0a4a-*-H0sz) z73B^NR)#!&O+_PockTF+qSi|mY%I0JRp~O}Tn2?6!;P{$n(lodWAA^3$J*>b_v1M! zsLT^Jc1`*4X#u*({*QD!2bf7sDf+W)r^fc{8>imZ2K*k?w#w>@XZgF3&eakl$(SvC z%$UWsq9GsM9!RLRFC=bQNhIKfQt30=P zxYjV(;iUs|7*`>-Lx<4(H{DlrpJB#!c;T;UwS4>HRS|+HeS0!}?#bvZ-@AHXu}FsW zt)aZz1G7f8SWsXB(25|vzBKhllWjA@9I}Jf$=zkcSj@MHiTMquZ7%&M!<|uHH(1}B zNkuoW|5k3X`@+2S&S=r&B$4a&^ux)K>j}AGM&0c)cN2zrMmIW3o*BMh7^7X{LTvhB zmvtuJ5Z&VO>A?q{<6xkdlKur|96&uE{$&gd<#JPLGi%TJoVehQ1*<}iYhjN8)#ckW z1K(?U^?%Bb_`6ArhRuw~xNR)yJ)Yj3z;0fe=qJ!Rj6eN479+HyF{#J-rC5r3xPT%= z#x$zS=6=qs?tNgEW)ph!lA=dP&iv|>(?s`T6%sSpblXLp!A4?d{S7y9V@7QU^j z==J1y$6&~wr2qX@4gee-`sl6f;h*92tVjb^+uksyd1uLQv1F1Cd5QWF)m*wHRJyP& zc!_2kXafI^AIvlv!MWx}j2z-j4R&B&pD7td^q53w?eF=(kkD2MT*6H+z@$j_mR}qR zwBQ_*)Jb=n}i3IP zl@EvBi)(42Z87Kj{@S+5Z9v;D5upOLgZ-}y)g~&ozKn(|Jq{_2H8htp)u~1#>@RvW zV?@>*H^~(k`$KsvW|c@&@#4_zC~7>MJMf!H(?2y*6#FmG(br(&nVVP*{Yjv%xJXxZ zRzd0=kN8t+PYMbF3w2sm1TB+@T|}Xq#<1C4KM@*7lY zs4!%V`<0<{%Me8^I3RYU2>ZTyc5k&1^=6dE-`KZ!^Bsa_W-OuA1r)3=LVjY`RomHh@3lq};yLa2y%KE}O&Sf-DJ872vuzNZ}*DaH-PT7#>~eC%*`#3ZE#Hg^m2?Zn;i`MJp~JVN21Z#pOj z01ad>MlQA|f>JgSvMP6~BUf@O0U*wE5vOIlHLyr5ut*p$SRQzbld3G?H_0Td zXj%@-nCwWb&}tPz*C9#;@UQCoaxV%jFcHe&y9b@j%=7OxYV;sC+a?t7ot{6B&~krx z`aZ|#{AknAp`(kNdi3(hL43m*!_qLw%lVAUZQIx66wOrt9wiR`fyPLDxe=na-wC2M zlD-4O$Rd#-$|I>tmK45cntNehTl_-=fqzUQ1SvgwnY_!cod?yePqG&&AD#1N9!N6` zB20CUAP3(Vx86u5!Kw&u=-f1@f^ZG8-?z6BwT{kO?5wwl zz7Z?FgLqbjzvG|We6g0Og^=EJI125F`pPrU)`}q%dBI;Wq!u(9i;*b8=XPSiT&LXI zP#OBd-FBUfg-)JvV&NNYc}~t2EjrVGf~Oum58HDWU(&g6O5%KW7|;fB5raDaHi zBj*4)wcjZtp>jbg={AK`Q`b0ZCk>vpDZrNnaKm+wW- zfhsdmypj|TL9zIbpVHdUd5Hv%ESRRHt;96K#yU(f|Lf*eY@X$UfZk&I#ph+~q$5(4 z`XEnLh16I?_+2?QzWO((FP{>5K0l$eq#C)YxLL=lkjkb?((k zcdy4{v(HSGcPK4v2{=oS{y2B-Yvt(P^eqCR-iMHfcsF;H%d{1BS*JhSRq%~SNVVz< z+N2z2scfgySL!9yD(1M%4|QNgl6Trer;w23H2|!})5tvJnr+x|n8Yr=J`h21A8on1 zOsaW@aGB=rq~3kB9mE~gcps*UnX&UYON{>b@UY5L+-mkNk$YOw!2TeavvUwts&ch~ zmlIyq`$1yID0M(IZDv-ap&tGyc^;_bCiWTjbj`Dv2o6Uv|uqP%{_^j2o_YpIDWYH zcLG2Xw=}1Dyf@^^`t0m0A^7sQ9vd9W3G}cVw>Mzu2;z*CQN*krjZddD1}@v$kydO{ z%*O?#A8zxv#Krzh^pgsbAX6Q}|!5TQw@+b1|{>a6<@uFisC4_dY_T~A# zqDnqq*x#4-CkFC#MXr^ZYyRs!Eq-22f}Nb$qZ z%{_s1U3LqwQkNtl?Bw0&B%ZB09*a?7C3ywWrAM&Xre;M!Sz<0PwVAR+8+ptr6)n1? zqWCXzxjg+2Qta1$IdgW2baCWq&5|HPh#Ibmi62)i0*}mh$Zoy3M9Od$Dr`Rv0i8Cpqkk`tx;;?C_?kK&V_i5w#zO&l@{ zAUd5w_M5iSWJy*R{I%c;*F1sl(RLpY{7iLfNGkmP@myT+D75Wu)KL?v)h6+|H=GsY4* zkWt8ww)h82`(I&MH?v=>l!0_~IT6~Buk%3VO{+Xl$0(T2f1Ur3b}D06tlXgl%7L97 z1ZsW|I4_sae44y8aE}|qMx{O0kuN3Z87h{ zzE3dh#21pxYGaL;Th0>-`8$Im6-8g!F%8%2U_xz|VHF(!04x+&2ei;r-Q?E4+$U}3 z3ntM}Vn_mU+r_P(XUV9CGVBCF&E(0@aoUrD#SG+(B<^kIG)3Fv z|6#aX`5`|P6)&6RI)R{BI}O^cuCP*fF$s@qLKtVch?Fcw-m#WFu?!U*dJmw)cAA+v zf5aE?;F%rax__Ne`a?8q?ED$sGepH5?$FUR$lFBEr4g@|uE|_Kj)|7aSDQ57<}5oN ztc-{8CKv2;a|_UP?Vg3M2LN=OvQnoHZH2+@z?tFx_!RZp;^k^a?%AT1-) zhPzeLo*~t<_1wz*!UMCbNEXB(WbG@1C+5A8zxtlpykYFQDKohWMHh3YZV~7h@;Uq& z4^FD#;=W!W@QiQze3M3G(=?#K_$V8~R03wQy-(yPCWf4kq@&7dY7? z6cDg;XeFQ-gZ2!%7hLl`U}17Rz?FkQ8SAwBbSN&ums3H-FunTMgsxaM)#ry~pOCe=Ag|%}bMd0HM!5 z9KK*9h5xCT+}lF&V*Q07=HHj*{{%-Cwoc9l*4F>~K}$(d(Q$%aadb+Ka!P_$l|ph# zf<{6{fnrQ;bds7*VsdP3Qc8_NTzXnoT8?)4Kv7X~ALu_;Z}qHJDz4wvd-iwr{;yy7 z|J1Ji_vcNFEu0Mutxf(HB>E_CSZ*>P_^hZwq#@B;KLP^2mlb=GQb-^TVv{xvHC0j3Q3XrVVpp{iB|}4N)@3%Pu7p0qY;xNx_}4Aw zr|I-3sE)7C>P%b^y|Z1yo(`^>31`$yrkG#V&{GbN=~O!h(|4>FW)^)v-XDZ)`}wr~ zi01m)w8U-DL)_iNc!$+_2`+jB!?L@^^ic1Zsn*`fy>0}K0>;2Sun4}P3=)dIUIu_W z>}p01vmy~5V#8pWIiM8*bwH|1mg~dHw>vfhjdPe`f#-%g5mO22+TOkf&0t>(cK5_A z`2p2d9K~iA4l#*V%*)^VAxlPw^pm+aPapf^k3uR}iaA zUeBzyCCHx1|App!^fKhJ@DP`!NbM02h_QBoYuv?hq<(U6*sWL)3|15zh1&7$*P zR~UahZbR*la%@{`O~&$LVZWGNQz4h^(UR3#QLR;)v$z0vr~7N2Ul`ClYtX!S#E;T| zEJ`ObR%wlK%71#8_C$rFPv1uKt4%f~nmA5`F6xH8*}NuqQ(K>LVSw$&boimM&2%=6 zzS7Cfd-F=rQC*Gh7W_}<*dv`;HqoyHQWoidXcPQ*DgM95v1)ajxJ5RE@9v&{O=TOR zXPUvVioeN{w7iAW%t_;13Ml;&)#@hBK+D$|hrMfJ&^0ygOVB=tSy!$dYoiVG!}WqEZOR@mWi~Hk zIag%N?Z)MeHLeYHf4@zxTpUrT!dA_%*kZIvsqv(adMOlcMTtYk`R7-cs9eS3x2u=2 zmdeFb0v#E1wyPB-vz+hqtZfKni`%re!-gz$R$t{Oh_0Na9Dwgm8)7tRq-}2mD&cKb zxp9=JLCN?e+@ftrzl0)Qh{8GyaFS6owgNhbPV`7ZCoG)0#jdnt3ZCw_@Nf1@dvtie zczwT4o}L~q^cdIH#_x_o_u|B|i8_0uZ`LX!=gA^@y?}GAkjd5Kihcg}5DUM*E1jlmYxFEvSc+nK930ZHCS^^u9b15A;uN1j!N zI9)>zXKfe*2}d%L;ECDDyE~a;16o2U*@CmL9u&~>StQvCk{|yTpmPd+X zo&+BP-zlLj1$dCttjH7Em6>$2QPE|w+}vu{;poGD;R5NXMFm41G6_XrSx}5KP3b|% zWu(Ytw#;XU5@GSuRp1vC$x(@_45d_%N*{WP-!Xq}B?=9W=AlMcL(UOVTBZ$7v9(36 zX37xbRZ2B=JB$X)lnw5mYV`gL?-$--u1xjV?iRJcLVFkrG+D2!-D$@8N$m&4wHe5O zJs_V6Hs}Q3^UZraVlvsDE|z#qO15C3n>BIoT%?S-wgrVw(df00q`LABfAhgSGY|Npl8j{ltCNro)36NJ-$WX1U{NxV&gV#fmeheSkR8j!SwK6R z99T_|u!c!{4!hsgSQ=HsPa7FaCfdw}3svsl?lC-8PH@;vRrF9QptaN3qyJB6bCLcL zFy&?4H27g=rrlPtxrhMw@2;7z;^~IythFFsy^i=@ z${~D-+y0~fqLMcY(OonVdb~Nua|!w}2D}s@yerQAXW(QQTnXy6S*%)!I8VY#XK7;^5M@kH ztENsvyCim0cvKfUmysU6&w-UJj}Qn}by?KFQpBLg5~6vf3~fF@OK1QTX@|nQFw-{B zIG{eOGuo{$QB7=-t#l1c?$`ng8>b>HH2pfC?;yTisoVTIR>4g!&zk`UyqK}?^XE;P zT3S_w&IbJ#PeW_@-&lPxA_QP(XKgHNp>8su&O}FgHYW7RFq9d zaj(B&z+tq?UD9?q=%^0%SXZ(G`~rSKkP08{*W})CW^>rv`t=oB=%GJW5UK6Lf;)xP zJCP^Q@9GAtGlX5YRE3~ErytD1i(FU7Q-7?;Wa>V|t}@Y|Qo}9@3lEx|VwwN5wJpCP zi-G>@?;@iE0PrhC{GT^H|J}5h;<0kt5KY{9q9$8hN^lk*jjLiW*1FDKQEjMrs-*Eq z;vEX{AB-0U0aAw{h`8hI`FdxR14zzp@2D_Jp+#a|_P87 z?s=%$h$t27t^e^1;ZLbX&RwaFdy}MUBrJL)6liNQp`+f z;j~b>aci&$+Dx#4yDKg_s%?)dlib#AN+_gYHkyIT)Z1n?ry}~VT~&US%gba}XL@L` zYG{zW?RSu<-JhE4q;VsTY;wnnG#7%BNU0p#5F35_I2YyC0^qg@B8>B{t7y;}lwV8C zjdqaDq&`QqGwMA!{&EY`bBiM@iq2rOFqf{~^uaj9DY{!|@`UAi!)HdI(RI3dbORoO>JLi5aA5%6_LD?B4 z8rnL7TY4g^DW=-+Bvq+ZOE!fXLnv3tR*A{J5A^MptTFL%hoRenSsf)yb$ew6Lo0jv zQlRSiH)~KDHT8y#Z>0~TG0-e_Z%Y~hO2c$ASqjO=Q+d&Vhn1RENrDlAah0ey&b4g< z`sqh(1$rf9e*^Na8JZb)l|_Pt;zmnFCL5E% zG$>G@1boOF!Zwhn2I~HjA=$82Qc0j>^*!lwa+rj{Syv7B!`IkNYWB%Tn9m3FiwK8LuQ&nHl*ovnZ`1 zX#VsyXQ&5$>Q!E0mo2BB0r(n*F=j;5d$|fc7_%89 zCgbtODo*5zR^Ud98|G(aDO@t{#E@eJTqhdfBcCOx@cBm@HA19R0qV4S)jvps)-LlH zSQ_iQ2Ii{%UuG}S|CqYL4w@B^jn@Dzk@FQo)29i@bhz{;zHBst+~n;vopF-QB^8!T zNH4tUcjX9?052)U|Lm$?aauFgQ39RBz=+%G7M{g4mViTQq#zfME+Q$^z8+u@ zM#~Mo9+Vz&7_Nk>Jw&_*5{wTN-ooD+5!&?y5iuOdW%6BI(wPQHcKC*Kh?Z;9_N{vj z5;mic=-rt{Y`}1wy;dTFxXdS$f2Oxv3F;u`sqQvk<0NN)0KEB?`u{O*+1E=)#c$m7cM3!`cK6j+rZ63a%E=n%9c8t4G{c2aA#d$RoK(H6cnEpDD6k7$_Ei zr(kzOSOMms6*R+9-zo$D(pO%plPdarr_y)Pz>p{#%2qSc5W$S9wrlO*pLJ=R1dvOj zGrU}ql8)`M4sJP2kWF6b2H@aZb8LsXZw{u-1&V)-COx4{gJ!r0phz48%9(bmqWGCd z)+#4{FBCX*zIBGTc*l(R{jKkg<1uyH)(LF26LeF(e^83~$vwZIYs+lUo+2KgPrzGQ zq@s8^frirr1QVi|*MsubPNCZvn4U&pdr<_$3$E9^W?8v+WeoIf^)JL8a&c4l5=lOY z^-F+8fX^b9!aMOK#Z;N* z?Od{p@azT4d-<(!6jpNbN>Z58KcQYuW5)1j!G#=%`V?y^bsmtKz$=3~nJ5O|$mzN} z+Gdf<2tjQ&LWR6~1T{hB$nm}~L7G3yHtP&!j7&(sS2Jt75boP&Q+&YU!c`SK!1-ll z<3@_q5Ml9rr=Ppvm%)T-rkc0C08j*?2`LmS{Q;RC1pxxx`lf>GNVY&={>b}6EjyTR zP)%It0`?rqPA{T@R>0@1n6#q2AxAMio)C#wKfaHBm%Io#Jb=3K16s)wdIY-)r_iaM z`H>n}G@e-#3%}g;@4SD7lx1-dg&(jTLF}U=?Mfg_z`7|0>f6g+p#ovk2wi-zcA>nD zP>TZ6e`yGBnY9svRKxq`JU%Y(YmvXIDv@P61F^peow>bNUP6M+4aFSWLS;6glMuxD zOXDMHKxBomCu@)>*t567dCY{{M*2l{cO?Lfl}&bq@qngqRQg?)S}-XTS%i3h;65(y zc#kGsqtt$UbedDLE!xQG2zIhrE@;aok%9Wyw;6Fje19C}6z==w$O1~cWC=VAzLXp8 zyp7D%33@vmhe6r7K!YaUG7I9^?PZWmT48$rhb=LVOwS z0NfK}$MPzB&HD{|K{JE(M}vG89hMlwBN#7WlA;?|?(UFZt%#95L-~6f+P)x!=7erh zfIz6!!@D3LK`GurFZJCT7T$>K;Pj#pDPIx2FP#0K0Wy~{`g}3E;kaUFMTSB=*U^No z89Ta9>pVpXut0-oEiNt1w)wc<&8_c+S%W1zw+VG{$O=ygN-#a!^4{cm0EuU9jprF8 zz(2xcxnH@hP7mTS@{?v&Pr>t{0F0X)vLKzGPaX>X9wc!tSlG_bdg3Y#+>Mf?%IbWd zA~L9l<@be`uv@zSnO`R`j-dww_06uGN6buZGqZpK0{1fX0puok%2qAu0Uf8XZQv2< z00G8XW8O7{I`PHUfc^Q^NfpG06v3D|OO@uYJNkF@tpKp0^MCU!9QPTWpY3Iz@7cKx zx~n={igH6FQo8QO7^6tOjVn+qz{IG};;vYzDMGWQSGISmAb+)7uxCm?tB@;9@{v&X z+e(ploiMpT;7^$vHpnd#6Df0iM!PqeLC&Ir<>`tKCV2$SMb3^POlk&T4m?txm8(E@ zlvOl{Q@W-1o~xxR(5!$^|Ap^lqukEvLY4b|O%^?PvBUdO_^{{&$mY5cu8SO{>ljsK&B>f4$=> zhPRCrwNU?RHq77zJa96Npj8vWaO& z4}gkICK;X>BHYbf7@nqmOx8xpycm&2faMG@Cd|KsAZ{og;vF;`Qb=7dt-5k*f=X#$ zmHg0l-E5O7nVs|3n!l-W0^)hMXkBegB1MJ#Z|a}7ffl)*rx1+~5=}+3bPm14G20BX zQHat&V~~G(N!+eQHwXgenX+9lSf*DFJZG|2F&aXt9+n$sve4?J`ndR4{TXxr2;FA5 z#JOOvT$pkQ!n7KCec-u*@lFW()l&^8n-O-j!=A z);8zWL{IPP*Ry12{ArtVYVQ+(6H*4w6qkUrG;;`o*e^+#rw**PAC~DrXf55J`8EJc zh?qVkvf+By-BG8Hhz32ChZ`Ua7ow{XpvLO5hq6uJh3sqNqRV}ArKw{9ATd-?^~!n! zIU7#5UtyyI0wPFox;^{L2u>B;>o6vK4eAP**4K=3zuc%kE~)})P>9F$FR1jJ<J(?c8O+s(+y~Ya{S9VV3Cj!mOIV`Jcv=xbxqGhw>y60F(vWmn?>uR4mAu&)CYeQ(W zaP%(0R5*--U`IFH4g!RRhDR2~U=B9JAoLxgW^mPrbfhkcOfKw%BLb3~&*2$qNK zEmR}g6hSybWsB5@3?hq+ux=TjPPJe+P<}F1bhFCy`d#TdZm&`*JIjv#94I@ci={v3 zsd?#GH1{I2)&}uH7tV^5Zb=up*ZrdwE1-RBUxlfu7JRp#rO*Tehc1?ZH#JW{SU*@6 zMJ)G_6d^vXP-<_aV^q1u6zJ(8d?gLA5av2~9CBhxzmM&#+s{?SR> zh4n8j=;u_m-jzlm6<4j^4Xq#CIL!QdXpRi5 zp`W?OIKquDJM}<7OEpy?m0}(AZFkbcyb&dx`k_SSzG<&2q1pkXkjI@Eg$3?=fD6U9Uma}>t zh+G_E3m(Q2l&igJ)*340CK1M{k+3?z3zF}{56=G+>c2ilW!ufEk36DRPaNYCL>;|Q zik9xOM8iP?zwR}&(0pA%0lS(CB0azl^zSoB+D36nvhKN z=0*+6Yo4LS5vJWl>0ICaOlgQAU&$*qOdQvlN|juDOmIi2Hp?^1@XS0!@t1%o(7pZ4 zt^=q5p=h(hh+Yv>+J#sH#WSyGG}2PEqBd+F)Sd?Gdo*Y2`BoxCJAZ*>{vcxzdX7Jbn7-5nNEJ#$}fpLL1yr)rG+PXn6Eb7`RAH z5Ot4tk^&3Vqym6?+r~!q=pfS9?ylra0dRvYkEuAKZ9S#_fRUtIjfF+$_{0&?=D2?J z+E|XBDIet!2Y8l%*S^MiJhds`Zu!J}9=oabdnGj;hhW^hkQomXHQ;ODoif@eK&X1r z$==?GN-*+P$=|*8D@nd>;XAybnCT7W*a+fH##p|?Y)n?(1xbJA=N1WHn`G}+HE|X; zH22ZTQiIJaq2!lpJv*uX1G{mJ2U&~Wu5(1g-P5N=+8xbfY1AswpKbb;yc zgObmz7hL34BOZNBfMql~@MO4^yt zxtu%)XajyOfas{4L1ED>@g2fdqswCDSjygpE&mI+)dwA1e^3STvPW_uo;}4Yo@_uk zsr9Qw%V==8W-`PeR47hxfbuU}jpJl(%T}Zeh!q_R5J0F`td(KAhNWG?Mv&TkN+RxO zniascrax)v9hO|(I&<~5oTC^tKCOYNaw@aBNCS_*+WE9u)}m!gSZKG1G$VTzod-0- zyP%>m+%!dLkOtO5GiIK-Ui!Gwb=D*|8Q3D=W&A`w*Awf#l-PjJal9%QKn;e6>M`IK zBVF(*Y*E{->OmjXoM^Wbp}JuU7=yV+_eJYMeEM?fFp=bjVVUv(ld=z5etZBE!rj5j z5)t_9heeKx9vANzdM2ss4yz#ShfM&I;W{TQ>~8s=nvx!7>s3LN9m34PH06Pq}nLGV59RA^hN3=Xk7> z-fx@gIG2=LsVecJ@+u6k*T_eI9IvG}@Ie}l{MGiDK(Rl=cHgf0E_$L2pUUoeWhki5 zE>hrv;li;@Df>OA+h)#)xj(Pp``JGaA8vMExpvOe#UGf%AhS9)20(UVJcnS-y&?Wz z6Y!b#haGsgES(q_T(HVWnKNl1>{yw@^R4H@+%00BIJy>Tc&8Rj1Ul?Pa16NC8iOzG znwUgD48<1mhf@-;-6oueuY+`ZOmI}SSskW0C{8oZgmy1Tfne7nq`PVDaP@E}}q1eN9$hJ(Jb(`Sy)26m@Lz5EHzmdG;A}xzoPBs%ZE% zP>Nz=VQgy^!9X?_EcGG8LQsjK#VNQKTE;Tqi}@8Dkh<|csrNEx-bg$SHbK6!A~$G= z?9VJQW|{CP|6`7vz)f3uIQW zAmKiOhxTHyTH<)M3{&ujKwLD_MZxNH{sXCGL=d#e|MD|cjtuHWpYLlB$pmI?&j8SS zLvgf_dR|{z-mt|7o(8p-7GbiMyh5l~1A9L>C6u;B^8mifnmIfP83qN3{$ zOj@O3;{LHs!VaRrd%jzTH<;X;)!kt}melCDhe-;mBLlWwM8gDtv4vYeDgzg z7K71o;83Qm!kMUlH#uE?9%r+H|C4@i0;5UxifK*%}2Jbv?><(}a!>c>VlW zUh_x1-6;`Afkx(-Gox)yq}nx3@}`{Uw7$kQ+-*_NLMykxN_G`{_J-bFVXy01Gtj%7 zg^1c=r!#VH#Di+kjE+TkK8#Sj>^KhZuMyKJHuYw|$y&~}%Ok7cyL&&y4{%c+yRb4z zXSb8SZ)eaMQdgacA19RZB<}Rc`sqUZrrPy^ZO=hXFz~j-kt<}ZMBHzb*`Fw1$+AB_ z?>9d{RZds95NmTV4N8BgoPeLsGe=%0J^lZD(dmfdVto6J*88~Lovd{7_|N~O3jrlu z-%G+*dZnK{jDE?cLP0Q$YV{>g8uumV9&zCJ8vkE(onv<2 z+qTU+wmP-F1j&J3O>d|O(Vt5Aw^L=m4`O@iZM8gK5 zocFJfhq8-Sc0B{0pIY7(z1d9`ndLq?09WKXuIF!j>rtIpZJ`#O!;8p4d zg_Z3%STe`HFWsfT&~F)}BXYtpFmAhdO!&lGV+?Wk8#|-4odyz~hOb~?^o7AsX~Iq$ z2q}j*VCag&a`O;0?QmnkHLT7JI;4-XT~}Q&^S#^uH|2J~zyZkVpG3qS1_%iM|N6V^ zWa{{TR`_bvHewh4mFH&F(`)BS%U?mM(V>a$K-4S(A)B={?U*g$WASauq(fibM;em2 zWi{df43?KH=4P>RIePJN-b5*>N;}Xkq@lIe3bCs_cBa2u1>qLofynnbE3AoPFxu(S z9Qo^AYk)I#`ZMS8)fI zyMy(-%7e&m^yQi{NHP%B{Gn(=qhvP`yUzAu&QT*VjD>TIs(_s5)4K+)R#Zp@KXmh^ z4cdqO;C>lL%u|HT4Lf>snL8YJj|@{y;*ORcvQ6B592*+l+BW@shsim8XmoCoUwc@S zbYoUxyka^}2Lo-0)`>+OsfTx{P9^AYRs13EP}QRXjUh{d#v~Vb`VwKqgOR|GWjG=K z$V!V@gosnKM?q@qiz->uh zlaQ+v`V?c^IFyg1c5YOd@4u!5-n~xJMrafpgy^I!DK)e_3Kb+9G-x}`btoNxoLxR< zy7xv-hlo*rTdY=YTKZ3;LA|uegodYHzV(MEzsvoemKLa!`db->sed>8@S5iX>Be;k zKcV_(vy2ZhwM1Bzn~>tGJvt?<3sL$P9>wYS%3(o|P7J8pVWM9@4`W|HKEjNMNWOco zD;>hPeOej7G}VrV0-)@LdwdQJ$+^@UM{-mUj@-I^<72~trH~NmjW&?5TMQVchT8CaT4G^<)=8&` zWzO zF_7c~{J)3wtzAr%4H*bXk@x@QUHH$i8viplxH!2QyVyJZNBVPw`>z5ra>wI8jBW)> z6co>yBxjy%h_ljSEvr0g%wx%t7!(9Z2muFyLWrO8_}uC0dI8`ADLLH}=TMp3Ah&n* z^!N(I=AL}9P1{9U4MyrJ-{aSHHq)F()?B3OsuW63-lP9iFlgaCfOpAm6kdZ*T4C9K zR99&?XmqbRsU7l~YHts4^mp2>_xtNOfVCWONw3lS!YVY`>TlJ1@geG=2|R?BleSjb zBhvvj7+a>W%yY}&FF8qVxq~1Hwl}+~l?v0gcH00gr4H%{nQPtE z9?)G>Ww+J)rj%6`(suH}gODvd&Hw(D{TzAb;1G?5(0X9Gw3kaW;|09&pmfW_{h&K< z8x_eW7JT3&t+tC?1@~OL5_RTz5PISnH4H6sUvtq|eRDgd*)ym}(dw#y+>R+zXP*#u z+qmtxya*mW=oWF*dGn5O%WK%>+azEPNF}+LIfuZ`NS!pNBI?ip3Qq7d?O6j*yf|#>b+ajCM8m04FlBedIlQ*a-1tFI0Dy+buMX(V>V=d2vF> zvGUR^hlUPVf0>!BO;Z4iFZ)I{t3TAl=#|#&%5SvV{d=%qhW`CH2A#`j6C6(Oo8(kn za+}=J5Wq4s=AbExWgYU!FRK>`rvYO|({Tfq264pEK_!$WA z7@zL7ylCUSc%0Jp8bp0yxBP3z(}qwU{F5k5;3*pDiI6$$s}2-&QFyr3i@kdHx|DQ+ zxg#K(`~5M!fLX`T>wEWpyRS>k+*6B$6XT+KPsR`sUI>hTd=qPfs7*s7@%LkJk}#2S zHjn>J;{Ln~lYw6E^Xqn^mkxeLGOxG_)q|sLmmL)&m66Km7DmOMuj$||s6RZveGHs6 zAa8Vu-^d@-G4VRNGlL!KA2xi z)g9(Kge%BBvg|yxggtO2*>a@K6hH)_z}|wx9O^N7hkOr(Vg`5%t&Gdt9M@pzjHm$#ojQ92l4Ez9bM` z-$;@S91t%EgQQ`A^ebxyR_r*64KIt9L<*C-FP6b6@-Q8P{V#vSwuxZ*YE__o2}-Lo zI)+&&ES+h~zip6qB!>V1FcQL$;(j^hgL~+yXg=YN@F`~W^Rtln2Sj%lp_YT>#V~{d zOt$;$UEbarU(ZYt{t8>jFcT-9m}6=Qdar(kU@L7P_cxlFAv8`H>B;36q`*kMz!lu~ znbhvie1!;P=Eq?exrIb&{{&Qa(>5`uCzShDgi5APne$_zvz}_dv4b6s-y|iM zG??GL5jF32M5D=CV9*sqjlH%)bQ3*lD35}fq&6u=ehueQ%yENMSpT}(T7qHB(2}5> zaf$q&g1Lc~(4jc^+?*37zjW6NyJ!qq!*jUmh@=nJ;E8}dQ#5bpv^1^I;bY$N$+tag zrj6h%T5|;XV13ATItbShfJOY|gn(^=9B-h!;LJdRVqHWMqK2;mU#8k!t zqHX^)m)7quD&5TE2rs5gqf0KuAVd8uQfh<#8jzV>BZxPEM7xYB#aStfW**l>#Ee^< z>0|6*4Ht2){r9@g@h*c?_=GZZy&SbenRS%4CQWXg$mqLPiQL>U6Kth;^j|ozYEW{ryW^Vqj zG5JDhfau0%eR_Magr3g1i-(~AkyUoi#rwiqfFMjnOG_<&9J1GQe_&7t2&>8L1lX-!5hFnE5dqCiQI?l*GD3 zHDYFd@ct2RstiwfnF}S-Ooy%CFw#iIF5=I`m;|3jK>$oy7^r3vHWti4B*if3)x7id zyc&{}N*o#FpMWU2&K7|HCfWyE>Hx-3gcr^08Qf500ovo$z$ zE9SZZ6&I~Zm}S{$JA6DvPEBXl&Aa+v8Le5lWavZi@P~9Jqi>SGrh|6BAUVYs900=T zzZXE2&C5fXxQ0no_>RLd3jg_WeM$m01+4ocQ_dh>l!eXU5<2X;M{7^mQi%q2c3P(t1@rB#f(8l-IunbZY$i-S}(=?dVrOVKz z`NV|K?z;3)+`$1+6|SBVIF z2&c^NN(UDRS*u>94vZCpeC0um$7Iuum%W?6Dv0B)8v+}7wMwx_kRNrZF+^4z{Z?1| zxdW^urc{`4s}`C$7(tu?TV7TL)6vd}KBQ;OJK3$0i(v*@4b!4va`;w-s3u({*(4Fr zbPWogAO(Ndu-QERR$mZLHRGCBo{2cSs6HqxsZwX+LSnmFQ)VwAozHcah+0-csj&2B zr(Rbq7eq=L=p}`5_s@TD7&bp6a?4T57EJ<#Z~nP3nfy~ zRmu(E2jWM0$%?$<{e`y&1tJp51T`i}dk{ojA!%j4-x(F3?CMLJ*a%ohQA;LR7xxGP z&Npz^mZKsU$JBTWo|+?#hZFMRo~>4`!{}~Yjf%Zd(fBZf6<_qQz*bo&B32CtrP%QQ~dOJ1x9iV(iOflV&LsIs4WU!<5_kd14)?L^GD_( z@-+Dm-TKQnj7um4Tk;sjn0x5Fvo}X=$|?(ij6x7Nj)Q5SfIFW`I1DXWIS92P2?|{t zbh_B5KcuDkgM#!g%VMh=B0Rz(=#FLDtDQDA#KKp2@5Jf(AMQ!4xp?yOuS;m{rNn@% zUW%YibW`Y{DW<&BLqCSRUK4$vJM0wKOGbnv!3Imt4av*nnh;Xq#&Q8_TFi?KzbB7G za!R+~uBRjOA&{!LVe4PsL$~fVROy(7(q%N;0! z9CXYST$3Eb-CXQk&ANs;=~rjz(t`D4u9#>02G=RbAX)>^4S^n_irWF#4rYxddrR$ zr@caZ`ufCYQonRdYtyPDIPGgEzfpjqW$sR7{Xc}|c9?z6=Dm^%8Pgd_s9P2`7evm)(sX*eH&R^r{i!^V`>x2&J znYuz315@KTh&lopkU6c+>auxaDjPFF*&YN%r_12A0LhM6iW++vxED^P1Vitx1r4Hg zS5{F=aP3BKw#r*zlz-={`PK9B{OxwUnVUFJDK!%;U$h4KZl_&++m26;rT-=B3^1=X zh3n^JlRDn)zQ1FKbiB7A;2W_YlaL4edL4MAQ=lUif5`_}94wK6Bs%$s!hu_gi^`N!lE@rj6r76(mLDu*1okH=AAR%_ zm6Wuv4rzEZuSR=1CwlDAMJySp(_MUOYw8VUatMo_HYHTO$=$=IN@QW)+5k}FBNE_V zho|q8&rl#5oPE8kWmd${Da`2=&NmvML@UWAtBh#gSv#SD^8)B=7CjbxJJniaRdm{w z?Siw+rL2T@n(rV67RpE+d5T;(3iO-DdspHG>H_G$qc+b?$UGZ1ZfRcydwC(9=ZwD` zC+@b}@^NoFZ3->J-t9}v`66^5#kAfqY(w2O)OP0kwyD$VucPp2Ud*P_?}+?cwikOB z3CZ4cQ!K~pUf$PNorPUD45(Z78FEdeq8d?Mgj|%CZP?bq%3$zQ(y<7N)K|VOUUk%( z{Me!MnCWkUn-N-F?0k*5|1~q{l=_|^%B_Bv%vP$xB(!YjHf$zsyRHK1E<(Phg6X0Z z(#cJhm5^c{03rgl&+3WK1CM6(UIy0*NOewV8IH6woQq?alTflogO!oXL5C0NbehWS zwYBQTuJHc*lu7@)(54IfC(!CHkoHJDIg0KrhGJO1hWtEdIfHm6o9_La5YzjHDse{} zHaDH{lf;ys5j)!F+qBeT8K`|ofeT&fVGm<^0B`fyr9A8ZZ z<#y%uBIG^x|d#sm=yrmf0QP=s#t8_=GSxHD6?N6-$~j z@1b*t5ai3s$|B)VxLkIV**FH%jgo>HWVSoKV$@zKm`38X?Lf<}_G|cY5Mk;; z%8P+*YLA}*ADOC{VH=JI8*U^me(d|el|HgaO0mh7?zWYKmc&S3wTK)^RJtAH1dwFd zDaK`~c~U#h2WVAtFw|bCz|Q7KAEgWE4mQ!RfNl;~xS_Mn`K~_ZP`x&?E%;;EV8u+;xAApMuS=$l#E{6`M3 z#cQp;DW1CXp}q*sRaR1rJTeo#A~TjdG{SPZ9>zw-gKc0^KyNWD{I{IUA@1s@_hs9w zii~mUaPs+%iEim)*;ky5C9nQm z(#BcoUIT^zL`)k(zy!A-jkhY4ho5ra5g>Re2>%y`ZoTn0uvY8`MA*E|-Bj)IO>KGV zr^sKEw~x!jGR)UiD@lZ-jkHH6tDs1C4%ZI?C@L^o`w@)k1Rs`#&p?~I%JO!DE;CF@ zutVr6iUNL~q^$3;yuA;%V($d2!{Bf0z zw8@<@%q^GL5A@tx?zyr!e25jtXY#2*yCE5yj zJ(8{I0d(RBZ3PUyCqdR|Gp>5xzzYZmC;bWh5O04R-k;7SK4Z0C_YOy=`}o#%68Bo~e zLT>KBL#>6W@dYqG+Qu&=@*I3HrerRVIiloR!e;2aG}YA2Gx7ImRi=qk*yr)Q?R zvSlt%pn`Zn5a?Wn9)iog{nMc(iTz%32KqGB%rjq@jwl)yaT5}5JS@ygN`PET9N<~q5_c`v3Y zou;>|xvIfr;!YLT;yY>YOrbeh1DwRP`xd}G?n#`>pPW!)zHT}PPfx0ii6?A@j>0{N zz4k~QE~qLsgaDMIi`{**+cgN+t;?9V+g+fJTOHp{imqvqFM`~pu+I=YmgY zm=hD{CCKRRPt{`V7lP$?1%FpNv=w5-3ObKbT}+}eF0aW!^9PotJ8kpt2RMU9R^UP8 zuPf4pSP;!e7Rl$S8utc7(aHqu>Nk?d#O5*Txo(T1@G(8H=7@v7vNP}R%G5hJ6q8El zld>fePR$c1`l7z0Y6doSIVbnvz;uB~8stqTF7PH$-pqi&)(OGJoRFNyC91!fGbs=? zcj)d#aQGRiNAc7P-Ks3%Ym(@r{^qLZYk9ZqpRN^x5e3`0ZeMFk5QVe&jkfiwk#t{9 z1!q(neOS>R&t=QKlHSXaj3QW#=cLezjRKFdrhCO!l5h}gzD?h3f; zOiA&cZOHKdoZ2NM2JRht0HbK1;HJ@hnD&YFiRII2gSet&ZFQ#l_=9ffrSe^rr8mHd zL@U7dVW!!7A%axezJj zG7J4AeLGpIKq44Okqs4oHYy5)(QO+uem~VLUw>#FG%U-jQzzD82X$g=CGD zoDa8`zaQEBn->&df{E@I9n;ErE7ISQsHU<&D1e*bdNh+Z{`!NBdmwS40$Jb($x*QD z;~v_teCdQDQ6?`@*){~30qEOC{S{=Pd8RJO>CX8MR?u`knOJ)j*-~HwlPt}c! z)asep4*X(ak|Dth5u3tpO#4B@Ef&0VGI!liBjYU zP1XHhdc(@Ja9tmQ%)C?k#r??fs6%8CT(UK)3CQ1FyaofBC&OR9KgX>+6=D#CnFWKu z*(T$r+MNYP0KyQO%UqzgGYzRUrX)4{khWo{{F>X>Dn@1e-KtZ1ortVzvIx?3KMP>~ zvNH@DKJ&f&+h<@D9qM?TCq?%a%8ob?=NacT#e*3VCotY7@C9F-Qu$3Txh%q%W;LiCRuykqol0Gi@bBGNLJce-EZ(=Is{llC<x4+vP~%ERcw6H~;1t%`m<);au647%DRR6VGrfDzPjG z?2Cy>2P7`F7oInpIERWEhq9+Vx3KPMJ_&#d@Al!ju-O)+&C7H7LhYcf&Tbnzqo8hWQdz zwN6l-`aBM-*=4$Mi0FRo{a-xp1^O2ukOt(eqlmw#393@MlKF`PQcV*g_Ryz+a*VK zp}xq>dQbyk>&14>f*v^|Mu5x+KXHGTE96; zD*L=b+Y+S8t}0S|V0>rib?3-hlwZp)*IgsDc{dYLq!tUZ0f$NSFXVE$M(W!S1+)zd z6)wEA0>S`zh&`T=Z_I8I5xhBk0rhpdCX(fjqU~=Ki2Nu&|IyASlEz zqxVA}(IWB77H3*ov}{Fv6;zod12XSDW!_7}Tf*iLJtn_WGPx6e3ORDPduUWon8b*{ zCQHQ6bPWTUN||v!Ua@PJ??2Rf=za5)WbuDIQ|rhcKnRaC?9DZEUyyi&;ONt*Mm!;5 zI6j+!{Gz?7X-uqMQh5w;vB8YT_RgWejih>HkC2xVuGx9uLHSlZ$&#+&ldGjB3Tvb( zTdsTBd`_WBuHgwC1n6eB%N8qfAV50$5jH?3SJ=F>d1Z5H4^uFwF7q|Do$CL%fc4hF zR9Xj1HiN$?JsZ)X+(IZA3!ynHHr;4Gdi3YguO@kwM3&E(F_TL|CnhgfcFEzM*dIgRTA6eFmghvgz@?m4F}&9o z7Kx3Yi647dg&s5xO}1_y2Q&(qdrH7iMyouRF^6{JIYVOPl+c- z4&ZP(iq7md;_Hz*<&6<^j5y8$*m%Y70MYTUpf*fp%}Ep6ls5uTW5(V2{auuO9OIz} z%}Tx|oB`@K%XMufKjcbDg^ICnE@McGF(off3Td_9q|B5=kgS6Hv2J}@ya>>=jP0)h z8cnva>RTGE!XwQ`JO{5(voD^%FNzY?Ak(;OR74?m6BX1kr!^OG1 zQDB{KqZuKyoe2^P@m-n-0->so*Zi&oAD_pt@DwP;!y6UPJB>8B@lyk!0EG{)y2k=ljDyY+q59fK#;6IeIgF)q^b6ctWsN=wx9zMF}n@l z$3c_%Y-=8$@3RdoMw;moMsR5rNZsYWs9@_Jx`Q*QPN?{$?)yw1(6@u4YIZnCFl63( zGX1uYxi@?^f*J7HC~YuQS+5nZh6C7lmNbAM~Yqi(RX5wMfImfOEo_PF)tT z4CQW(nGxpVQ+GIY@X+p7mCoBb_bnXUpA2^+4;p`KZT*_Y4-suH1MC6?Yo|?E ztH36$7}bTBJkfb&EXN*{zJ;SYE}m|!brCx=N;-7EHNq!iH}r1=VMdR^g3iGna;K1U z4E~(frRQ}ZhjH^~6bVrH3yX)b$)$?1wo1m(GORdmpuz|#AyuP2uRqx-$#cCe#%RR% zx&oL`RH(tv@B?SVS<}5^tCaV|Z4C%}K7p?si7J_yVf>ECr&wnP3HRS#v59(i4X~UP zLIIKg-t1TiDbQ)cIf!g$PA}B~;f$Z0N;Xjr|2FdbRvPg0Z1Uhg6vU*ez#lh(a%(zr zGP12sDLp~5J5)Pu?mkT?QwFbB?tt1J*CjHwqP0+z&gR|V{5S#NKd5jpbMndo@94wl zguYvM4z^q=A_FzVUyCkt`Rep38|QY~$A8XrYFR1m#zTeqSml&{rZ=3SJel(w`Vwn6 zxdeJq_hPnfuq%>UsJS-<>Q&PaJ93Vr(rv%95vYm`1@i|Y-($U%P>_CIh(|LM5>CvW}V zRK0(Z>oA{n(#A-_&WrkPxf61<;HuN`_|k}r(FJmqT&im#zP?;pkf6~&=_(i!ubY_t zS)ac9><4gSl{CF}$r4KX*?+DVI6_f@D-D+=6;)^L|`Lcf)0Rpc7Y#RgyJ z!N_0X;nTTdw#ow^jj<4yoCwCFf1@Dhzvl?(i~LR}rt59i3vAB2wfH8ha&>idT&MXb zn76qn3!Qe@w~&r5dMic(O+O!oLp}7^Ht2{*1=xE&t9D{UG%MsGpY~T8d#Gu+l(btd z-3HGK&khx?p4cxmcA~e!o_;T;5q6haX4%&|<8fZC?u?>PAS9oXhpfD>HPlArpEr$P zl+tr}s(w#2a_=-5^Vw^xfG(Nr^xek2oX#KX&K7o`_?vJf0cm_J744L@>29~qiM#oW z#r4@|UW|IGHq4Mw&~jZE2rWEmsELi7sD-0dyYT6g|a`>h?S)zRTL`ZXD2(5XK7D%V%aS2gyg;_Cr+3QFOpa)OVOq+V>s zqI|}lB-vUGGJG8W3CV_A-;Rj_zh=e21PCN`=xz#5y^PuulNe0JxDGEO!6DINnAf02 zo%6QrIlYrHAAeULHg#7U`1_*}-7OB?=vi!CV^!f9VDrHNTOiu5e8$*@N&e369$Q?n zv3OQRxq7fRcGxp5HWVWr3 zD#Y?!a2d{D5N;iBW1Izi|LLswY@0$@Uf{(HbX(0}*ykWL=Jm0(TC|C)LE?tTU#w~n ziuUJosg@Q?DZ>9;BLQ^y9@&8;aXxGKF*_NHoqT~wvA+x6MxG_P$1iAB-l8S*I$rb@ zXWMK=aGBJa5l_qbknsEcyl(B_CXfF+?(%7tL7(6M?c^+%s5qRd4i0)dhK=zY~O#CMo)B;TeTJoHL|L2!YIGGnH zPTCT#2Pn_)+I3-2fr1R)8WZ>Ai8)p{lNCyG9OesTri|0lWQUzbSx;4*teY60An$L{ z8{chRTwVYCI802;_Hhl&nqspLLK zAYE}L8Ea&^zB@|JtZ6-#`kC`zZMG$gHZWmE5^jWJL%6H_;7_U(GVoba>0ag}lXWD7 zgUuqhwwsTZvs&q>qiGn34np&9!67@1p(S+fJ3s1)5EWUi*s%ch6Doi|{s-rQws_NF^dj zJU$e2JcwNm{~Am z#I|aKm=SM5k*bNbKR7M!^4Fl;vV#aEyY--iR(XVTRZ84cAfQ<6+z}jJEtB@Qcef8CA{N`Wo6SW~P*)n?C4m7C@iPBAS4gc0OhkApPZAZbVs{1#0xMaA5I^)HE8 zUvrN9bvirrJ|x2okdpw_zCKHp%;wqprZFX{6nO`BWRJWuI?MLZV5el#IfZK zXn*zFl9kEE971*_-1n$O+A>5#J5i0x4&=I#y?3Xml{y_9;O=UgU8$WK14!&M(4i9z ztLG;S#9(-+)&qW_$&V3S6lFGmXxni^1VQ8mt}+s}$nvOthQ=5Ks^}3y;RiR?aW5a^ zUnpsW0VlNF4%}q|kAS((o#<-beP5%c)TI=Hh9#W}wYKfnf|p^_bx4Xu8-$p}{6!$x zN$$w>Ep6bCMQ!06IaJFI_E}bs{>}3^p{F`s1tF2xWy&9}_ex6_7$w!FjD=kRXRQGK zDslPLPq;>{|FRe%-cLMcspa8|fq5+Bku7S2zlht8J@iAxDaf9SSg03qo0@5rp`o#o36GlnV7pCrGNTD;$%Zd&s ztpHfz6Fd_8T?BRu#;acm@51TCG17MM=?#6d+*PIz^AKh(4-0lA)J=RiFAf61*W%gA zXZ7@MAiKmV+UC01a7>)6FOT%xNis#nb*fmm1l^RC?yhX59yU03y5ErogAZ!hg%*^NAcwCy#PjJsN z+i=8u9^QjGylMYP>N6k{zD-65^Pu2Y5F`ZWw=n|Y15f~vbJXvQ*sbL0RrPQp6~s)e z;UE|#rv#_wX|OHTSZ$E8NNz+HPXb0vBv#thQd+D(cTR%u&fKY)E(B;jmnkJ0Y4v@O zc2U4)-pQotklhqi&7q;7=)JfogalD`fhGBG{C%n4r)Fs@+GwKnSXf)G!?A%PX1lu$ z(FRo4u6r10{_F5Aiw@{ArWv`Bm%kxD$ltLTNsSH3Dkl2ExF@+!_IA}<4 zsc9IjF@A<76%W4Pi#AL!z(3C2;|Nj!VajwYe)ClHKB0d77t#(yF2W3Rspq%){&WF; zMZ>yw^UYa6#+ULG#gX7(rNBPd8e63(j5W~5&#F1t(nKOpTTL%L8YN; zG`B*GeQh{HV3?43&DZJL&S*vWP3ewLF@&~=THAmAn$Hr=WBouZ@Zj|;NB{9Iu29vpg7i6`dE+c0rOeXCJQzm zfy-{K(Q{jYRh0;&C$JkN(?&J8{(=)`LbBL@!|U~o6Mvc;zOT80$*h$EV8;;D7IGmr z?f7Pw@#0{IE15JrtIf?X6vZzvF+p&w%7gG6^8$sut@uUUW_3tlPaa|fLLE|L63JpW z$1)kR{9t(lRBQ)~_TVc)#nb4wVs4Wck|&gun#V6}!(g`=K3f|0mF$YoLxOQikEqJ2 z=n&@t#)TE0IAk&4xO8Zmu9WcdV0YfmGyx4Bbv;A|Q+>T3zwlb6vD8N+Z@z0jUSkFZ z+{K%sgFZD=C(yJDTjxj`2KixQeubx@+wj@VO1QCS`DzD8wc-KDfGYY?U&%b%gnbH} zOrZHlc9S7lf&byT0r*^h12{ZaoOu_$v*Dq^P;49Q>_UPqSS^fE&D>rRPT7-827CW7 z?P`BM;3Gor=9#qL8Cs~sgtV>JE36J_RCn>rF)xE2mgFB+}ULw$hD#>K`|oOMutqMjmXH16ed0^f1Y0FQ!7h!bsW z%LN&z-D+QBAz^P0i7X*Q7P7<8RH_unWTtlufTm3G^TRU?+LDk-DAkujfcn?bUEpvY zof@ct2%S{ei!mO0CL259@7<;op8CwuCY1j>42KI8MX2`LH>?6JI7uUaY1a^x=#w0A zr3+{<^da8}+J|uDDFP9hl;w7aWVIUs{#1UEXw?)-s2%DuahD2A0%Hnu=toSHg}JS5 z`LtwGB7f>l3&_=$tAE~8!BNj4Vk|f;leGS2PS}i+3E3+cSmh|6)&=M-W@6GfECT|_>!GjV>SeGqL*D?lzp;s%y^Tk37wTBa?NkXk@wDr> zCG*L0W>I%o89}oCAv}<9!|p`BDMD082zRC}AK%DF_lpRh+k#r?D@Wnz0^zVPQSl($ z{LRGUzva8I|9I;LYxixk%Od}oU`?KMB8(5D3u9*I;8fB0?8KhH)tNm~g1RgL3QQ^R zkH4kWu#IIKQBTm5m$65K-?{6jV<-=D{?h}L)d2tM5cCsnR}8~et!^|3^BboS1%zDc z4>xa~8dtw=5VjZ0LS}f zlKj?!u;D8c9m|TU#{&0Nm>fpc#KNWu2pbrO8PpKgsAm__;1J<()aiGxYm5Cmu@$ya z+(wLns9GnwZw-Nn{w0zl>E~{pBW(xNCm&o#iud(rzc@z__FwXlvP9iT@HY>iX*Sdp z5uB^2IuCmDH2=3F`#-1!F|FN^G4SSUh#D zvT=L(pnq-sPKyZjleP+$Eu>jM&OAYLTMA)oq8bd+u!6UEXx%DMA>jQ>GKeDy0aI$p zYCCJu7+M^;j=Kh^o2Gn%tjn(ld}tE)&|~Z^9!AU zVCN-3!{PSQbF>4Abr4_0!Pu;9R!#uTk+a-aS`2AAkn@j^Wyg|yTJvrBS4ek#ni259 zErqHmi-mhVUz3Gps5c1VCc0A}vCxxE3u2ory*|f#&eAM8nvZZ1Qdt1C!*3 zasOLCjIfsD;2-x#EadR$Ef)xoZM^X$-#i)Y6?04)Jm9mnrq>hN(2e1{{eUnD9z;Oo zTv9S2ncx+Xk#JAl{3{9V!gU$~jSiK@K~}s^DMb4|{!U|?9D;Q| z@pj53S5`D#uu9V~aBm$U?R&IjYKo$oL~SXAh+v&D{mNf_c(p8G)x-$FH%}GK0Tvv% z>!x0n6--5=D*2ptbNP%$$Bpe`*k1R7T6^Y{wl#J+EYWl>J2OLX!)sk)B(u!i-c6Q) zD`r(oml4GYwrVVtO_P)C)511YJ2D|(+j8x5Fw<%EEao>Tb(#zBv!!MhZ9e8@V)^^;` zZjkPH;&10SujlWB;sz`klb2 zbV>I@w0nutEI_$yPHHG>$=XSSjf$L#Pfe!q*la{VA5SQoI}rxRj{X?~FN2#*+KN6s-r*7=X(F)QoWDx#4Bo z^@JgDBN+GNJI4b8ey6+hhBESj28J7_dz4rU;Vkb_O;l;TPAM);?4w{X%Z;2ZvaG8^ z#cZ=TVvS5Ej~UdGsvmM7KDa=L+19o*k$)KOi9rdav%8~ z2)cS@`T%bsO=q+h0j+TqTo(!jW=GG!u@Io&4~a5a=;LD!QvM&mX&C937}OVr`KDztSvPB!0c&4n+ zV#~0Jcv10iUr9+sKBt*2lujqL@r;_&CM7dqC-jBZtGOlul=3o4;4VDk7Aiy zh5&~rP;g>OLkEaNRlT29gf-j=yrWYi^E26nh(@L|!Wi}A;<-LK>Hz}ke4nR97Q(`A zL)Qkh)yYWvf-3HFNT6gZq0UTVWkuiR8_IF#?<)W!lXD;_ltLwl3YU!|EyqSb>%G@+ zMk;TUswlV1Ta*SD`|q-x&G@hQPCT45Iux7Bq2hS6CH{sLarI3t?Ta~TRudWxLb-#^ zID?lAGkDHpxgUzomf$A?cV(F!N8+$9k~^`@@e-pAbeo;KmE^Wc%EjCWGg9-SmZpNu zKvpNowC$1gN)8zY5p$0=s#Qq)ZpnbSC_l=PQEUNQt73t#I&MrmRBW=@CU;zoe*I96C}G062bCz&BsfBg ze3e*7-P5Q#4eA-?xIzuJL`v6lHrbSh2s%0GTY0I9;)S-ro4;NSjs+yaWaYl5h2<+q zdc_LpZ!8YWu!>*RTG4BB3Y%o~o*=3M8esr@trHgJ?50Gpl-EPwm&;Zg z;)ZiUi%a+8H$t{^1UOubn;s^I-hU6JmPVAcR`NK+ijcBN{Yu|VF`Nd*VTgwZNp z1~Fs&_x*FfGo$Uv!$J9e|K&5w%o%amS%!2;@8}f$^9PLRB)t1!7UT^3R%Lle-IKTi zJIcSgVomD?bLoU)yN}Bh>~InUahK2_1dsgsZNtfb?a0Dy;9z`=XL2aQtu|B*JvZHx z5`@xEr7zKpel?o!VWoWdj)_@nxGxfDw2!_9%kl85WVy=n{$!Q6Hol$L+om-^o(ReD zxA;Nfc!Ltb26J@)J0!ecsng#~jm*u{WiuNTDta9S%=eB1gC+iEUBp;#Q_f7BRLCR&c}$h=PpG@#kSFcgm?8L z1Z+#>B9In1@>j(rZsI3rfwBS@} z%`hJ)wtg4Ia!%bgbT%sACh6w#pHVb*!C+!p9r|Qifhez->4+rjY5k|GB403F5X+i^w+o z8>#AnsGmwVpQ|Fv4egYzCvQXYeRXti(~`nANmu8B5&4zc+9qHx;WTcoh>ct9Rp?!Z zI}DtkD#GgVwtpMVLvIlk>%-1ER+i^%$+pl(Bp*-`hICFBv%~H}D{LWRBy=9H!flrP z9@)&EE?XOV@B&95Evyt6kdVv-wHxa>+99C1(Lxgva(g4&PzDwS{v)Oh0elslcSXnd zg999{$fBnA=9XSOR>ur@zWUfAf3#ejBDV~{5|<(ePy$9u%C!4aAB6Pd3B#KCj{t+4 zmlL9A=nY`Y-S}(gFFIaN8raL#)V;)G>?;!$MkVl#`@bqtQgXllVq9k3vsUj3Y*-YH zaFZt(3L4?xCO*8$d4&oldd7jh8h$&#f%;BOHr|D$AUaD6uM>t-t~IwZ|JuOYAq+#I zhV`4T75;1*JsUDb;7s|F|UFTVuBgreuypg3L$ zitNlNjRSiPb1!Z2{Km-w3^tCe<@0g7|coFuT>1Wz6d7NFP0-<$Uzn157?X+V!p1mNjvpbeQAgq0D*YE^aM`& zXiJV~bDL~?&zSEz%a88`qT0=l6pyhf^)wAY%~|V5E7%6cD0hqhlZZfJwOW_F@Bm)x zEK-K3X{7wsXO@FPZ{W$LD0Md^7f79RcMgH>!R*ViZ*U!p=eBx62xDz>gK@#wv15#q*4gk!&`v$K92zY!1n%9Ifx` zmd%zT!8zT$hr8*@vIE`j&_}|TunXM|k8(O=mz?8>G-%gBY{*#tjhdzdk**WKRS0{PsEj%bW`$ooqK#OHI_w?FdyM)e?-TYKt& zRB0@YkX0MIQtGx6&hr^q%Ir@Zis~xYZ{@xuI5KE!MCxVs^aK{6fFt$XGQ~_4 zkn#5T?@oVX6UEF9rKpXQrz4O0tF)KH3A!A+>v2(Y+2^|9H5LzNZAoj~oR#GIp08r6 z4S}Jbw%CkTyPe6jb+@8BD@Sy!-1ez@A=fF-=cif@VvM2G=sDHs4%X2w zG#GbZHhDsRI0Nnc#JUt2{DM0aE+oble()DX1!>J@y5Fimnf3lvHK3X7T}(sSyjh@C zV!c(bKHnCf*8KEM;>HDy&G6db&c*Tl=X5>ta&Uoo!RMHVg4K^XKRDXSFP1;`T%p{g zSz5>~B@p-1U-(ngvVG~uDY_F5u0-{cLk~pVv_-Vrk<{V!lT3DrA1Og5O2Nf298Xr9 zeHW3F*hW4m0jCiKuPJz|JVdv3?eGCd1J!lb{VQKWa~R$;)vb9D1q7s7fBM6Y+2yfl z*8NEhvo!`abRJ*wMkz}@TIxzQ4lc`RNc1fEhJ0~qTI%s+)0B}yAJhcwvM-7rX8`w- zoly~YGfIvX9>2SnD0$fRICp0daa{#Hwk3tLn|5SFQ+=|rg!h~z!hU=z{)Vlj2`)(v z1a>!~{VBZVlnX?T_w;55$X+={%CHaj0P|D6EOyrAjMoV8I*{lL?;~8(y!b`yM`-=O zxFuDR_3ay|f4+l%$R(Wr)_>q&%a>2`{JkEkBCdUU;j%%_sqGoz3WPZ?F^;Wq$~8nLPveCYM#| zB4#>C89E)7C`&;@QFZ>Z`4Le5HRNx>UwKpAYWHfyH&qltye8>4OTzI=ITrWwqHi-g zKTj6V_xLs1->F@1Z_m%i&o`#MTDwo~eYXa!?>M8r&>ekDug!shUnD5JJ=d8jwJug# z{bH99i@lKV1L(uN$PQh8zp8p?`_%qYqaDhbt`@&ownKg;xS<;jqpPDGG!^+PH2!h?z{37V)E=5CTw^YMSjmNgeYo{d zs1ILm+^kkr>Z)nerqE&UVqxS!#kPB(4S;4zzrS#ynx70Bp~Q&JKj0dRAkk0rSXCTC zb{p4xKZfwVUk;@23G4-h*;)xF)6|E>y1Wz^9^Q8N%2ij%-%c+QT3|`;C+iv6r!#_x z3@~~TZ3d8*3&#}goDUfdlBAS2k)9_&A^wM@aDnQ>J*u{Jy_(m2q2EyIGX1F6Eg=qX8Wn_2?;%2)UT5vK~1AUH18LNbfTKvkx7gWWjUk~OYN*`^WQKKzzdr-jVcrxPDk#f z#7BBE6hk;u-nq<~Mp@rIYn(quIm&F7NHCFsEu-kc3*_Zz>s*6izf5b3V9Zsn07`$X z9_Q0KGyh6(euT(<=9Vt5FB;f6*XAfxHke$N5HZ!k7O@RpuKcuKGh!vCNNR1~nG4Th zWi4y$g1r19B3N5sZP=>Yi4-yPi^A4np^vpZ)$%hJd1Tm-)FyO99L^KnDlm(8%(UQ$ zZmIf;YpKoTBsTVD)_7&C2#%%g8!**ncRZZh2nTs|Cnx&>n!ulQr_cN{pUiSy{W;xZ z6fNqnU~{mpyo0hhpQ`16z>1nBn4wCQti(&|jbW!9#x%Qhv@=7Zy1mPUA!G+^0^5+L zvB#J;;12OIcL$()XbbitQV7!7(j?A6n=2vn+!_{!9lhQ9EQ&im1#IL5t2V|wd>Ax8Ymso>fX!8ip>~NB-bX2Jw;!PeIkH+r$eQ%Uf-)-k71C9x{E}s15p`rsLyio0a+dW^se7 zvUO$_^3HGOtMj_HRll*s81Tbr1sr|>I+VN!?LP(@$>DV5`5bb)DDX$AZ5_U&aWXd>*Q&qRIx44 zF^g~|R$Ws&eLRxlzb&UwF<^Dx0G&gyCMKCxHJbX%5mGQPLqlJbiN ztWtg@CxZlIQwyq74xO2H=N55n7Om^#4Hz#4OA`}1P|qs%y1US(+U0@sR>?_+AR#dc z!Nps;>*4hz08Vk+@o9C1_I(|(Q93cvMHm&e$u?YCgz^F?rq01x9pql@>4P0>L1#B*G3UJ&cMi4hQ)34uHs4=ej@|hi zKk3tS(kD!{^Y@0tvKM1Z3lHW~$8Q}d@E_OX8O%cQ&6H=10j>J`U}7OmmbrG$g1upu z$$t3=lb_!i0;3qItG-l&CAgSJd@d;Bfa0d!MyBq8KJ87X7HxKqHutDKkFtB4)UPG7 z)|#46sf8>dlE+nTg!BsT{TOWZgq%dTBS~j@tX0tuxOu#6u z^n&Q=u*C0C2M;%gmh3V|8M|;P;-}NRYG%B4B_~2!r$o--ZM?EC7B22OrqI-KIg4Cs zlYDtC1{R9T?v)rcHby@AT?zAFMXShP5w!-TOHIIi@GWAn}iY9Qu!d{NEcj9qsiDER5{` zeJuUs9@}jE;~rP*^pQeQqto)Ce4r2vv@dS>JDZ&pm#EB;r#=8!De_V^5 zPsK0jr~2iij&bq6Y*KlQTQ~PEw^KY8C}B6xci>WtT&k!FPbc>RE+0V;rFQeTfvK7X zy~^jfmI1Z`NMy1o}#w^hgEO@8ItTdnfnRa_G?Ljn4a zk`jWB;GK<sY<54G3&g<0U~*Pygsj)THm}qo*6W}S~@yfKf%XUqRBJJ z!F)BSEWTFOEc)P*b?rTUOWSGFG&ZqUm>q&RAbnG-A7Y=8USOL9bC@56wpB~BBi6fA zUwz;gLh_5@HT@?b-72OWL4yq7Tv?!hb;O)>V0#99$f4iB0Uf2dgKWFoZ%xb-iK}`9 zQVAq)ZB8&TKbz2`w`%bN>B|4=Aq4q(4DHw=HqIi@E2`wMYZrR=%E)gsi!g!|pYKb8 zQ#LHBcBgaf`UwDFMKq#W^8`%tuLZ6^&jjHxUI?YbKrtslDAmCVo&r%YJbBj)c;f)k zm09lwS&La(H;?6g|+4mDZcO06FC6auh!u)w4Ibf8wAH6vl&f>9z`4 zmvIU9hG1fI2r{Fqb=BynqIUtvNpeaS`I%ij?ON!19KMuK87(ts0YxF)y)>U9k-1wG zx56l%75r&MXyfBDAX;6X3z-!XAb(!$lPq9^s2q}-cYV!Teo;OvLFF_JY>aKWg=~ne zNofa5YBql5Y@-diT3c~ADkZ3rltJM1Lo_L>c-ga8vYSnkDKm?^k}E(qkC7t&XSRd8 z&U+%?W^02;XCz`%IvzvVUIldZ9Jz+1AafM3KBd^lpvrs!{V~xqZ$Y$PNi$Dd0iuS@!#{Rm+ROI78gpc;i zMg}0@BX`3=WYRF%1rmvKQYrVOIMNNQfylDrKDo}ufR9B=KbgX+ z^!c9SWYllaoBEh(o9?ZvD9urHyQ)xzRNXsIaSk}l0va+3PVc&s1hb~h?@@ z(I%KwE>;Uq)H>nC>o431Ju}lv9}=7AH5Xo8=NZLF?Rn;`8TH$zIZ$mEu@cGLd zm!X$EK@8|usod!0(9`CR7Cm+y~YT_yM zKpKH3LNUSplMbv}*I@2Ou<-hmqw<^vRr^9YfO^^3<=YmKMk&dXZ9+J;2=ln2`}cUFbdNQ!7xIYffU-$>&f5A z=P713hz(~(O{6K)jHlUcFVQr^bUlxvAZc_D`!BlMBv6 zJ(>blv-H1hogi;r-DD!&HK2a)%d6Fovqx3E;)T(HVN0E|57xxTmuCwZ0Rt)!(DP`w zA!Lum^j_eQcs+qWU(|KP0vfMda%8@KF1nzr?RaUbHbl=A*p295+c&x7(hvEmdMk#v zuWI+@1oYSNqokmFJ<3Xaih;I~ztw^E!qt_^ULS3npuc{Cjv-S?j=ur%h@p7wuo}l8 zkI;=hZg-ay(`PejP$le}>(Gomm zIZ!{7B!3th{uPS`nL!ck*ell@bhn&>CI~0Kq)^!ep*1Wu%@rJkjp-HoJS5`Kb-46{ z+zPrHnhYE`7Of?L0fBVz>t0I>A= zM_^hwfh`E3%=cNM(`=|R%n*{LUvC~%ZD5FuozF0#Jz)p(DpqxN$$d>v! zRLSc}PSD+`6)zp6tDhqA>g#Rk0TBfE*QfA;%gLVAX-I0(U4I)MK5;f?;w;QstxvIE zgFCaIU3_8a59@&qFK;<2T;U-q%KBRWU`L^8*h&Er=i}O!S{_w(bagg)6&Z(GaQ;Cy zlqUi=r_IcbEzD}b_U^27y|P8&-%=GOvzEwYs)=dndoCt$)uO|UkIfy1f0EgHF+W`wCL<=ChI%FmQQ846Q4F z4qA#OrRW_frU>l(zeT4Sz7hK)7Yk50&wD^EJf9js1kIo(TXNh^s?nl zF*E7M`u{SqVl=TLQio#`n-`gLEJ34KQvywp?ZaNZUxFjBD@#M>0w1RaR_35D1rC_) z#Bz1dQ1y^o5!Y|a1i~3F2LhGfBxfGR?>jOo9LPRqkOgyJKpXIRkgJ>Z70i|ZvmHw_ z;49S7Gqu~RXN1`U!h#pq6z2xuzz0e>k5O~f;>ePaV{VK$bJ!XMCExyow{bUu3slG6 zZ0e2H8Ab6%SOY($idXpb5Y2lHc|#{;&ueg!WC1D`YuldaeW^n_+v65*(N885t~Ka) zJ&j$EKW1ol^-n8>P1R%f;|LP^Gy@j`n5ytop-u{*}`VfM**e+)7--FpWy4grJ{%fU1g?xhfX19Wp^2M7!C)*J_0eypFgA;>U z$8f=8Yq41u27k`8e+;~@TGB0JU41-Lf=}voKL^RCy5!cS9)}Ye77asUv|p12-|7%S6Tregl5!bO}4J^A;;1t*W9=#k0sSEp@LDg+`yYiq_Dvv84I>)O-~Pp zV6pL1)ymGd1ElalTI@KpK|GlF^me_9HzP^d`!~nu;YJ53P->&Czk!NkERR%anZT|R zs`l@~U4t%{qf*{qK(!(0T=?iC`mvHgw_M2Y3;)Xq`#Mk(%$|!5%|A=~F_W!SY#Z5D zt?@aFmJOGZoLbTKgDT5W_Z`&4Obql^_Hszq2)#v{GU^%f1A$<+pil0;5fGcquHm;0 zdfXNCIvb9f^c`ze3Iw5;eVD+=j5HB>%{9vm;i zO(B8^H=+>L6c|RB)LSM#pZeu(;a<4H-8T2iv`~YH5&1Df9PX(GQB~7qioCI;n|xd3 z7`?p%v;YH6F0>F7;(%Z1;!=}vI6P?K1%Ih{%)bmwgMx7prWJv_4{aP5gN&baqGjMP z*JRD!NgJ|!JcW2M=oeXw2(;YV8oi=P3;(m#?@Gk{LIWHU6;gJ@3U(b9EAipKV}$R_ zyGXlnsQCs9_=7Q93{ZPZ!60Y(A%Exb)R6|)#IlX+@weyej!pr*hZ*&>wB#bc$;L2h zwBQO1h0d|6(#{Q3OL0}62$J6DZDz#5zbH4P-Dju2V7iI~YYRy*`KJg?OG*RHn>+X6T=5q88wdAkpkX{oS z*!r9cq=B|~D0#~@gF-zT5BS}Xypog(LXRu)UClodGAN6D0^B@p`s0&j%44Q=fuYb=aVjm#rJqqqtWr2G zY8pWK)*!{fM=fx-ebs&xAEgUX<-`{c@XV27TAtkEL+9Xa8_PujI}%ew_M^Jbn1XPv zB12>_@jZyO=~7qChq0+q4}EZ$JTQau=`x}E>T!TtUdAj;t{iYbc+Lh|T-zaD(#u@A zPyQ~v*GA%jkU*EoE1U)P-*ecJ^<|j4)RUZI6TbtztR(uPl*>6Vq*>8ia0d|>15vH%kzY(=dxG~rBE?rM@EZq`a71yQS*cq#xf`Dl70!>A(<|u1RCKRNo!qkym zi074u9^7}P1zq~weP7-yosYB>l_xx%9$K4z0N3O()I80$!Ml(ZHdpD;CO%p9-eg0K z{g(G#U@(_2ZLT_!Y(EYRX$>V+#J*5UHkX^(a#2$VER*Kz{&X)HYmaa?6`nzgKD3XO z3vTq{%nEQI$^)SkW_~J6Gy8eukJ~HWBLaNdZi?>th#|itx~_rWVhQFNvpXV&{dS__ z6Ag0K4vpX+38d%!(9HQG=0u{2_pe3|gR0RxV-H@nO8t@uDvoXXZUSE$`Th#bTwF3I zkC>Os+39Xf>Xi)+&c*<;rLmmN7?Xxqo+K&h>&o@tcAj(1To5uMLna;2lw_k)oL_lq ztIrY_bQU-+Ufti_Tm;1ryc#78ZkzUNaW9E414Pn z34My6zhi!B(vUS=U6xqS{0B86bCHKp(JeNNn5oPn?Pxeh65o7U``9!9+jjw1VoyZr zx-uNu$*JTbc=w*Z&2hcG^DCuK;MY8d!uwvY0RA7wOU*(WAF2HHkN*V4b z2k7^omFXdvhC+Hei~*#W#9!s1d$ALlzASWTFq|Qbs=3@#b@Z{Cwmpx^Ashi>h;d?> zLFIqQw_^SkLm)ts%d`?-vyY`G&k+Sw_JXs3zG89~RF4Kh+lz~~FpDqQ9V@xp>V702 zS#Sqr{8qTvC)A4nuFfGU`Tfi4x|ixX6Nk6l8uj{|`+3(T{7-dv{$JQ~N+O@-s_bZL z2y}+hwq-~VS}qeS8$p8GR75+u&s?%-;!SDFYQl(%zFs_F(NprVE{{?!IEgoauHrQL zlU8M+EN|QVA9|H2(;g_1yFDRc@d#0d7+{+%{(0f>>9=kh#`5bM=aj0QTblFj!I`Tw zb6il*%{rXRnL~ALSr5@8slGi)J<8+Q&V`Y~YGVoVhgTKFD7;pJQ|M8B>lz&-MdIS9 z^ZYWUPc+y9Z0hk0xECjS$Pa&MG~`zcd@3N5fiNw5DIaIWhn$FrGtbb#0teHHOQ#Te zrM|z&CIhoiNs&;<%#if!w}4x1fmTk%Nz^-)A`3^3#^*Q#Qboz4>63mKstIIqM@O|~ zM$GG~62^SqWe4R<0t>XnTks@ELqpwi+(7~{6je9Z z?1UtWLB%DWNoRc~6YISpATCDIf!_exx;;^|%+UHiS&C)CDd3n|tRw9@Ms9=?<+gl8 z8QT-MRY@8_t7Tzd`O8;&l=|G_Ayig4iezbTp$a6r6L zJCPB<1+{z-fr%%C1?!bTipfhaUB=BLN0YIz-xD3OZ&zFg^6=l7C=9^ z%PhxlD>1BxNQUupAMM*ZyzO9`uW`{kGKg;*DSW6JoZKn2Rcow+#d z!RSqsj=6RDE1MA5Ie73GW1PEPDnCeEVWn;3D+#o+QNISODF9zMH^x5esSPsjgrr#z z-+ty-dO+}iVUP_9U*w2RG5O<*ATrAwP4vaY69mLm))z-jK@b?|Wauj@7BoU0L5j#C zJbBG-#7Uk(z{rElI&A@on|FFc>io#Y3+0wfjl9L>My-WF40CBSkPExs`T^8T1mQ3kF0If? zmS2)ltjy@i|1G+GZ@x^&a*$3m#Reh-vw3Cs9&9r>_Z~zf5}jB2<-i6?G*RTnIzA6b zy)m$08pEIRGW?fERLTtPE*(E2!OTbc8szu2zhp_3J0p#8)J?hCoMKMegTp(a_@wPtLF1XV&Iw$%Bn-obHaKk|1?4n%e4QX2+fEN``8q;`_B188nh&EM@4*HGlvkFw$#K*QU1Y!;%8Q zdXw*%%i*H$&Igd7oGpm$YInv(4e1HW}yc$9dI=xQVTO&7H_^{|Y-}cwwhlrA{-O zJ=5w)zDN)va@JVUxWL~#4RNoKtdE=G)KhX5e;L$sC0>DkLydSJrehZvldM&VQ|%c9 zrJ*a<$LG7?ExJT?lXBZclg#mz4xT;iO8gh9`YS%lA>py@V03kO1zgW(%zdg) z4SFAUR4$4hJ{5zd8+GJqhnG2LKR-O30o5b){-g<)-@et-_5R~^JE+-LR~P`4ezKoh zmYn;;^@mvvxU#LRs;!9oGQQ@%i<&xrp%kV8pFeD4v+ORhc092p)n%>akuzi{YH=X3-=( zfrj~|*U&FgL`4SDlrVbNu=qqVcGdQZ5RzxSjLF4MaNC|K`BzueeqI!SF(rNm)P?%c z@+mVYQjoRF%#Ftu%8wuSz1Y8snB0xA+3Yk)q^|zpDOnrXZ`mjq-QrHreg8&@7Hnh% z?Jbv9y%*QA6tkGF*M+R);ecGkNlgW;>NNe_?UpTf#}UdH0{CP^R-Ah}yvh+zUhERD z%{`U{QmIFjRu-`mVf`n?5}dh>9QZm58m`z+%m(e=oAsS_Fhi$p< zq?=8wEhnx;ye-F$jrBd5@&(!8?n9d=34mL9^vh=eK&hNp^}>X3@ArscmLZ2*#lB z+rj4v^XNd?DjM&S@6i4{Ap-f%GB@@{O<~3P65*@6hpHX3h5H#{Ov{5*)ExH(6%!6! zpv$0}UoPh%@Jp`2r8j6w05CBthh*JHhj8BSv2#ZC4iChAfq=SoBen#qSsPk$R_n{J zO|0}7|AN7BKN_Fm;>Ve5$P?|57z*Q<2kNC>Te9G*lum(wo_Vm_(=Bjt!0g8BIG2dva)t3!KKCkTg|<({XSXG@MQBUr<3B;exaqPUC=+&uw@@TkAV ze3RmK!atx2aFwI*1=E^S^MP?-&%m<4@$vqWTA`7LK?NBo&Tbcud|dX$O=be^vtV`m z(cYD`-Hx!@z7rq+PE$4Nd)4Y5h{#5-|6}6bnNvF~Oy@~$^9+)Se-_X6!THtlSfk@> zFgxy24C3vIW-@x&#qmcyp|1*SL(A@TDMdi=j|1};qz_uf-kat7HxJ%XwroOaXgjHy zNO9(Q{lfHzh=kEB7hai{dPqUr#+q}9}XbX`dh~yF`-te1|kNY4Uv%Svbp~{ zILh}77hbkL+<)sej@VciD#*oL2GlHYh*c}K%WBDc6fx}*=gjCT| zCm`9_Nkd3Jh0)eTez=qnVBM|IIuF z1^TaY)2k`uF*z_0Q2D=w2>z!v^z|J60|^in*C#VT4+y?-gOSwaEV~3I>+>`7hb}E9 zgkNA5R==?JYdo{G32iAcJJT(IqCP?(|GA;_vA+jbYQ{3xfKf2pw540VliQ}!us zTyW+Z+1f@zQ~NgSrO0~CIENNy8P5r3x`)gl>{~)~TGNDUGR$igZ9KPNEl*PT?G%h@ z4LHDA>i|_aT%k)H&y}Vez$xVk!_dM5b)#z^KEar$DXvL>QFaA2ez%G^eO1IfCjyHk z4i(Iv&~9#eu?9+6IYD$pGo&Ua(JmG~N>`jD6Uxr_<3zHSYrmn__bTIAVsPrUTJ%yY zVZx5w5&Hpu1pcp^{2vqgKZBzBpElXj$VAV;?SGoriaD@E9WoG5gAfqV|IbqY`4l++ zZ^w$JRm?w~@IUOmPrB2rx>W3!Ugo_nsafLIkSSMy_%X5w@jrQ_>&Ac4Q033@bYg$H zm4y|ED9bw<)Ihn+Bn{&#S4zTBTBhk$94ypiqFqsexQo6 z<>{lD{9tAcq$|7;gV>glfG+VWw@`o3Yfq_3umwCCkiZ`AOWWr z_7iwURVkKVP#Z|CAeOCx4t@I}D!27qOjzCO)F~4~`>20Ju(!wF!A?4N!=-YRb&@W9 zL)v=L{DyAjw7@J9178Th3cW5nx=}G>+cYyS;1;xCrPe7q>1&>K?j$1itSDLP+*ek% znh;4dk4vvogF2bZuhfcU$X7!@%4^*1ESJDpRg?+P2`bXOARF9toJcE8heu@^vlN!- z^VuDs+lA-^OzJ;@Q%lw>_l9^zj5hg|K;07a|CJ!KmzwTjtPu?O-KVGipyze;43M}! z6boK!@2s>3FooMof^Lf+j{2dzs5t4wg`Q67wDJ0^HJ3+qn?HPg{C$C|CK>;=a$RZO zG3i_`Zg4>@>Ho?9GX>F1tJry9*m(iaqeEjdYp0A4(n;*KL=Z}qz zmzEz`2_GqLR_*Z8V3cjlARqEMJ})@HYQ0TmkrgJC+XU~kH0khJ_B0pP)EA{_--{J6 z9tjrbWzTLe1lv(a1HzJqCnH%|9pNi7;odbz`k8(3I#nN^giok zdu<#2m0UL;@x6qyt)pWIK$X6!~}!^t!zy<^r7 zuzKEilN3DoiI9I@V;ME)-D!DrVTMX%dE9T6biKJ_WUJX=hdSX?ywJ~7TI%{i;?=*f z(5oizw2?ze=`FVM85FG%+gQkj+Y(D&oUL9YXXz1%R!TmqkxXDe|D|i`GdvVE?xRZk zKtqpqv7ClYtztz2Cxv2nPQW=jY%!^@O!@)=vh~`VO6QKB$(b@HNLN`(g)3rzL_}7( zvHOiR87J8*e>WE;gt@>E02h~uzdM^nsWWdS&GqbxJK zqIxE7ieDZ`Auun5J;<5dHM$qiXVi_Q$gnqKvKwm~Law1JPoSxNNBIo}VVg_$+>Fa? z!2SFAGTs;HSKNjtji~2bSVCA*4-GiLDn+At@Y0$*hHJBq;!eE88EbiYocUz^?3 zKly0N14OrV%{Kv>>I8y1M1C2r-uQw%Z3ci__%qoWmLMGiaYSibOUlJoX(K~J7o_N0 z!3K{PmEQqT){7_bCwv1>0oc>dM6DaMYl-`v!0Ak&Ze=>UxsW%*Qm$go$@faYn{$mD zi)(re$-N8X%{4M6Kn;S;9+^GFbrw(YbkgVX?0BX?0lHUn22qS$<-&B=7!gA*Sr%GY zHXnL=)>hY2nYp(Z+{40PPjV(#H}Hk#uTlTkmk_~Rd7i}n{a%8tYk#1w#J-vR`l-|l zGOVObs(;aAL@0DO6F>ax4l%>9HDvHejQ&{4A712#y%PG^DDX_DAXjVVCPxWo_p9a9 zjdV{IizK2zsO@o}ZbG7yLTFB-Nr$$@WKXy?H>E#zB*O&I;lmva_22^aLgWmSZUJ}N z0g~I$p>M(=gwd+3&X zYMqC;CZE8zIFOdmn7Si)R_b<}0rTm#ob+(8QNh2qheOlARq*_LvP}6$PI2*mG2Z&g z)vIN`F+R|55~!4?UJ(m~*iu!=e>@(5=?fA5gXL!6KQcSE&3Q9wC%3&=!ufb?KcRXk zI`V`*o`YFQ)cGb0{K$Vdt4JW2Q)?Mt+DN!iR5yrDP+6gMid;gMOPc&K;)K%^TacZQIGsr02bl*F7^m{ab5Q zeVw)H?0q)Q1=~dQ#y|YJ3BOlY0H6-X;SM4=&x!fU$K3;}p&|_hyi4j0fUK8cC=+Aj z1|D&soZvxT&h46yIEC>_4-=gQmsK;k(zI432^Hr(uG>>Ao@FVz2)=XH9mx3H3v#Rv z@oH`-`nOgR&mjBk*#LR7P2o24j#75|rZ_B~#_zS`Au;Xe)K(Y_kqKbzWl9QD&OPeT z^B4_j?W@5LbY3PFwcNA$xgJN!||-RPj!W-u<9njE#%Gv$VqlU6+$lWX%#w z9viNGnHaMgGwkzRQmRVQ`Wi_X8bIt&_>5a9qmOd2`p0^QHUMTm;*fj@J#^)p9si}j z)YYwVhk}+6a*}`_*Ul+;{26GDC%(fVLTO^0C1#dmeD~oXd|U?9C$ERikoHjyU`xjY zO*F_4zcf3DWp@5XE$9)LV}$hZ=MM3%8>+lDWhVNo$U(vU`365`DWM?{eB(2deNe_D zR?__&1}_o(fK^I}6d;2mhHBR;JD9ksrx$MI=&I^)kXEXC5{UCYTj&56SIu0(YoZ!; zU!=fm5w9Gorg9KC2#i$Lcs~v-Jqnj+{Kc>g*u@DeFNR&Fy~PYZhcE^t>{SM4M1gVZ z!iRb;l*%jnKI{M%AzDPu^iqoV2-tDia;&`3C%AUOh(M>J-JvBm-=?x0n2QV@1_fC# zj7Yu7d-?ZkpYcG=HONdcz>9+Aa#M<1I#9v$7Kl0n`va>cwtTu{s6){b)qrSkIBtl7 z9@atrpeCC~Z<^?C3s3{%QcUdxCW3V|OCsD<59X5=%trDh64`(XuH-v#PdoI_{0u^K zXH(9<0cO%kd|4R$SwG_~e6$trhmJSPXtW4d)^eCEiVeoWKGxaTRz+r9y9 zACol=lH3u%?AFjqb+;5#B+XTsAc(AqiqIM0bTkoW0Da9s-veub8mak;5n}~0Zjf&z z--{t4U@R&MCv%t)^>V=tDcv|8UVnW%Qka^#>2s1PB0L&eTj*+2dqm(hBdH>0bfZT+ z+Is0^F=kw-?-8?bKQ#{YP=-ja*4#@R4kzitt*L|WWlezUL5{yXh`{!LgMxzo_mKiF643CI)v7zc6}Z+POgxp&1aMYX-AU81WQW zay!+U%EzI;j?+QGkw9xBB%y0iW1iH|)SrEeJV60H6)25cecZYIR0HF7otR;DejhaJ zg5OIiyu_i9gu?trq8jeMT)3Uk2Ik_ovy;%6?>oNS=ReXsP9@|h&`!9u*IS8R@KNS#37E9OH{tKSshCXorug# zFOBga!Ge**TBQe(%-g6?jgbw0h7oYappfrWpE@V{Zna8gy5TrP{3PAx+O`hBXN-ya z$+OQao)5tm>z9h?=Jy@=czN8RBJ#DHmgoV>p$dH|B=c61jy7gOJ8NrMk-fOfrGgE?U0OJ$0 z&>1G9pJpU22i`HHDbJcgTiU^@0K5HZ_P(@dz(8<#0S^$-03EDs5`|&|1*H$tQqI7D zg;0B@)mA$gioQhh0Kd@#N{K>{hF}M(!_f#aUOx)qkmu1Q@BKbGOy60pU&QoH6D^Do z3bP1_WDZIN3YlzJ-FmT;!0*g2_cJ8`-s7#qAJ_+9B(sZ+USUE`FwdYe>mM;dZmnHt zz5uZD8!jbRQwdrHil)t&a^AFq1&Qy&JF?8kG->q^){=jvi%}*W-h!Lw?EQJMwpViY zFJfcu=SDMa{kvWm(5C!MSNqmwbgBOHuAgl4D(d-CM?X=lZwK9~C(Z#Ve4w(psCk}` zbZmsME%So14Kf>>y>(0m*725LX)q*e;MFBm-V{YM_Y-C@z<(-}#GVZ!lDSo)7K@J^ zdLHEefW%)#;4*a1rcIo%&8bU>+gN^PmRf2~#Kl!K{yBY=M(6;mNAO&y0wmt_Od-Nf zTj7THlg2I=m4DV+$SKbn!{aRq%DB*q6wAm_&RXD95^e0^EC(8cL`1S2j?7Ks40cyr z>S>|T{zDs+g|i-j(8v>({F_J%6DKw+8fNk z;`k2s{g`bMn z9XlT;zF#U5;M^bEWw`|#WZ*s}%f|Jqf0;{380fR!!AIK+o0A01JP1y)X6so|1l-ye zK<(NdnM;{ym?M;33NMnztfR&myu-OwNE*FHl9jz8>bA1(Ubj6e>h%m7(PYrCuie=0 z^*R?SJK%|P4s5{!76+Flme4}!99Ps5K#&@8=4Wn}r7a?#b@09Qk2 z$Z4T74=}(BrII9bG`tbvi$nBp>#W&Vml6NJw?o(?%NC~=Xf;8yGT1I~b6YDkn`d2p z0xSL()rGRyS8(bBjQ1g}SD3cynB zKZ*u_krvBzF_O;6>yq^xv71Jt88;P_^O<5Eo}h8mbfCLn4m4_kxWFN$HuR?Hzr_c| zWQ%X6wbtb_lxMZ|+>LIyMpCwPm|@s*=Jd{Gv_Bt-=D@n9sAsyuK;pAYRkhZMnO!3O z{^k5SsbvYDzxhe%bBIbxuj#}RTiQp2)>^3OkrvdsYfS>HxI3T$-M)<9YGraVnc~Vo z4v8OuQ+?vo6Xre}e|!f*3!dmHLTj-!9xhqnd8z)eo^4Sr8HH) z!Sr8b3J=NHj+t@qbf(HkL;J9g!$-ypwzPOZ@JD{{Ik(|HtS4HwWCUvT23Qh~T@b9&tTM z_xBSpFik1BwRDLRk`}}`q$|snY*{L*1lCpfUw6{Wfi^=}3LT9^@JSA{xmab5UAdrg zqqu_5=EB_tx_+@%dX4xw1)G?*JaujJK$P?su*^LeM8&9z3SRX=qcr9BNXQrAYnfkd5W)>w9cZc zQ&}1?I*Xew*+z832AZ?YR~DLu#J#YE9{J101M~hiwRt?Y&{4Yj8wOu-T?H^A{tJ0H zQ5EsPA}o|d+_kH7&-=Qo(*`wk$~sy z=4d!lS~wG38)|Ic^(Ml|!?S>ymV8z*G9QHW6{~D>_UlSwclVCepo=-&XrRWR7!y{i zej(On+`o$@gCw-2I*=$^gAe+V0;4#uXI3EnYS|^mNZPCST_lz$iOn_5Y2nIuk<#GB zKZox>C;wFSEpo_Kvl&o)Wj6J57N@*d&r^|z&arrq4F*WzVuzc+4b0PKu>ze%*0D$p-IETiDb|#i4hAyVgzbAxiZEyRn z5yYP#zTq@M0=&NZ$l#&?1u#dwSjAN~n=(-Xh#|ao_t6OPg`+$=_5R&%<|g=?2gf8G zO2{mTFrU%w+}zCXY3B-~)ukE})9!VYWi!R{y6pySnibn_W7+wk^Oo|5j#%tGUB?_W z_t>#0SHg|BbJW>NYdy4gY-R+;&->VfGK*_dMJ*=Gx{J!OfF*wst@~V#mItgC`iqI` z@AQugCOs9UW>oq^wXW!+S667V+HpQLV%K?)PgU1>rlNDE6B${Xs8t$k zqg+A)otDTG9o#-QbBSG<5(^6H0l5VjE1ClFk4JQGvpb+&g-6A$CjCXGTBr-q1dcub zqmHehsD8UCqha8q44@XZtS4t<*^rDu9!hsU*!zw1B{ zjLfU)pCrHaZe%m!v_9WwRpv7PxjCw?Zcvaj^Qe!zyYTA>p!T=ji6nm&8TMsT*O7QS!JIi`LK8Gxh}_Qp!Nxam z5kJ(30(ZFkRU952cwhaDzEk(TExUWj{^?JWc2E2vDwdB8oMWybo2}+&c_L*)mvd{e z*vD4n_Hpo{Lb-ne%Rg~c&V7!frt^Yu*=1G4IcyiZ%$^y*2vbrHSTwlA$J7#1IT=_R z@>r1(+b99rV=ULM3z1H^o_xd?!wh?WSo*CH-ZC!4U;z-I92^UQZF_vXNY+%frFaAye z+`pwB{TU84ZdS#v(hEtf?5Rn1*k3ZGv{1F_P&$q7b?+GE7P0DBty!5!fJ$De`l90s zu>(w82n|-#SHhb3g!y#N3B+BFPtkh>58$c!)?+;~)a{l&WK1;f7{Xf=72X@EVX$?q zm8OnxcoYF{+)0wG{|F64OLKp&~Id9oIL7V|s_{`aC@kgz?!6==T#!Y^N5mW(`XoDYWR%JvnI&8Gi zx;!>-A_uIwFjsA$Jnu22et5SFr`wP_#+%VK%b9r%xCGER%pu81_x_I^uZLFDI#FWl zu|q*$uaB7k)r0+JtKHxpslz-PCk{$|i+Qly@PdPj0<b=1mFDl>b>m%^R& zJ>EWZD#|)h&1wK0ST|%IIRbyA>dl3()PSf67!CuVhIP@B&-@n$xC;}m;_hN$5RXCI zzWK@<(2|@QG62UjDTbL1K7GUfj@tF~tMJuX;P5d+YO2{;$4KQfi@&ZR{ZYWq1{9%J zYjP5BRQvY`eET_7i*zB&*VW89&td0~?teindist#i-PBJZD-eEhn(ED=YJLnyLVYT zM)T}YdV|-1PdRDZUGpKG+j89sD5_qT@d;`v9Z%S?{!ktk2&wK#+H;%-^SYzWfG}5r zd+l=1Tg%#(eX+o^Il6S7q|emisorHGdp`&MHAm0+bhtLLSTgbq6l@(8`~ulAuudO# z5a{03{K| zLs!WKHK81$>DCpK(>;t1;k1_?51h80g5)H)X`iP6EwzEjKNuKT-?y4DlGpAl;RgzN zk$LMAP#x|P><<6VNu)hs`KivSjX8d?J7K5Gq`y5y>Pib(#fG=HN8oYL7I@|=+RynZ zZtcVK@jbKD%p76DyPUP4C0u^TrQm2js%=B~r&QB0WHEzH!kb9^fQKDB1==u5OQ+L} zrM;TnasnI)Yv^VnFmj9$5N{Xu58$0R(5K`)9PHyMbmA81O6*B{pU+$SLoip@mDO-K z6Q!@{Q}1tH(9^e9O$SpOtUb4ZSA~1G6J|A@yHz(3vXk*z+qAQsHRxZY0c7{^j^eV}j+ za+2pNK!VORG=J^Zt^gq{H;@CDM2~Ge08$GKp!p7R|Af!3jaFVX3Lx$92x4U?RhCM! zgoZ&DW?G#AL=fYc?V&N)aboBA!@l-Ptth|F<;I_^wd5~b*E-oc0oS^7>^!zu&gEvT zJWIiUHy@i`(Vgzu=5F72d5zv7%Di#n6>!g`y-u!g&?w4w*S1aL`Th5@|G_FE?UEIri@@3VP1Z@GqaN0T5b;nOYzs_h`AuRkU%)Ylfp+J$j41rwpXkz9 zj7{49`de{_rT|?AmvGq0W<8fa!#vGY#R`e)%KR&qmmXS<^Hrwxr;D6DO&4`ZA;tmA;Vfwv-uffy*p4v+uQ;$h9gY=Hx#ea{JC3?Qx2!Ew!1aiDuT=(PHJ@Cks!mWPiot2%WCY zc}T`KAadfh2bc$|M+(R2Ij8bp{`;LGc zev$OwtPS53M?cPns~3G^yK*gs2;x|{1G?qVjw>-YW5h@P8ONtlC?5*_YLiEEA<4$je z-*t&=1uMqr61W$=`+Gh@zsU1BjIHql`kxX1cGSPhLT~_pG+Y1xy8j{4GBY%Gv3K(P zg;~Rz|0|&8SMKvipQLXY9%9c`H_NTRgGFKyC=?N*QDjudL=yF!MekSW!`<^s3c;)~ z0NUC-cpPl=zHTMzyZSjyNY`1Z#A6IZ9=L!547rTLMx%kZq_%Juj{ke zN73d^ueecKgIs49&72uaa`$hH)JmIy~75hvfN; zN->h7?_CNBgp89%h7{!`&!Ujox#`O8&-N7SNBf;L56zEGmsTgbWf$D6U4Vm8=Zga!r@uD`<@?s&j73VVA56KTTH8&O|!<0p`tVNaRO7o#I^*O$co}Ww_5g$ z)O9Pm{1Mxo?570XY%Kyf$8s=PAuKH&+Jp-ZK2LPzy^hN3u-%-~ugDyC2Liaym*goH zJPj_h&%fW;IKOT%G zT7C*_GEpOE{7%wzc(Lj6?^KGZ!nhr{RykcH{Q^s6ew&@LLPC~WOu?DK9wuHhD2_g= z#6Gi?6;cW)O>@SI6A3RV2b&g@UOI9JYj{Tj39K65rhVVWQ|P8&9;a90nS)+RpI|>_ zPd_Jpt{AASov0gG9?H@x=~z335f{q=K^4xlxOj({2-CY!N3PV;$@JuElry@8!3D9< zHNT6Q{BW&(n5=qGUCt$_TsYduIC1TWONNsxZFGol46qF+oDS}U3^z|owgWd`gsN~J z$v}Rfm#kc}$z_}L=S^#nTE!Qd0}hy<6^gvkN=kcs6i zJAkW<7czV%Z_wOXL67E$Y^t9Vm)v=sEr^vHOXdo*hPt# zHm%rF6m((pP;wNam~s%Ir?60k>(S{-%e0DG+s`~)F(8Z78Zn2i!9ml;bwBHCE>v$$fjXkZi71rdH?n?Ls7{uuDp$Q|C$ zk4DBI+7b^(2Za8=+hHzO7%KN8-RKHlPjiZRS^bfsByM9{G%;Mj(=;%IpSw><#5PEeK-35B7TX2n95X0R-&}KTkXD*NhI(R4tP8F9nis z`__WE8zy9*pYn_mI(p>ei@PBQ5IP9oSY+`B0WWP1>|y~J4gv5-31z-mJP+%$g)>?K zq}{$br-~Df7t)Kvm2BnSI)k&|jO~|#J^k^@ut7P`7jW67errgI(3fEdnUZFUUev9d zvxaePyWRZzPMleOpT(Pt30Jlad^wf__)Q&2bdXo=FtnYC>cOqep#6fl$;!Yb*!OWp z!4^#R@3@|Z(@1t<>T5BR!2_-bLFZ#!6YnVY{NfDdFI=+=hRsjh<2yK~tNrurpt}&q zGYrmW;{;v8v(~ERVQmR+@(-j`p7ZRd{10X7!RuY*K z5p+ElMK2(~$p&JwHJy@?l@$l6h|G<#885p5|I9lfY}ALBDjXt4_-&2|HUXQCaiRN#G? z9R6Qhe`6K_MEg4%dPMLKg2 zkxp#c`O!Z6X4yTZj3p#dxcfC?HUPjEVV`Sm!k2A2Dx1>CFu~qX6vUMIfE`^=fI<#7 zax~H%$q1@9YO-GOXHxa|uN*JaC%b`qtZfF5aQT?m0bcGj&i$45Ny>*6WLB8zR783A zA5d*}+p0UAZJ0g+m%W{y&NRiCfTqGnl`dVIbOc1cy7B3*^uRc}iJ;Sm zr%Jmx-=7usWB-UluQ*bIuRq=}-xCRDaCnWVl2Y9;tk-#-H?PBs@3`hi4;Q6uX?b|> zN+?357tklas-nk0SsR$7JH*h^PH??SUb;Mse?5+X!^j(A!fN)9&(_aF9b(e!iWq9d z3q*^g_K!SO!tH}=T*_=Qo@o^mcthxgUh&c46FteFIHscNUZg9I@gKgs*2gs1h0bT| zo6_Xx;S;PXi;pN*&BW_t6=Sp5;dehc?B32}Lt#@4LFLGCg(Ud`*+mx<3h*}*UGZQj z14q{$fE!yCQi;t|v{~e{Ta|yvGgj!IWbw(W`eH6aOwzayD4nZcS^Ye0v@dAQER!xb z<#}RWa)fC(6vq$nk@5R5Mr8&=tOl$)Cb zztQo+N<}+9>7X_q75ff)d7fqzlg^tI#BjR08Ko6ZVjH2AoOq_bTQ+c&oY88nk}oi> z>lFJS%|5xj(i>eK6PEf5n3|UK+DER+lSFk#KLk~e%v0`EbF$AcsXkBH|I)1gf_@;Y z(Ab@GQrTWu`&761RQE_u*61n{tscA-|Dbh{TJsdlRDtM0TbzgN++1p9cU3xR`P8Wt zr?pbP3GruwG2?vvNrswH$o3D?+&S8o#G9XOn4KAEYlE#NtFg*6h4i)Jn|x`~)>0a% zkevE6%=1p$`}Og@dUb(+Tjw`p_v7m9?EC1BUUZZ|%&;^J?N_hQj_s+j_GCwVH;6s@ z;hz*5IV@gr|4I($q&Iv}Yt0xvn0Ku5!Ji73w4rL&(coS`7OjlG;GYjrNv)-cobC!) z2iK8+dv=K+)%g*KzKX&^OED5L@>?}atpPA#{%N8b8J^gjkuAWW&|GVPsN@XF%f^OX z>Ey!pe4K~V?{m~baVRw1h#Q5fTI;GWr5Lf0E9(gfo>)k`V4^uh{WPzDd+;wi8WyeT zEp89+R_$<*&S?sG-;?g_QRsb|<2bN-bj?rV$G7)5hd(ghIgAnhrTe!9y>l^PKYpT_ zWj`@qBELIq3(E5@rkwAc-p{2G6tn5ATUsd>Md*c?1SNOPncJ?6rhP){INqF6q6b+G46n zd~Obj>4PsqUWhATHpW5d@;w_%meeuMew0jP&y2H2;^BZ(7n z47U3S)=n!pv6lj8Q5&^PS;Fo-xAVkwP*EeGuD?A)Sos0bo%-W|WxsPME>)6{q%bqT z+z+ZAXl*Y)J;enJY$Ult!c?A9Rs}b5u(6`i0H8VdRks%&-iHia99rmEu5#eOcWmit=(|`N@_wKpxF+}NI6oEn|*}HCaqu}cNOh45j~JqoX6hh_3JiU ze|?T~(+!Sqby7&3mNir7_CfLc1=cF9-R=&{nx3p?>BEckI>7kqEve?M+J#g)v^WEo zM_SX!VpLBAB!osiY4nmK&N{BS`I6qfbNxAl*?Pm_Fcr+_4|A0PES#v5^Q7YJj}8e?=VOsF_qY&e`jD&)ZHv>G00=a z0~;js_B(cM>SN{^l{zXEHow8&O9vG9T3k1l;AT_(ttJkqahZWSLTYBZY*sjKIj|87 zqZ1C-`~93xcML3++YEn@LV=1SF?xnsmt97a6Tr;Vm2w`;8@Wh|{kE=Dd4aTGj0|Wi z6@*>68oJI>{t)o9H+UbA*5x&C&cHUId>c3-dc<1DGiow-nC))`n*%Lef}Xd6u%Mn2 zrIZQ~BX^HlH~yTP{h7MykK>IZ-=K5U|c1!O*XQ;6`%7nHMFyDlr0(q7@ntPPDDba1;HN9z7(=pqW$?5_N$=Vn#h9){ zmqf@XVLGa(twr9!rnox4(I4JpmMXOLBA{Fu71(s*?VP~#fD?(1g9%~rL0oHsT=V&s zrzvos>IqZFdSAR8el`ghW-UmFqNZxYp|-Rv(RDy<(&*ZWM8&jJSeeu*(jc)CTWay8 zJjk(^%Qb=BHKBiU9>UGoyORu)mOn1Fngrp2K zyL*5AZ`#k1{hHQb0iMT5OB!K&E4AzUy(FO<2E$B6KjpyJ8T353%{I%Jx&DDsxr%PN zUyw-tezxF3|G9>xx%lg~wfa)8R#r?;+ zuC}5DN(zP~)n2B%fMcF243Ik6hPA*q`-wJbTH^G_F_NO;6My^e>h9n?0)#=(NB8Z& zaXI7vKS0W_!P&<7ztg$38->(4{^DxUU!B`;2hM*nN&m0c4ILazES>%X&V;JS+HW$z zbbqQN+z>*ht*?1uDA07Hd=9i4VRQ&1f`l0@wyJ3&iBxFPeO?#aoFcEEMDstry^V=; z$u1rhrh@#bKwy*80NN$uDXxtfgbHa%bpgq(2okyj8+(EX=i`8#6#^wefJe zIu)!QFW+mx*hx0|va^8Mk7_hJTi`RZNhP2dIW=~uUbQT2-1}2BW&f!)vQ`(rix=G) ze|y7+zU#lW>)-LyM|laIZ;!NBWzK8*MigmEhPt9d(@}(C8Vwqq(TGONl>=L-&Io63 zAhk2ScT9WN&5r@QEjdfqG-aGg^tSSM*t-zIoLn-t*3>!5UCgE0`F?MJ6xLY-yI3ye z4yC1@L)|IxLuP_-)g%AeWowid)ppz%JQ}nl)d9OgIbyL`wwWzDl39{b+y`eFPjbWX zF8#Q^+?wk>*F3n@hiUVW^R)b-&oS_{EU`nLb+_MqRBs5`?snNPpGwk{AWHhM92|dYSd^%hhwA+oOxQ3u?WO*fpfr z0UlA8xSp7U`lqk(J=pC6CGWSj8$lm2HA#M4TB2rV55P%DlZ@)PZB4j0)d%qZyn~aF z18sBtYU>7w004fEKL4-7YHV-oVE7+(P1~Bb&i_%@RI49IwTQ?myhz`!qvXDo$>LaR z=iEvzHzMnc2Sy|aX&z+&IM?Xa{dv8u3*eJ@wY9x!#nd1I@ENvkjvugi{xs2QI)0U; ztv1$(vcaJFSy$A0*Y4*xMplXXz2fd=Ql_ph37RsVF>1pjqkt$NU2d# zDOF?IZP2b&qY$TA*-Evh!$7Ncp@#y)g4Kdlt%x)tSTP)0W7{GjIAyhH6W5P0sJNu3 zy(vo^)h(2Aa)etKlOZEjqee5il|^Ihv`k@(nUAg7qGodA4kUC#s>PrAhS^RfVmDAH zb=-yYT{jE_1JAF@K26gGV4_}KJ#+jsGhI68_9hM&Zh<}knKc1LB1FUbA1 z%a$s!R+dF%@I3O{Ib=E*Ed*^$c0h<8Yij=VrDFYOd&o|-%zp1a4r3&*koO>CT(qXS zAXPqcryl4jHBNm8>ri>?uCg;vS zRp#|=(?;IG?wJ@XS2_lkDza_gf2rGkwzzB&HL(68P^2(bsip{2<@)$lG@q6KoK>OC zFBtk5>bW(!&YOh*lyLZ4uZrzN^@Zqg>VZ{K2)Ve6$PWqljLlsI#)_Xz2Tpi;nNiuL zX#q(3QSJc{EWb=3#BMt+u@?dv0T@gJBr5xA9+T@pwG<(RpX556>kW)^+`-t8@YBOX`RG0^Vx+jh_b|w2edQy!M{MY1n4O>xpB$*hxDM-cp$ed z;`@2Loxkm$T1M%{2mkq=_{*Ga@^>c5s-e%~QpVs$JooJ!8Stq*Aiqrb>V!i(KLb>c zufj+Hs@Isc`3dsoD=B+QjVwy|q_Z*JsPz?{O}%nM6j5I!lM$7!e7X0X(ff6}pYY%B z&3*$bsbLMyUp-sj8V5GKbXonb9=5F`NXd_{^0=w$>fv$t`22l&`Ey)g^{o97)c|WA z>o0hS0W#{A69MAD5jh0qCSt*em+<ObO)!#rS ztwiNSGz(#}?lkICzIY9U|C@%v2J_Sg#y7t=0 zbc_c%6iRPusU5WygMPUmE(hz2=?@44Fp~P2`78k}YrsGQ6{#~2M}qa-7(&;@UGA?z|2}lUpgOK7Z&$5Kphsxfg$uMP>j;m1psVV!c955@^rHk&t-`xWpI*Lk}EcxHm8*O4n63 zMfMb;NMmwGQ&P-9U0eK1Wi@aw#7{Kpj;L0`@(@y~fq&I^(M7vMGG6*rbHJb?BCcBXd z8m84E#~FG4R~u*m!QZ5-0GR>gazlR>=G`S?lx<|d(Q@T@Lq&Q{L*sbA;?GF>(qwWk zdmOiGZxNPCQ~7PI*we$F(m+$Y58ZSTzmNIrklh`gQYi^9tP^K}iaa^ekSc--JUjl0 zJ!ra1Kzh-;@JA>P7Uu5K_A$;DP-yvzN-EFra$&*OszRueFy6tlV7By7&;vqh(^z=% z7TX(>UyH38%N(F?tJ1ULrqlB!A^d|`jbkq~42m9O0076_XQ^z-8fD1QEdZE3E!47+ zM1e`WC=OGtO97=43ZzDXw}5(e$u@`|?;>tCn#&>J5~d5V(p_Exuoc9bQWK+PTKif* zAkrc-ZK1Nz!5@RB``Pp{&v3&1eVNooXF^0dNB;df#1IMH9GycI&mE+^m5dHlCz7qM zkPfI?G-ew3xngw=SUK)@U3_YvAcj>4P;kTzw-kW*;?|c_bj2Z&11*GI&r9vF%>LUh?81+3iD%5;y6kH8TC_ z_`73Fieum-#>td8N@+sHKRu%nI&8o2FTKITGAq%B1Y{Y?#hJjA zBaPuewvS`sraZEVrYc*&rZsH7uJ?$$$<}p()EKZeY|7`bLnH}pjcdxeO@N1+6~rhT z)$xy+C-2_oR>slKPiTrvx4aXpmR%dH9{BaH-DcI6pR!Z>yg+nM>$|?}bM#qwJv3OINu7hy4ip0t_!`$*^)R0Zwnw&+QKa=0rAko zZym*HqglYhziI3f&!TRy5i)YzJxATdwS9;rXHu!?+%&LqHY&zYQZ{ahx%yq59zXvM zyx8_ENLK=xDC=jlT8aAg(bvP<&`)pqn|?aJa9udPu0@6N7zjwW>8{gY zaFHNopzniop-TlLW}j-;Yp4VW{IIs0yRvzlj!bxyc6gbzxaYt^fl+F}jr;etUG--g z&RbR#;*`mTZpl$>-`uD6X4vA};u)ih0y6***7;=iN=pqjlw`{}V7Z(nMdt7RT52f% zgB1%B{5-)>|7yF3g+X+pl3&Zj{w;;Gyd~ym=))npQ3-^rT3fq4Ez5QFOch!I*lecM zu48OxKCB8!B(Dp(tN)^{U+ z^!N;c2}?&We|1Y>-re)b-J2Um- z19-m%{{B^Uy@~+dHh@rEFer1c3`$c9rw%YIRCNL;p%UKCGRnX<8*w@i89+=CnBv<8 z`S2rbMQqme{Ny41+=QSg<@rq}z>diM^i(Eq=XX+pe0H&Y{3!DF>Q$aK^7Kyr_w)7n z@+js`Wg$GN)5~2eB;1LXm;5`}E&`!4*=4@~fc{v#w;+3dpLrDTsyKOYv@687ymC6C zM`jNj^j;CE-?0~XDNRGd3WFg<(QrI*k8dNF~DyV zBkoYIZ=rwQtA}(V=Jhh5ZhI^q?hPLo)=?yJN;}^Un-j>9KZha2>uh{!=L=sJ9LhZ* zruc=-|Haok1&0>3ZD6r&+qP}nwrwXTwr$(CZ96Bnb>gJ?|F+ZVH~o6MFZZl@*Loik z(ieJ&Ou7?)wOjvjviEo6c)NSN+zQ6`x__WXBn+B|R@^nt6KU`N_Ve>%m0n+fK3%rB zn;H3#-_1L`s|wOJ07D6P@^$vWCg1-Uu;qEf|Bt0>1-mrlmvwhR1puJ@|6RH)jVx^} zT|D(&49))sENJ<^D&TJP9hLbc#BfRFHk(=Z;ItK8enoa?oq!?c<Cw>eRW5&HYjlWTE&RSmM z8Yke^nPNOI%t(63rpMAcV_r{S0r)ze#q@(n3NpZ^s&Ho79S4@iCKZE5hQ`4qi6@$J z_uLYaLhj;gEa=f?CxSwQ1W^$>cRYgdLu7iql%x&%5@^u+cFZ8Q_uu!&57Kx4+T88^ z;rYH?9UcAd@gy~#VC0{;Hm$dYz{!pv_{@+7;ypm}qG-f=sV>7fyOv!(Z4WSEP~KR= zDrN%viXVdT9)V^=5e$3)(b)kfhExMUiX7#9McJY%(zFr;bfb^sZ_WC<;PfriNyClzI`CV>;=ZVS>Dq}wJAVCh=3;qYbj_n z=t#z4!(=bP$m8J$IQ125lqIi!1nP4GG~TM%Z*$R7(ru$qxBD?GZ^=l_frJunPq zc~U}P*2brz$@b#0>P6?Gjn22L;McI?e2yZj4Jthg3u(q{cnijP1@=vQCP3P2$f^iT zG0cw(*YaGOasc_(=)hV#A4fwqXR8X6Rq|_MDXlALB(T~&dI+}ywHslO2d}XR`7!QC znoL2L1|BK7;G7Tc5zv_QV*+9gqE6ZiKSSfgEs{k~(3 zLKs<5GwyFb#UKaWioA) z=~XL;+CDVlvz}RYwge=wYb(o!w3{f!yGxNc8o0{E&G452vXVn^xNte8#HuIH{{lI( zGn2h7!PCTDO43wl(ROY6;^tCs4vb%E0Ixj{H^a0-#RhLWs4&t-$L;NU z65HS7>57)k>wZf{JAzI5N}{adSyPSMbyuw<Ne`M$(s@$W3&4xw{uS;HNL2CdfbDJ zwkA2QtTd;DH5+?ujA#Hh_U390qA2s)=@`PxVBzwF-`Y#BEXppQmZSHOs!CPZbro)! zX;o9$@xI(rvyV(@%>j0UpEQQ;eDvvjJlR)eYP#NujqAL<^c1|;`WWr#>FRN|`B>2F zhT23beMJ&2)kCr{`CFaY9Bn0~g<>IG)e%OE8Xi_Nj=CiFVbjSu_!8_@cKDHhA4p%6 zC#7kOAKroqZHr2HmPWKnm-VgemHm$7iW_7L%Uk@ZpynF^Y?4vG8}6R$E+ z`_7~z<{n(B?ItIWyTZg(Mm}3UNeEYd=kprv=5`MItFY^cKv=iFsBIR3?jGMy)1Uhy z1DJX%9`2^aMp)5MpLtJ3uP3YsW{uF?AzNP;XH9$rO>agiZ5u@&MBsLG4p4>DhESpV zP`fSv3}a+*sr79W$X9u1*t_%ZV&HnJseH1pA)zUL)QWBan_0D3k#F89x>P&Peo^_8 zJS9iE?&zyOfamhFRR7Q0%H+2QMO*1gTpzaq)hQ)FZ@Huh^II$OD&iUCCuR7f!m|C! z9^)#7R1D;pU-Uf$3sT`?opw%m1&7P6*MtGN;vE zocknlrs93mS7n6D_EU3(rF`qO7x>>dL8gDzYHavF$)LZNSdNGQ^>03&fYty1^P z-L^CTB8zOTrTL_o^n>=ktG{s15-?y(yAKT zAhmJ_jie!ir&ye}q;*jXXZ@eSt97D|8cP>RYDu-5X}wgCu-Pk;6){77)&78>82jpJ z12gyPICT{&^7Um=(OjljrLh{I?P$G9!Xf2$qqAABPMK`oakAfe#lHxR=Gq1^(i4j=h)%eseE6{^Lo{h zR5&T?&B#g+UXQTpOlNx&v*fj%7#ycfFvOSJ7Pd59BU9}2-QX5YF4d2Ax#GuL7?WMm zZsUO%qC4cPAN!M21d1wo)!Cq!?v`9}m!{NRx%nne!GY>Hw>P#_@g)r`&@yx%k1A@` z3}{j`3Z5j8y21rMUgQnXh)yv%6eX7^7C)h6xz_K2dOwzJIztZ+yK!DT%saWtPt*CNXKnUZSu5u1nZ zpiPC8_V|;tyKO}lIsnm};?2w+Do2G$Cs6hpt=eZn9Nn{U@)q1#urrv0CLX-#kv(H} z+3d#l;=*z5daNrzj@{zD!mDI^W7Lz%baZx#{J(6VfpRH>vYVA@Egv}I2vPhIs!b!ucLJzsj=^8k!;?0QHT(xRp6^bhvCLssw+f-? z$v-mykJP35{G?BXVRN5H0=U6_ztFr@lF^Y0;0|Gzo{R9BA_^oi7OiE{!imt&7Qh}K zpSPZL!WRQec}c%4GUM3=v593hIuKi7fSC>jw-?U`YF=8pI=i54qx{lN&k5PWY2C(# zWEt3RO;DBCjwDeZQ{@Fn%JpfI4K3z6(Uu^8+nC6p;K!S8!S*sM$Bnnl<57l$p2GEX~JO0miIe#!4d!a2JuTUni{+4yE@tE zTbSB7nEo%_`2Unh3v!&1734C&e4z*k2a)VFmRKf`0Y(-YSVpvNj2DY3x#`dUx^$$9 zDK;b(ZNN6AmUr%NI=aHfB4vx3Nn5mPf^|qIl&WAYMUs>WY1a~0-o#Y9**r;E=xJ?T zWkt%8$w2(f(brDP*q{ErC-(C6adL8Za2BYO)6bpWTt?8X8BNh2DY-(M&ra9WlGnLc zqoFnlO*q%2!0Cg}bS=8jZxGUJQ};`Lbo^oH4x-=f^^=zW;o<+v(%aS3)z$fOlyKI@ zsso6VG*2zzAQ&y)JA;k4h|St55I-tG61<(+8}A1IJ* z`vc^(N6$}YM4ECUNt6n%6YGO1{!%H}tdRo)1dgl@?Ro1;x9>^ScigDNWq+ft;#{Pq z`v5SW!Jrl;8pTZtsRlVl@a{CBzOC2UlB_hrmc2+LnHWhwp+K9Axp{Z8(WGzLSN@i0 zO(&fTr{o;?o-tN8M2Z_35`d5ScI^JSHZg71q)gg|lWii5ideOWI!KiHvov@SDjmgj zMqAFYVz}nBrHU)hyp4K?zDPS0p$jcA@U)6{Jy|iT27SupDP?xVnem+8i0a3DcfaG^ z7R(kCKicTn-_fu2Pjm;IZ|A^L&`iIN_v`)oZOy*Pr{XDegGEBlNH9oa`q5)SkQYZQ)W>Cpp z`Xg_KiQwsY$!fK#wz`N@IVnU)$|c=POrRK10Ox*6y^W%?0NQk#kC8zI=g(k)lMFC6 z*8GWJ2#c0)uD! zFx8)cnCV+Y86KTYaSQW*OEfX3Ac|V8@`k1>Eo?ug{Ej`eRV({vBi=Jtg=Mg&3&k|ie zUZ<$W%{UY?;wbzKW*AIe_(lsc2Oh<*WWf)l&Qjmu3*ENi|7)%r9#y)^-WQQ`wDpg~ zr$fA6B(@5;JRkcr#vx@Yg`gu}Nh>0fyzx~c>!PZNQi*F}58T|&|@)ERBM z0orD;y%YKvZs+`n;0)z&a&+bU-i7`?1vodi?UXO^*?d*L`%gP&@YMqb->;HH?03?W z{ui9c#M0U2e_z@9hED&B5&f?(LjcC_r4C_s2+5%*EM@=-Gr9G0v{hkrl!7oligv7x z(>+Yi?l9)-<@~B$vNQhg&>PKp62I?a2T50`khh)28lNbUG~UyurcpcA6?$_gTy8lJ z41LPPmQ9EaE`0vWfZI|=A>UuiG_y^HL`Bz4;tto%YOv|FuC1=ChoR@=va8FNjjO{e zvPc)tVIRCd)pVDJq0~9fKzSjWD54oY+S-SPP>*m7v5rA+8N@WtW?1A5O<>63hmwuY z>TWUOxSJkouD-1*-!1|LzjL`<0afDLM5ZQ<{Hs>&(?&-4RVR8*lACY#I9SSr7T=Wx z?|i;Do-bM`XV2U(Gtpw#TG}U(ER6zD z0}5Re!nup-y{+5B)(K<_rXn9rD4!Q&N?vKNR4K;XH}3q;80D?I=?Wga^jV24HhCJ> zSdN+{nbL8#X;RH=!NOMm*?$0)Q;ZsJcE1OZ;`adlHzky*ow2=%rJecjW*4KPXrJ|K z33{pHV1@5b&1Xxfq*D4fPqR~6V!7M`k19Iezo5a2v0G#=samh7enzqsm?R z_d=eIRk01JY|q|tu#9I^T$R$6$~88F(^oRpIoOweu{Sfvpl+rrKyyt;z_yx1WmA(t z-qgLm*fzG$Ta};q{4n}v?(o;C@vH7d)O0lQo(xdSdNvL%VQ_dmUqP^L77# zHbZC;|ExWWXG&uh@llz*JI#8>ucWzrlXT5O1u<>$13r_YV!$8DsxD>$78|F z6X|A@8!f|x{QY)`VI1%$38t(@MX^dH`GzJ_u8zaZrXh3Jmoz2m0~As`lmL50s4&ke zjzi+cf-5R-hMXUZ*M8{Lc@H$Y0S9_7Mio+3Fy)oAjpvNab?-^L6hKVBbH9CkV`IZ7 zXoK3pqNwK5qA+B!S#%~q^@z2GvB?RXQ_IWpI#N{~*7`A?({z#&et?@fl-|NR26S=b z6X2gVGC08qbzo(~1F!;WwYytUB_!&SX4JT{Dx5c*yJ&V&r{6Y_aVMOxaYw5e_0?z@ z@&I-}ZH!A%B^rk0ffb@-yZTu?&w5m|h&6%rh(%q|d??qB5`Q6)VY{PhHTvcKadF*Z z$hMohG;PSU@@>aMpaoYfzshC&!rK#3=mw0E{T^VQlL!0NJi*$=sC&Qv`_9~YcZ>`_cJuYtcJ(7*q{AwJ#wb*z7n zY5>T8$02?lL{7gL|%s4xLLpP9eHbe@mc1!G1*4$lO{@lafOS&azUn zTetF@P@U`ubL2L*Sr>OXHgmlbwl$aaaa*-gwlY?jf0A-|3G|ers88erozOixKpq%xhbx}{{xEyhmkz?r7s5iX6La+O zdvKC2$vAm`^OMXoz;Q~2&SNS(Pip~p;vF+SedbK3Y7jejm`8f#$~%w5WqowVCWQcL zPj{Vx{Xko<$40nh(xNJdk7bbZkXZjKCNcl%#}ZcaUdbNEHu*wR|g)7|!FDh`aT#D5c zwesa;8R7P*gkNaf)tWJT;#Hw?N%YkaQAOA0=o(-9rl~`}c&|!E=DE?0R*%GDwmp?g)^Q5tKoo15!P0f4tq%_p&HBEuRMn1q~Y3 zecfI(MQWi-Xpyx}tw?sHGwV8H)Ss)Eu9Y<$wtVJ!HtJ5zZws?t z($dh=e$pG$vAMA(T*k)KiJS8tb>wHWx-%Q|OyT6Z+A|xW*Aul%%C6WguabM_N+!jd zIcD1#xj%h~WimGMQyCq#_itSbR0*4FG806KVHA-u5=wG1UaNW#W!4vVu~WR1q2>)( zunLkrNDsWt%~~cx;O-WrZAdVyB-e#1ru{o45CtP9$5LxvgAB55Jw~dXkRVlvWJPUA zeL&!uQn*|O42=w@QOb_=HpQZwqJ3#$12)s0V)8)<`r-0XCZvkNG^NxDX#r0K@f~M1I^RL+@!x%z4j%ydY1l!9S<50ZSW&3e2V*;BG)iC2I`{}XyU?vV zb#R4^sd&80W~GM23An*Q5;|?yeO|cWqsdIKIt-LbhBsAJAy=fr7e&Irl_!+O=ps%o ztBySd8v_Ri$7iAU(S(*n+Oq`g)fuW6V8-4ASTI)cp{F4w08S@_#4}1CAE(p^9VUhm z@`Ta_*nt{H$^eYk)J|8Q%cGwp&F%x5J}Ow8Iz^hL(96!9H8ZSPu?Wb_jl5#GzcS}9X`KqQG*1C9jj-r$g-V4uI~x+#@=`t7`SDnu#S813H8DFt0>1`cVZ zkPZ=Zd4!X6-jbW@*~fg*woITh6lZfXS2SHY2Ml9(Yg09l1In z*dE0q5QQ2I(b#X0%RTV0Dq_u>F^Jg7%BKfgmSEaIiR+5F--8nyArP#~uH{oFz2y;4 zG7~>nx%yBz)^c@D>mOvx)7qNFfW9&%W?G#paKxvzD^xBkY~g|(Exs^2@3`sz!Xy*<5yH9qR97{wv1+F1flUUi+xfRIo?o~&SjzM1R^89eyGc* zKa$pJC*xQ7h=CCq!6IfN5}vm8moKI&5dEPw52>l{l2vnXw+ZB}I+lT7$ImO*BjWkr zT2OiU;ju_b0dx2yEYa9Y@UB*DUc3Mf1cvdTh-JA%ugGb&OrTjpgGa;Z6%qX%hG8|v z&hv?%HO_}~^tt>4vv=Y)J2NgWweaPjI5)ZD>r4>+QVW|qq^87 zx7>DqqB0Knh&-O24@qguiCK&-G_t;Lp}|Rq8mE3MAyD}3)TIo1l;KPHe?5g33)ME`k|fEmk+EwMq>QrX z6#pTMlE`i|Ro4JY5hm-1viJG48~(V>nX{kT-&~|U#+moYa&^3AM$gD$on|)XXCW8` zEMLBh0c5+=K4Iw)smdAe=O)X@4!PN1mG&>%PHffGL!2AI0|(&^K0d~wx48@7L_P_h zl&p6xq;~H9J$wH=aqsrP@bh$bbMxz}f^Hw`icePpR>%$s=LEz~0xo@$YqUn{6>QJf z4;%i*{J?yS2q~fN&;i__b~cIEY*8k0xPr;RIvP8N(^L@Lj)}hIlC%>a;kq{jeRNN- zz1c-;YeRHz?iC!&M+RJ1}PXIi$7i)Wm?ffvA~ksg2{D!!K6j zTwSOEGyCML)7Bi8BZ4GJ7rf|7KItrFY?uOeB^m(|?GesN*r(T%;@ikMoY^<`*swyF zPr~#Wgl6q!prWqn0%PDfkU9r~U`B&)%NPag9|sp0Y9^fyvYjS7}2|fGR6Ucp}7_nsWuZk|X$R)pa>eJtuLo8l{e~j(JX5@94{~>;o z`QlGMg7m&kWWxOVj|Jv5(-RlqHy)e&cZnhR|9KU1kB!s`4yjGSNOf`-S|Be?)x_xZhI`c|8>l@KG$+_CSGO;a~qMfMK8FQ2w-4T5B(ra?|-yP7WrrXGEx8l`@b|a&VTuP z=Dz{u#=p<$8ukA>r_50SOasW~os@dfY&?K z3zD(hZZKo^)>74I8M*w6%p06$MILtN4GcPKDmuRsp{9vqmBv7p=T%FnZmVJ@0cKiJ zYmJLt@}zn?*Pmi;TsQV^Ldx7}l!L@ohk}T6tV`$mufxNwxbtIs^|Zb+_S?3t%WG>8 z8u8RQ@&JCgXN-MW2XC<3O|kslq`;JVWS*%d?@|^&8Qb7zIys*42vLJm1agL-xB4Gs ztgrK4adsHt+7|FX06=&qU`hjOt1$C3T38k>uA>==JEO0F!X0UFhERzOZTe4)h5U}qs6@*vVZEWWmFhWvO(VA2(jDG7S5 zptykUO&bWEtO~HBB#?n-uz}n3Gq19e606c9+$vixs@m%Tkd2r#4+vJ9wT&dL7#+B) zmC#jCRZt^Ss30hVnEcY@%0MZ!8UtUWf1@n#J`L-RP4>)By;>|e8&h5hVSO3#8->$T zstr21X2)^IPAxho^pVF=&y_UtQB9=UHLK>Fx~Aq;BcbL|-xP~3bt;pUXL6 z$pQ~aLG^CIkl*u}X!li!n?#suFZdz6?^-%^wnW_KrSJU;n_ z&ruWVKn^7MoD=7vf0gMh$S{U2LTCy>x3$NE5gt}-LS7J-*;$cXo^p@|3dxx=cfZ(U zKq|$P%G5C@liD!Mo;H0QBCyRx9XJg13uBGCas~7yMZr10R}~;O>bd^*?%E_`=FWDxd;dovPs>b z)D-5gfNu@}3zu0XcQ|qcuDNRXdb#E*|n8&XJ!VPv5`0h;3mo`Lb0vRWfLo zSyK-Br-MDk0;9($Ly)xrq8Pp7v`bpn9}I)w1OA3aNXLj<)G#fC)u)8HdXz!GXY3te zv}tz7nB!7i~$UB3`FhF77F^!*YYS4bTPr9mgE3ipy|{tt=;d81|M&} zx+{pt$>(w>29-J$ID)vsd8){SSpm5UcR6S*PSDe4(QXZ@I$pu2ysB(M^N+-(Znb(9 zC*}ASh!Cil%t5rCp3u5-_F51se=Us5KE;)fa{w2>{|BJAsd@r)+BrQ`Xde3~xLcTT zOny5m$>ajzpn}_;F(@V1o|;H^gMr@>~{e|MOzZ`nrh;5aB$V%FM4X9Y6#ytay* z%L-Y0^h~$3`1RG-8Z%cS0gtxk;L;v)Y9`l_cthOBG9i)!uvqOjr`olkMIqQ!cGt_1 z@uvoq;Z?28A5?!&ZOq!bxJ)!p;%=r83O9&KBQ81OCUC9k?GV0}k-1sYDZIjvF;@G5 z-b$&Ww@CLaMxT6oImg#E2rkRknnE#Z;Awdw8^yyIf<}#+Dj9X{uS3EfF;>252#G-|wsNE+g*M;_il8#hM;S&WMu7dJ}M*{-HD z1kx|s=%QkK`vh&J7*uXNeE%D=_44y{{Py6On+R7wD;<%SzA)I9+V zq`-JKfTcoc9L|*qiM4;AilMe{G{F{?M((3c)3Mn=zYe5et~BWm9i$)khmR|7M~4Lc z9G_kzyN$`(=kX=J7>L89vmv6)A#`9+vCb))UCLjev$t58yj&zN*^M!e27@L{1{rR1 z=6P2=OyJpaU6_YWA`L-qS3tIQV=0Hr_V;LN;_K8?)rkL^bCT&#+Gq5w1U&3Uq)n8w!g>8@@x)CI<5ZYpirA3I= zXv+h;vH`&+`5g4L3!@n!*}ojuQF8XbJG{nCjG})P~<7&ZDBZ_sN za(zG8r+2DKE*utc!qxe_ZmH-`O&DoM51A5QJ~hCxlHoXkG32oCf2{Ejp`Am-A#6 zK8X1M_YXSvIv!w-okD$R*&_e$%2oro@`3;EGo>YJZ{9*7H4HWvl*OB;7Nvx(3_5ST z*^XqSp`2E6It}BxV?R7Nn=a{DCU3QLUku7_@+1jcy-$k%iut=V-7%Mz@ds?c&P%r~ z6d(%6;%9H}{~^#Tk_T-e_aDx`XME+8>bEpF#~|r0%pXG-0p7U(b3SB6VY6OE4SSB^ z06>~l8SD`m-^|OnGNCX(e^wk}AwepFtA;%8o%e5^HkZtgoDA4UX@|$sMx?Q=l|I31 z1$_jW1b8NE_M?=n_Csx2@ZZ0tnpOX5o-`#^jypF9ab`qcV_7F9kIEyk$@tjm9~~#z zCb1u|E*bM!n2DSszafC8+ON?q!oEN6!f9;|AcNsR;-GdxlmpY^h_h%GwRuQm3rOd| zbxBB+?LTo0oqStyxq5Rf?~t;H3}#oIhrw|(3Tfi5^6$#%D81igBD!^5e4^JFs{YK& zOUXayvdWt_93`-;_5O2I&_jT5wKmjZ4F8VxAWbk^pp%abK5nJ3{vg-A7#>(?gxr!} zmTgU|>b%iD2W)Q$H({fBaj?SIVgds*JcuDUf!iC|h0G-J^OxL?5_m+`9r;6G2 z=&X+YvpFeZ&tlB(Q}3bZHNcNo*2Qc+g6AlRX#E4!jwZ@r*qd)5W0IJRm8psR)9K)JljoAh8u3e9U8 zj})C2yT2^fCOQj&$<_fVrG9=Aq!N#qT`a&!&U)}@g|1XU4*iUffmPO{gSD0DU~&(j zx`CJE3s8)<_7erpJ}p?U5SrZ~r~s%M$0#v;Ak54iK^K5K`@Qn3K?n7T!Tu@8MFseb zcL7w8b1(qjBrqxXv=Sbv1X&Ra_Xc3T9MWPvqVUnZf}1F`uH`!O=o-0wd#xm|M9R+3 zh+1zWPo)8OR(66Tr!PUz?J(GnIq)Q1`?ly$#VL_U5)D_J8Y2i<*r0!LO^e)%B%7%N zdFTr8zUCM?0X3L<jCS zERVX?w`YfUaE5(*(5*A3i}^42Q{{{`R^4^`Wy83-*PZ)?9I*pPwsd| z>$jta4e7_9AC!=|{%G9kV7o|nd88vEiEeNG&$V7H15irWf!BsaA(d3?OQg?B*1mMI znspaEPA8xd@A$sM3A?;im`)9bW+V@~dv`Y>v?5BiO}I`3+uV3|LMG}#s%h|`up)yJ zB;2j1Bv$r1o9#^E1RUk+ikB1<9cALC{gjz*gAKp2wCB@rh>R@Rlokq!>~l5?X?MBE z4gyyikv(?m#mB@jkA8Tg;fw6-=|9M-OQrQJo$YOav7jvz(J319mgc#Tu0-n!O$OoX zcYDvj^;~4^)tn*h)oj^n-BOF%YG#FUBza@<8?ri84dX6 z=JvDvdUp7^4V7lln+}Sboc3~jI@#TPy_q?ACAajuB@Qoc|MIR$py<%u=%`5}*$(T& zO7-N)LHtg1n<_D96pXI?e$_?O%a2K&Xs-4Kt7yMbutSh3J32yc5L9kbudkD^2885s65I5OfDD?Br7fokzko&^H?IQ z0Ce`4Gl1#i@ZEJgOsP3}eiVYWYhdaDMa>ABS1mxr$+Z1bn?BVO-hG<=A27klR5rKK`ttrp*4B~0Bi?+ zt5aBPO9y;{G>{70SK=y9W*CVV0=2%r57zH|@b58%hYA1i80<;bfKr zi3U_qIQALH@{zTQWC%R|gWai-A8Gi^3B0~1M>7I)iYYaV^bWB!U$xaZ%zbP&6KoF) zhe9WnzQe+r7er19mOq&5uj!$2LZm7b zST$sBet+?b3!*uZp5nDC`mQA7{g1kgu?`IyEe2?(cyhi9%RW4Vc6=8q_|y9MMv(>} ze*fGo*nkWJ2zL4wZyFW+Yksf{+(NF=@h%f=WI9Uoku(_~4|h&Mplg4A98R!bS&k3o zq_121@ySyvP3c5Y6-@dLk5MY;Y@-T@ zuFBEV^ss}>4FEg&u=%4r9U7E4$d49=wfYcMW;!kL84HHpLoFEs+xUDfPnv4 zC<^ums2I+|XhN_^mw4vX9+m?UVaz84qjnDf)|=-J1efBgx-pbzDs<4FC$eUWp-Uq7 zgw}?ubj$RR8$Qk7or;6FRf)A1g7{m{I@yLvj|V(#d$)uv_Lj0J4sP!W%CkoXwWYg< z;FhFcc@4Q6KNLn?F+T&rARH<5^GJZ$yt>K<_<{RtWUyOeNu|;oH;MzM-kIM%;_BG~ zelu?5M+_iX?Q?2NmuSHgEFi$-qRJ4)1n~d@d2Ko_-cvRxKig7^_YhW~N(i84yCqXg_ z1?6lyKp*4e(kiXg7*~OsqtKv};=@A66M-MXd>aKkJiH&-xVqBiFU1nMy?J-W^^Y*p zE_@%n#~UFK!A^_IYThd3)cV#!rCGKiB|IV)D|KokbVt#aKC=T$b|U1veBiFH{)kDW zl-y&-+WF|(NFJUT8F?FN$Jv(Z$`M_6_saAQf>;P-s-GYK3ly@p7gQ`Nl(E3&tOO=u zv{HoA(5e`(Y1eQ-IE=W&#;zX(D^#(vT8Z+{H)HdGgN5q~m)DBe%=_1YBQi%850iOO z+TdYUNJ+A)C6;ln?EAMT3+8&yB7aX-y#Y{470$S7@|qFwYk|#vxmbl>>t=3LRKYvr)cpfW*DCeWP!hM)Rho~im=ZyujFzpopnNY4cBOCOv5fqsk()C8K- z`+@3%(ObxsR>JLdMWj;bFYm}J(hcx^Z5xp!+yEx{(6ndj!8)sp{$VY1zR<0^^+yqi>9zuPlKUv; zLFF-3IC`iti9p<@Oyr(OMmvHwLp>4xg+Qm&2)?;%fXihKZe1D^W;(&9si1H@Z9sX`4 z3;Ws@%uy77(+GgrXli#vL<2R+{Cz7T6Sy?2cwxHBNx3R>aw2PY2&2~3RVsT< zM@6p6+~0bKu(p_S=I2Fes=Wre`pyL3=x8#K6O1ZvsmJ94!tF?uCXBRJgeO6yxWRIK znq|j{@cx~Ai-QQuR+fqoWh%=|R;US*lT8SZLup_nCe;xS??8&t`+cr(l-O?d2tP!z zBBQ~427|L$%N2s&SvqqNBI|nyaUrtm?&B5;#vF*Cs-&ow{s}}8MiN9GS4#?IRHbH= zF4mmyFIRTdFAp>IacqU3c73d@jYm$cD!walCRIX=9WR>>*3@ENEB|`J&AIyVHu22C zll55N9yT5EqM(!diaBgF*dbemZmkYJriCyY5v6k0mdC}JONkb1!f;xxjc_1f`?b@1 za63eozVo0B^mYWF@u?DsqRaFBvOgEzxOgj&bpx{Jwd^J;oKD{AkD(!zQ*G1Q9fMPi z>WR#G?Fpb9x3sMio|6d;#HT>l7AdTGR|g<_ko+Cp)}=+ zJH-^Je`Oz_Tjo|p-lpBWrMESgr`Qr6*QCA_QM0w^$%PAM$4Q&^!tD8Oea|q&o6#_p zPZ)EfHgEffLzs!YbcX4}`r%@%#D4?b!YZ=ACe!F!1p{^WSyf5 zFlWK-jqNQJc-0h3lj|0|ZjA7J}QV zbD<})T+;x?Jc9MBZio;Jbje>@DAGQ`;w@#dj)I>h>U8sa;}w}*%qq6vSU*Za-UVK= zJ0}T8nOR)l_1R!V9i$&qVMX9PF^2A9ObfJzS8*QcfE1FL0}ma!2N|9grw(Bmg4oG- zzwYQ5NQLczg5SRyFiX)kxK15RVkOkkd-(WTl0L0QVKZ}jc-fs4 z=N21jPyXerld6c3tnz$$U@i->{0YgDlqS&CDE~(R*`Fev(9}=UwwB77jDA>!u=6I zTYA{}50p!eiDP{IT5#jUlR<9&(F#CXLh7CvQ{oi|;S?s0kc2UwP%D@YSM?L)Udwo4 zxIbgg*?GQzA6~$C|1onlJL3`WL#LtpkKCH=aJpYj0+Kd?-{M9&YPjZ;6R8zX^X!u+ zF9+4Q>^5Q4L=P#=gSGn0`5CT^WdBXp`GBCh8mOZ^ipWij;;T&Dd*L@bqtuvNYXcHp z9Ls30P?Mn@Pvl2;z7u{?BWqz?LzIsmw{=9${+WsByL{*EFEBROlX=Zm{~Cf$e75%9 zxe8g@U^I0l#A!4Ri5By3qJW&$f#uZ^-R8A~JV?fvRdrXv0I4)5AlR_--&s`Ef<0H| zMF?chId0AURQ?R2l?nzg*`;4D;&2uVO7x%Uddy|)w-SGB0UawV1j$VZ{VRBebGVvT zra(-z=%XmK;>mU1J@7V$#R+|!N_7F)erTDg z-XuX`pq6rQ_ZZ{cP9OXXg<${S-%Bg^{1X{!>ef+8TycuD9p=^F7EZj6Dfhqno%OWs z-z;G;$(n*J=_a;tj<;)0-|K3+@QJrLBQF`7$B6NalcQCUt%mxq3`JnJuY;Ui_V4Qm zrC|d4gj4+^x83qd8hdmdQc)!oeaWi1_*xIpsZd#v-10PG&eGv^3G?py$eS}vnQCjs zaQ5{P-sBfnQ|lj333iSl;Ei?6UHe4MsK_@PSKU>abb=faQ9FCcWuZGc7hINy8-> zQ#H}df!hQBkMu_Cqv$Z_oMMjZrtnPMiDQ9tR*+amtr!~9&@Ytnjg>`8o3xWj@~KVlX`48b-{T_4ziA!? zt1qafu3M>Vu1>2BugnC+xdzK=g1)tVtEP`4i=m3VGNvCFy6A6G6{%Ep(^$&=(dolcJSb-5tz%st;bef<|T#*!l6}LTl$kbw07f zC)CmwBvzGGCa8}NOMa446|&BzDye#ThPq@7WNIpnlq5=``QpvLGPohO=Rqi$5ngsV z_McHsqhyvM3(}%jxu9_s`CE^na0(WTg4r+;{}{2RB$Oi+m=rSF;_f58Fxq?Uhnk#gX5WgY|h&G#p-@Ne=hrp-|qB!INhHx zkTOMem)Jh{%1>0pDrao}g-UZt1=d$D;+kr=7=~isEuxJ}wcw9Y7JVerAo7YWM~=xj zg1AB4l&*-9(f*-PFj;>%cn}Qqys)v>A{x4>%I4<>#`5^|$gq)kgC&ab7igfCVMVR%KMjIRbmt-S#fFEFMh_AT>$?Bb@wSvpq*ZF>BjqN`h1w(&r5?_N{ zy6sJ$q;C+Tr-1u{P%|N$s@)6<3i<`&f>7Z}VheHHL0y6uJtXKP8a#p8D<8mj34&FE z$NDxfOQh!ZMxaSqMx|+o>Cqlbvv=f&v?L1r+kZt?nGAr~1h@HTP80E}o7M!QwnSL) zm%La8gBG2sLqMn*0dUc&O9-7w=^UC%m@pC!_E|nSidS8A^g)NFnB+TD@)!_Rh^ct0 z;4d3HVW4|dKG;Gi#V8W}DbTtwvfDa+2x~@Te&!AitjHqFU*1n>xCfCSu|T}PiD&pe z(E-l-J$*EIKqDGtRIw~5VFvDFyQ_;0gtX@Q@|(r^ekaA3dOx*F|Kgz=NY_gV1RL3j+~SrHN0C zALoKVMGH#)z>4$RWQ6zV>vRtS9cZhFZ#1q4$H_1ye)ocN!!X;!+74=-Y{B6OLawa~ z1L4pg0{_*er}_3hup{jn92AC;C3D9;AzLWOWzll(TGhBt4dEn!DTFc+KSvl!aE>aR z-&k=ld$7J1yX;BRlNr93!Fh4bg(fd%&uplhcuxPu@Y0{xl(!X~x9v$1=t_shIf2$B z>IFAF8q)%;aJ2z9sTTN#Hf|Jd6zqb(D|J>eL;+k=M&sc7y^HyKwV;6T&2E}EKgnX& z$Ra9^AgZm41QA>|-@1brnGmIp5LZlFd897CPsb(Ws2Sz-tmXUq`g!&&=(Gf882xT6 z$*zb0Z>a%TejVJn1g2klT_XW=VxQk*t{cSJ+9DonQzf-f%I#{x&Qg7Q(P3#l$t03L zBH_sK!}rON>scY-y8jXZ0=cXN>`7JKT5*|h8e$N`wCgA=|0j0rgaBtbtnWA|dl`MB z2EzAHqe*|S>?RY8fu?0PaRnk;U`pAq3+VJTfS>10;pz}b6r2yJf)Dw2EG4ZkKnv;H znK(IE!4iR3pXvf6WrXER65m_i*Dt@K%YR%z)CteSAEA zCCJC$|A})H3Yi6L)csmj>FgQs$ot%$30iH>!FZcxmI3c)_GCLi)JFU(-Gf?&)P}D% z5d4f7Nq#R18D*y#mqK0Gi{c!@M4P; zOh?5(cOZvHWR)eVaD7^R!B)$)I7AAuNNU0P&=0}F3eJ>_Cni3?ghej=X$QMhNC>rs zQHZznHM4wTDB9YV7|YZqXBA1sIR1g}>Xff%g};r-n-wM??IludCTYF(rvxEIFfRaF z=Ki6zaUA4rsWm%U)j+rYt8I`jp&*KgbPl={dsV~bf-_}JbdWT(27G5e0W(}5Q>6^- z&MFl_zQ1>LWJ7hb%_~+xuvULUvp;bY3E)6%*S+d%&({%pO(O5%X-%c--{VJyrS>_H zmo%6MRl!SFW`@_}(SpRI{E59R7}WfMe>sBJv)0bAQJ~XSJHt?k=nRGm0sVv=m{dF< zQxaKgy+v=JuhAtr(x2jW3L*wUigv93+k?iwa2wD|xErRTe@iu8aKJauWQ4d#cd#+sMs6U| zzm`0;RwZ9$4mzy^+rtzA6Vqr7p!B)*pz|yKCiAVy);4Zz%9Y6(lu?eMwFlvb@K@6f zO7usc8edPYmu937DH&Q))Mfac`%9#jt~{a~&06DvtpmD_#QdI@vM+Q89%wKxJVuPH zW!s{p`cVc1k|a`thY*fk$df2ct<1*^K|2^&fh{Vmx<=UP7y`>eu3Jc6n$hmS-cu5! zArYrX!*@i2LA^zxsJCVWOPm>({MWS}&-6Qwwo1 zQOn5BV2Q#x5GTe9QL@^p!Sv-P-W4V!X)$Glv#ip6#$Pl>I|Hu24&C8iaDE@`GX2{q>oRb>#WKh3|=XL7)E%qxIq;5$)j>csSy z7J}$=ka+qF$5?JE(zt~^b)!OKmrrN{Pw|$KYoi7&zL)D1+z4#Ac7o8%4Cf_}d;Ux; zOqs475ASn-=Wnqwd=Xnrx*$?hqI8b}z`MOE(}l^LB8Q1(U?#)d*f8V7&)B9U|3$4n ztbg}%U?bYUr~34;{5*V&8(j~vXKv`oXkQA+dn9N8@HF~mdn|`av6K^>Yt5=PzK%~3 zX+b*BbeUm93Far!&)9Kae24;&x_5;*XWF_;e4M)%|2X+RVeW8$eEDj|RdG!Au?++j z2x50Pf>_rt{#F2DF$6i@)iy^OR~;0Hh-+4XGN9%6xtSf^kIQICGHZ;!o2BQU`Y!1p zy`PH*JAQLWxFHt@l)>ZOGf^Y2$e}als)YK}BK(2RaHY#RtYw0V_h)EjBouM3h}6eA zcnDZ`!=7W8NHfF4#UP)mlR566_0VBQ0%__J(G&qIMGcXJ>?}?NF=9FkbW&Sl1sf0W z`1P!bvGv??Q0I2fN?pxS=@rwL#0lkM`GYV)u<=jiW&n(WiGk(G6crN;L26-tk8J{Su_(ed7wa z9z^}>AGc-KcLV*Ry}|Jx>!zPGV5s98+rAc_0aDslhjYju(P0e@ty1N!?vF_n%CO@m zYo;Fab!m{8!kzmm6GPmz($EJPo#z`Y8G!umHJ2*KqKuDNTnHa8?dB0vcZm>c1w9_oR#4?r7YnO4b>}{o!0Rm>6LRgo5X|eU zF^aeZ>|KdG190<~U+Z5_M9fW11_MoFB2RMz3C#>p^hFK8j}%!EzzJdeY96_kIpaDY z4jZgnqHZB%nnp&y4N@YU2HLLf(}moT6fnhtPoPgm&F3K4if+}NmjaE_z%-~Iwn;YB zO6Cf^HAtyl{4qB}mo%_yrB$S3&8D&sfJMd)kQi?1{ypk2&=MbggBy;hHNkHtJDQPX2fo5R4NBFEDrqGL-*@h(9MGXkq11RF zVf|O6c^D+r+5AIkC6-+@xq{~$p9b=!G7YoKd2yrkLRAk>2GVAoKhRUYfooUtK0Ghw zDYY!`?Zt&LX}mI~ZLe|tdkOeH{0*u~u35Kzpk<_GrKN-8iVXsX1zXVFaC$&|3lw)( ziig!Ny4e?w(v%Iy7yvb8q`Kb~8W~w-)6{o);d}tBa$w+cChx&wK#zJj(ttdXrEOVI zmLM9Ap|;gTk1!#uRZc;*19X2>o)a36;J;b?Okdso^!)0fR&33cmba~LTwKq~Q;yik z1hOhUm=4W0C8&@7TZO< z0o-t7bsU|(?0k&?;~4+3h)QQpZ;>W=;CgJcvpRBL`{gnOw)zASS-0LqT_(577?Ley zi!rA=a^rjx0p@9UT{Sh*{7E8Qw9FFMR#`13AlpHWq7ZQ1^CDUFFQ3(4njCR40LT#( zREF$Qy#37>yghm}OtAu{m>is6)yVV!7W|GjS#hi?ZYr0$Na~D9l$FnTdqhO+vC6g+ z`vv)fLF3EjnFwSPrh25|$&izq{Wy$DyO*YMLC?%KUcit-#g%krzxz?JT7 zP)Kpt<~uE~<}J%|2|C=cCR+}pe#RgxmI;_-+EK9|zOHFRpixPyyO<*t@aC+R_r3KpE8*P+lce(mAos&^X zu`iN{z7N6X;a?Owl$t*T;U>l85M`C++Cua+;>pR1y3^TMS@tr}T8)LCIa1R?Mxkdb zj$tUwX4(?4?bEXVd@YpKIKW62T1Y|PyY*848`YGfaIr{O)o9K4y`4Gq~7KHA!A-XeqvHJmygJpCGIuYF1)zRU9kGIN7qJ{?#xkwSp3S{`0ki6t7=L$p`0@vru^82_JX{{CUbd()(O&K8BWF~Z z;2>*eD;QSG)tF#1Lu8!ePT`S6fMM^3X=G(C({lG8>jaVPGb`_GH1c-47$5^q*|;!Zv>NZbL4 zwxmwVu41f=d=eD!#b5Z2kBmNawd(5hXc?mKu+|~aW;WrlHpkhZwQxt?VRyIU4?f)bh!d_!!Scl>prE4 zXm>=3)R7?Mi^Jgoog2`(q4P?H2J-QVzZT{2TY2jAulCmZ&v&I9T?yJ`{3Gmn3hgG@ zPJ4mb=8`~M{MWvT11^gdYAd?-9%IwBuND!5`U7ML%qzziWx+Q3uc&oZ1tZz$HHats z@OJPnbT)3wk+raRAaeGVml)DZ&ghcIl?3cVgMSx1Lb#YdR>xqmB0N3lcYkyMjSL)x ze@kv=h)@Tq1(bl z4(Onkn!DnXqO*eYkMU1|#T~E$5*85@ftcx2Ym(C<7|bIZ+-+D2b1fTCJ-Ao7>)}Kh zk`}JUZI#3=d{%}G_(N-3&zE84Oem>6@)tvZe9=f16HAo<7kF@6x4KpDTuCLG$A|Av zdC1zp2fay%84{x(FA6>M+V(QhBSwkAA-fvC!hq0`oH+GnJf9# z~UN*9l>){LLMT6$jkvu3ve{0LhTY6CST&OB!Y-&|U>ILxd!CZ@TDkHcS%qsHK#hn<0jJo9EM%vt?k;3;y z0CIc?LGF#yHaA)tlO)EbnrKz?^@B+5jCyrd)q;`HQ5mdK@#_Zu+!NK53ByVOJo$bX zetu|q`N7i<H(db5_|A)q*C=mjs%OeRI$~(Z>`~OY>~| zg?HezLkG0`(R@q}z&ti>*KobpBeH9WzhKDUlV$4!j-6|-N-+Bf)FcqMg_YhlshJJ3 z!0CEGIg`I<7PZ0RI|OX#X`0}PW=_K$A9C-lUQT)=*3@=)OeoV)aDpwgO;ySh+RC_s zSKeg>(bLt@@fOG2`$vMMnF9Nm;+b0}YSNO=J`6R;!d|R>6id7w7->O>#zV-xXu9P@mYWy%mP^Znq9~Q7n zyg0a&!evc*{X61nAN5>ibjK*DVWtKo10N`GkU+{ zoZ+1?1~2$sH&LI7SZ!?=Y~tjsuDy;M{^LI<35S$hekWWf@xh)qbSpS&JV79}G-mXB z(VmfjNa!wsrasLap98C59~XZ+FfL%DJvbik8Y^c*);v9`^>ue`XUT{Jf+LTAcVk1v z`%J7NNIq{=PN+qMJTBZN8)a&=Qd}twDhn8x8 zoS8=q{hB)?8Uw{a^k-22D`?WeQk00iou+*EV({Lc5w~q*rf1}n=*GSjw}NtHGf^Vn zyeP+#Em}4~xvakL7V-Uky@)ZzhGcrni69+wm&C4wN}`8%CrkU4(>cHNps-QSYOdHS zW*t$BlljGtP6(z-y+a@(0eqWBxO*Mj3gTN}Q)%c-dw6La3WUsr;2boi_W4P8d*2O6 zBZ;KB6=!BScd(+M!r(}9Bx|@s!dIPFjzrjOM>{bnB6#lN;|h$<{wEFt%s>YE!!GSf z<0g}4qG}KF4Y{7Af={lbNQQLRk0>#>RSz-zR}CQYRuMRzZ^Zvrbufy-fACz}KbwbA zA@7V1(kD0nKBgbnA{6h}?EC`QzpenBm(^stcEosdGPy9i=1?8&bE^cBl&D=m1cQRn zmPm{{wvkDq1S%wkq8XwNbyn=sQJoJ}TujcLvzg80i~d6@hOckewn1@D;0sSpMC*2$ zFL3FHJ^+RX?Yr5oAN2Phf%M4Yv7M^@-4J8|NQ>dnR*DG z4kxoT!JMG^da~K0NEVi*$yD3W5Gen>2|fhTg7vrE9hD__@a7viKmw*38w!R?&vBS1 zFwrXgdIe$EtmIXl2#SRov(r4UU0Qm*i6x7or@fKGh)Y7^%vY8Lx(P}D%P9K#STj3) zD@vAPVVDGN@MaRwszZ$h^`{4%Zmrdv2d;{?da#d?gurwGn1CpG4!wfXImAkl@na++ z;wd0H!s!&(meGu`oKVjY2c#z;0O}i@Wi0{+GLNJjspI zC_5nXJ&Hfaiu-1j9%qbT+s3x<(uNtwHHR^#xE(EC?M#spSNu8&p+{??2R8zlz<8(( z&n~I5ShdC)#ex!N<1EptrOE~pVZ5pqI#PSoI80{M)kVt(6ccpm+^1qtgUZgrttfD} z%HdkKwJok8Ho(R8*Im_WA@NKfz{T1WCbnYdud|#)y4vWG&K$h2He1{-*LKlGc{ixN z>Ol#WJMM^*1(b8DLYh^YV=4p7Mlc(?lgUMiV2>zoJooPLn~#bGFT$yJRrl-w3N*aN z+JyP5;Td$ec%pKypX`ZK#{M#nuj%IGmFN0;!lR9vVN5;?J`1ck6y)%y)@idFq-rJo z@(pAbun0jI^PjhVKMU~!V;DbYrxAC288^2Ema;ew9&kTfbJBmf=_rb|;cdKNPUol!9o%e7_o!t zvib=)UTbBVJ9oo@$CX_h{f`2vR}2&1I4O&ceRx1WZNF9#i%)yISIb2AIW_B~{rll@ zTf_)zPSyaLWd^2uOyV4_&P@Z+({3}ZTnL2?c*eU$Nkd?SXczG4{RV=`f_+UT4xYxJ z9a0)5RM*b18%Djk-#NsZhHFLdu6x4N6NZNTYiLT)JD<@Ehvep$-nq0WH9Qe}yP>t9 zaA#b)X|b}K>Tb6jV9oETLYK10UAY?kk_h|TLU)C(KBq*DX9fe!% z-Mu4D8Z*GMC(J$hD78J$InwFWm?iQ$Sar{1|VK?My)th0VISAGK@;o^s zW*?$|tEZnN*IOObt)t$s{0S(fmzD7Ia(!O$$B|3uPa-mxr88jl(+QA2*Y#yPR^9BYC{nK`;fIkgm_o}==iwgprT+djb8ubADuNWnlgPbscdJcYsWJ2Kllag) zF5p8bVKMs-=tvBa{hb;A& ze}=s&_wg~_mFqCceOA|#Jv%YBJjM*I9_UCvEWw=NY1A^J*tr8z=g45snz^2Uk!3Rv zQHyX-@Ju(9zKzbQUG5Ub@j2vswXu!<`!S^5CstyPxm2M#v+^v_#q8648?V6Tq0f%v zrmGP6nuwH@PV;St=UX5n^KlY)*S~UJHL`=2C%hNH9bm$XFU(mwv$x3d@x-_=YNIkE5rC^oc`rcy#LX`{#)eG#?IKp`hUP+B}qcI zL5xUZul&Q|w&9|V{*voWN+lJR%VM445Quv#FAAH*$1lxN!v4--zr)`jzh4>2q#pK5 z5_JoMB59$jiW5p9WI;}chN-VXo^w=p{2mRsUbv%w|D%WZtC=;9H(-=`NZ*#hf{^E1{ zMIhO_brAKLLQ!&nD$~2p0!2yY)99Q`vQ>$HOE0*;H)5u7EB$+aK&(K z?G9x@G&_joo%;ttHAPI8U5T(B_}Aq?AOC!j{LF09&27>Rh}gACNMIDn zT&9{PITqszFwLLmAfvF?2qckTcdfW+@_B16@Y1(@@eSWo^dK2 z9{C3T&*VrcSm~bPzc;lB``=Lr_69~)2LCrZQlh3Mf5?gEdt1wSVZJO%?VHgmU8Tar zs0@z=wjG8n93dsADPm}5gPH0lFgjBrr>RC`L$EQzpLXkgx*}W&lUTgA**!uAthg+# zwKprC;uR(J$e+=4TC!mqvLy%eClno%yt19WjAxi;=yN6yfK#BkMC&1vQK?(%yG?-; zvvCPGoq&ctrQ80vFrJ0Oq6oEQieUFdl?)dHYoREk%lt_>xUo=u&blgn0I!+rG|AAc z_L01?6S+_)onECp8B#9uov^fZ!@pWb=mPX`vbtS+bTE26JbUzA`|R2LEmw?A8H$Lw`@Sa;IIu)Bd-6=gmd|M1w)jR7y?o$d$LEKdCOxs~k*3@t z=5;+=NS4r5Xc;a=I||Z(Z(3`7ciT-=DfMOGCM{m{%Fi*RTyQ`!#Xv8vEw}{!Dv6c5 z0Yw-w$Hh33YsmQ*H8+L2d%>Cec^7kr4k^MltPULwcgy2<4rN&zxithQ;8u&(EN1LU zfzA4$nyyU2gAJ(NpWK_T5dpRg1S%FdhD}4rLdVqoat_yCepoM=zcTnKFGGzFtr91b zNVvr$J`-_JST8QBR^DREU|#Zz0yEzBiD1z$X5O9#ZrGqpQpQsZNF(kd)%K~Akuz+B zvG{ivYx>I#rw)$#IEQZJXMvF^a3#osB7yRngP{rvzAg?-NrV}@Bs?%dc>rV2HU?h> zLmhFSEXQK2njHxxl2X9o;5r&`Bc1)|Xt4)jy8MT;(l7x8$fc2oAWzL$TSO1r+`Y#R z(sUtE4GYV!Ub%wN&TLY>+JBaFR$bW(DnXCvI*@Jk*&r zj)ID1@QKb^4(`g#W$1(-%+2E8lFJq8>6rd5347nNAs`^9Uawe4J{)P2l0uBQAYDAW zdSyBf?dBi|{Hq3`s4WgCZ2oLcZzLLP_<12?XH02GVpKEX zv14T+SC}`rW+hX7iDt`(mL6eE`%`&hBeZ>)A2*e-czBWn@{~;?K6Z`$Z-CaZoo!m_OIuw2jdc%zP#S zz2EkBq_TNDBYCRC^0MuAIwXgube2wNZ7ubaSDd6>zbho`QlLABJuCKQRf#psp#;+_c;b`{KsYzd>F z(4jq>q1PB&6_a1j45?PmrOIByB)y-P`Dx?;t|uv&c2c@hjQbEIh@Jav%g)yjyVR>> z-1r}H0P#w1j7Y?N1sJOtc@5uMAt5H`tPcmUM0(5GDptF|2d|cISb~;30dB*F3x?3; ztW&adkMoecLfv8kk;R^0_2=#$m9~4ZpUnczQu4qweiCA*F|~ic&)G99%^i7}n0;rn ze*z1~RR=Dfhm?Rx3+^XU3Um$^v{hmj^~yo*fypCfX?2kpLQkd&l$V>jyPpT}>Sa2c z4{l%O0}d-q5i#vBQcA^CUs>KYua7x7vhlqXl>mlu|2fR_W)GT#_V!nv10<>Np=*)& zHj?mnvDBU8;ET-TOv^J%HieOoFMyJ#&2H^XoBRBnDJ($VF#N}eo8QVyb5lwOWv4dV z^}$fJ@>wwp_fN5L#h{SOPhsL40dX_^?!i=kSj#5n|C?z{t1JFfp&AIi z{z??gFG-ROreI5SJb?du%M+PMJ8pYmbH2hW8u_-3e|z&cR_U!&VIy!ogJ`UIL$E)J zbAO>Q6);qCJTTswe%^%D?jVot z6&gM4BszG;0Ei!rVks7wS)IC5AWhq96;MzM?SUbrwyo*}9>Gn!&R_7#WX67M?61h1 zh)EJt&*pAlhfD1>HsO9Ko!vBM5js~}((1!(*ap=jqgxbT|7chBV}y)EQrOh({ea#T z=&x>3s3O+jziiTuCof*7AU0f&>e4h2ZJJJ?)|Kw2K!>W@)yL9MF1K^I6dti76u6Op z#%K8!6ERGYTHJi5;G#{Kjkq7nqYItElr$Wr&qE#JX=iHrecC#@yjvwP>~?y>xS}h2 zg1cz9*Q@ckThy4_zN;s=F`geSwMPCf8vY6zH~e7BOaS+1htK#CL%r&rLOdJ zqXXV3YPfGza8n$1Xb)>`4%&-#DGst3bH4E;ytI`iG*>GRUw}}1v3mZ zj>e_?EA~$iw_A37^wJrmC@6>sn>238@7Rrxfc%Ql?noYj1mT(-eY{8MOV`s*;i7xS zw%0XvU-?o4mC)AyJw+Upa!8O^rxK2-Sg)`2rh14FeyAlqyQ+WJmTt+4F@r)@y=9)| zCU82MIZTxn=OEUCg75>vsB6U>IvM(gq}@o1;PHTxV9WJa~a}>B|qsL=gxDlDG!R^S44~f2l8! zk3?5WK{C93dvZtW?dr}{`6?VGhTfBg^Y$@9sC#1X+R22Y7VEywU9Yg{Sx-I-8W*~< zZ*r=ZAqc@0pa@6C?XixAc5oY7m;Y|Iog!=j-*9k2e=BFg=^8_nRGl;L$!xpNVsW!G z)56u4hT%Lhn9Gsm9o?gj)h1~9E#`XEu(8TjcC>Re98Iq# zH(3AS4`eNsHd}s;Fzyyw09%n>m%#O%h%U6FvK&-idUq?j8j9$s?49m8Ao9jJkNmiX zpQ;%8L)gnU`w90TTKE^Z2%!g`M5Hzqq=?Rkcpib&`|f8Exig#}avi2I7DXo~H#Z;Q zm}Ider@IGJev|+3$~ScWntcc9sm-EWz4wa9C&}-=(j3ty$|T0?ASg1jDOIt8jAl8({*w&w0E@oSD622byuxvV|VyZVt=F8&&{cBiC;jc zfW~+MvbnvbGuJ5_Ke@9X522}9Xv5x6hDz=gL-fHlr4}Z20Ge#0-z1B1blb)KDsZI=@DZh3_k<+-ANhc@``iSM&ApyT3h*i z30flBkLwz6adI^>vYClK%aeZNrewbl_U#HwKQZ~P*)eY^K1LLM5){8#_VvyNPzY>! zr}?&hzkdua<0H+|_dc)$m9(oj;`^akn6gKIj~Ps^op}aCMuJC)x90v8<{!Cw$omF0 zWXzF^VQ=1x(dSi=ss5&Epn!&|Mx)~J6ySXkhV!UZo%V;5XH#O}rqr%`)k@$)76J|h zh1rJ6WobruS#6jSy%V*Ji=d7o^`c%bF!sQs!Kg!33|EhY`oPr!NI>tg`XIBBxk zl3`tfo6!S3CA2trw@dN10Ka~!c~&2>W-Kem|_IJB-0 zi!jD%oS;b}D#RPa$D9&{2=YU@HRRsK$F8N?&}(R(Uu=sxX*S8Wp44p0CNkK^FP0@j zvR9>YOum|tOuPAj<5Gn>LIUt?n{q4=1S57NXN94YhL4!I`kh*_53wsm&giQ%s95wb z5T752!5#4xpI)!=peLEgm+TSoOW4T(ZP=)O2bU)L*dMfpAXgpI4b8uK4OaJ40Hn?f z6KpwWe(^Q51w5ciV;a%vP8>@FPJO)J;~lQEHi` zqA!X4$C$?`mFp4yp@MI!Lxlg8X}HP>yQ~!r55M44g!=#x5gI;(xh|M{DjQWC3-xem zd{#y#HHP2j%8DsCwc4#Lsn`PgPgS%xZq4@PZwMqOYKJ8v8I91e?%HN}m4cP6rDAXG zDqaNcW!3a&4XAL__E>T59VSh9PtQSi`IwoRtclL>_)xBHk$dHfoW?jyo6q(om znWvZlF;C`5xdR%3C9N_<35KE2F^E%dq@4$56^1QNMy)Fplj5(*8PI`+6nUF6)qKpt zCsqcYh1@ZP#Xn(h-p{`;bi=DJ8>azAx0CTv!OPY>I>gaIw6NnynQ9hREm#oK%12L6uTGXI zJHU@C#y^^@t$PpSyO9A7?UWu}J|)%nI6d`lI=f@wr}6pcDkYuklz#28Z<>KP$Ax48 ze`d~~R+X6OqKcu=>9LiHDEyTWlv6mf%VLI-+URD2G^}6P1^oQ=3@YDK|ze!9QPKPz)51$5* z=OL&%38Voa=(1XuO115<<+DusXWJrI!NgK@XijIw65;rKN^2iRu&*=o&&7DridlQ7 z+&Qq)_@PlaVK{=Fw23R~vF=I*uZ%4&t}gv+lTi)^yJaAizs zGg`zbRKN&n%P;}*vYxv;r*KGhvk|KLk+aWRhn9Q4uZn^yFp+5>vlTfFOayAN)EdK? z^hItoM{!RVD}c6AW@=YKC3&qxU)xkm;|M8{p3>h(EqUoLR&%|@2Ipj$L2nCiS^%RC z7+#&~k;lQU$$_3LE)e2qJCo2f%$Xz%Z9fqy2r;XI@J-0*iRbmN?O&5G23V}^vQzrI zlQLznzonyM@A?uNlG-tPn}tPok!Ka(QOLz<4EL>oz+^Clgsc$0%iQPeB64J2Ny>paKj(80kA(T9uqVvTB zH!xhHi#I2OqCvazdk@64c!Wd7Y!(bVD;PUEYbUvUIB2=Q`mpI@}|e`EYl)#F}31`ozU1CP_Q04t=Q$4$XPsrXWnBsnsVH zKC8Gg*MCM0T{%N?KfhgC!7yDl<4+JW*O24CB5et%oQsGnB8p4Sc?$sHn!~TMuYQj zj$b1jp4^C>nVMJ)2z6@Q_2-o1DlX9njKCe*J7!&uc}=P_xX9pW4jddK(Xp`zQ33u! zB^6NPC&euq8%v|PP%hAgeH35)P^&TET^WVg-d1k(8z}nCoEzgNoU{12Q3a}}z$w5d zC6p8LuY|Vz+lMv)dYPZ$>*wp`aYL|PVt6)CRvr*5+I_uVY6R=}IRYs)AZxAF^hNb6;zmp)OZJ~{T`8#~KC@Zqt8Tmh@gUW|}Y{$B187+j45H_#`F#gPYV z9E8i^4R~8vRsJ6qW7(znY|@Hid~v!wZt{XheugY(GuP#88(&S$PUs}@ojGIV+0_T` z2-OkFR}OEYVe^okdoM$vl|p#xhM(9uT!G^OlOsLaGUnNlMo4D4bRs7`3154|r{}4s zrY|@Ee{(54aa4bVyaJ=XWh2$r)uX({4VbN40b3*ml?xkI^2Bp1H_1VC^E!vqGKR;ArQP;{tTJZ~;&0cY&Vm)v5dXglaJk?0!p13&@&o2@gzh>sJJRfu zVDq1m8Ktuf%Hi@>3^?lfCVN`~y;E`&iQklxLLzth#kka;rQ(jtfuj)Is@j*o1^db$+-i?FoXQjKJZ3@z<|iM^cK z!$DvfeDC#rR}YIMl9ei5)_mDog*dJ3z5HU+%2-DUOnvdR?o85p7j)9)V0!p0C! z$(NBZCy?jN4c|cwI7{2{?lu~jw|B>vzU?)gkO^>NR{r`(u)JE82wEp+!@i-*SpM-U znK@Qxi%kVD0=@UwhpU+tb}2KxyG~w{^}e1pKtG4;2O_{#(@y|35`Y(jQU_>H6tsKIQFft4oww za@R~wx9)orP9$jQaH>Fwz?Nme!)9kEkYr%7cgBwFBw~vw(BGcf8)1v`7uv`L&DD}{ z5{lOlYPQ2HX_ID*gm?aowbw#gr{f+;I_YW^wRX&m4O^2Q7d=&U4DH*k-*hix)GSO= z31(G}bOg>69I=0V8c(@)BOMJ}&>NtNcoHZp;5JG1I#@0t%XiHQc3oR#*3?dTVXf#I zskbJnUH^*d-h!&#xKItI7lWnot?$JEqf7Btd8DB-ib32yDT81@252{W|r!qp{^N*qz`lPnRA?uQ)mmAWuz1 zQyr^$xaxBxMoFksNdX)e8hVZr6G#J}wq|VH(elv7#3kAX2K$RT%Ow9c-sPgYi)+PX zm??TbcB?!uP1R^Xd*5cwFL|y!y-b^bon5`eoL{F(w`W5imb*%OhbjqeIF(tG`f4k%x)l(+9;L~waJ zfo=J$aM*)q_L9Jza##_Nw|Z5&-S`EL(q)M5%i46WsIee`0~a3PIw&hzR!}r4B7>F} zgr>33C1n!Z^Vk|)hm8z5g<;n9Psr+pl~X&crq<_P!+yJ8-Mr?^?IT4=6WK&DhG0$V z`YBhjV8hZM%O6ezT@qX9LEhjzFMX~>7_&pWKf_qzS^<%OngC5F_>D-oDU$BQK}1Lq zH?h;aMO|dNRV~z9sXq0I_plC4f^os*o@LVfOHY z{Gm4dyQCutnhe-XwF-u@NDO8&f=wD}WP~@&UEc*9w>hvlf^8^S2pRV`ev>U}xQEao zU=xyj)M_CtJC=NuBkr0P0W4}9C<-bp7Kt!_0jrhC0T&QCBOCsXq|%2n5*5{}+G)px zU&O6FYrC)6js`6B?khpcn?w#bocUI(0Zpbu!y4d+3u z6MgPJ^ENpK5H$TQ&*~D=M@%O^QOf6wIqS$Q1X-Ms(x1Ds=gYeWPh95UtrRtLQs&}5 zE~y}PI??q6FFqu(c5aOwfyC2~K{R#Be2amx7OLC})wWm|-PNacNoer;HCX68oN5Gz zkr7>D+YO59@Be;MbKg#~7&|w)?8E84-GpNdW2ey<#nfKIXmUf2gK&IEB%3o>wLg%l zP=c~1WY6d53lxbipb{r3jxW91Gvh8YI6pD5q89|M;>`2SWaU~EMq@f$;=N1Kv@y0c zh@x4nYc6JR7O@$}t!FH#lFl18ZAHmRaP24(@ThC-wC0>0`t^V4ddKd{qPE>Owr$(C zZQHi9VmlSvwko!rO2xKqtD>Ff?9)zb``PFHvi`uDbG9+=yI)sd5r+=zT#TU5RNfl% znRjT_8drjuVFS+gL6HY;5T>w~;g2^}W)Bpm%NHT!g)f{~cO@-o2#EH-qO1!dxd8-1 z*pAPzFX@BRHJt4f#(v$3zui^mAt5g{QNe7PS>N-p4Z30Bq7t6q>7(A9ddnfk&x*2Q zfF(>cT+M@)ahd|Gm)!%xw>sr|D)?Y1g zqW#;E8KS8csp~`eqTn?&5C=v5B(PhJwnuE4O`?@Nm#mpP>v|vo?z%^!R=CXcw^1PO zyILW>r!0lC6b$Btv`|)IMDX<4e~oJ<4*R4*idP}Bo>0taXfMHFz|~p~*OaoNQf!FV zi^_XYVRL_+JngiNP664wC){komA+c?u-bHjzIq(vQrEbkpstu;z+IJXt{1Iy7&D+) zf46~)UbXf`&L2)(Z(nR1G)IGq6AyHhVuU$H6Uso(UOE{mI9N zA-ylJjPv85g+u=Mfx<7nT|XZ?KBjfGvBqJPa-!1NvG*2998au=RxW(6dBYI$Es+SW za5qkIUfEp}K^T7T@=6Kvf@Kpv-AJunE)gIEM$mJ&j!F6S+~rJ0WbjseY6(iTw!3c* z*>)-(;)@YpgL^DMlflM=sK@1K)$-|lb|h4@r#oT~X2>KRkaFM&C5&Nga0<*2ra*et z_Vq3PE*!h}GasaYZ!+`{gc9|L?AB~8M%xAy??Pv&e_$%!KXEmhL~9tWq=hG5Ply|X zL9ilU>Ib!f6}pDDSjyvGWEOT|kLfhlB>7_{7W2Vpk%v%QR{377{5(TFf#~VH{9b?1 zH#U8L7|p)7&t%5$+cCk#630@5#)I3 zBfigFgaJ7%t7a0>b8`4GSQ>l}Gj5(K^*%U^y5MajW48Fh^78EQtW=<{cMT|On_ylK zSX;T+CV)HA)5g&*S4sk7-9OAUUajCGPY&@50i&k83p|SM!5A{MwM2>GAYNNtzb!`( zwB+QduM(gN9y8^YXmN3lg$53ErSM5fvrQ}P3kn)FA(^xk=D=E@V#7Hg#)=&9Jqs72 z@3IBRD3rgFPIQ?APy)T*awa#2tTv&aI1{1EP;;#OZD34Wc7!~UE})*`Y6hN>5d7KQ z5ItERi|{4p1*h<4i`K^4wS-iU<_-l zb`l^3j%6mVask1Ua`is`(OYQksLUV%xPuMK7Mb>uDQg3T+b3Lao^!KJtTWL0P;eF7D6e_kZ@20Z9Ana;%feiI#E?BOKo=|6) zrT}C=sFjNV{q7C|4|MeInRW&4Wf{b!AxqGUt9UcfD9TIRDn9B*A>4k(G8Z3wt5Nuu zWcAk!%h3%l->;1{g8XUp$-3>8Z^-}id@1?2G-mQgHRAQNwfvums2|nH|1M|sQzJW9-nQ(0|BhY&PhmZ zdpHsON#u$RFdg@+l2V-Y$>q%&8dzPfAb#yx%31g)R6kWKzs#BAJ^}F;n^AB=N1cJE4RL8{sTo)Oh!qwB#$Sql4soHc z;0IX2Zh;DZRyTp5fu0Xm8G!Pjzv2Lr%a*dUp!-S2Ryq`1mWvazufh!1dQ=l-xnI9L zrH->rBJF%2FzUsHtJPclZ^Uy4xp3_~#`1`02m-k{SBJqU?<|f#QEjI%OrHc5@}-@a z)Zs#jsdkGYmVSeb{kz)RF5U(u;2Lv;=k;-_jQ`}Ja9Pq2iS&#yt(j>A7nP-R_Bv8k z9C3Xa8~+3vTu>@#H}|F&jt>6RR2HF|f}Lv*tLz{nMs^7#AtR!rtTqzNMH#F^TqoF9 zyC$fp;%j^gqg8T*B=>+>6k-LA+3A|VjR`DJ(ux`W4yrP@%g2VN-S` z#bFvwqaSX78E#;Bp}_4n9nK}1rICYeE0iyHicTIKKd?+zaD z<<9YO_XaQSe8PB-_=^cgL&mY}@;(Lf+7^W)2l(wT?)V>(9 zho2FRymkqgKKv2#3NBYxH`A}c`gd1z1K@?3x98h(nrMvy|NL{FbJMvRLCZFzT~O}G zCj6l`r|;O+o!RVZiSJIl5qvIL{Iujlt=Y-*4-v>-gydBN{>w!`Y5<50`?+Rq|9~At z|HC!Q&EY?=+5dhMu70*hKQ+Z)y?wza;tJ~%I&sM)z`iGF9gE}G_PIo@L2R{!R^-zTcWLTk^z_VGO){kAOil1HI*Kp5$rf^0_zTa(qe z(R+c}X(zD05Gb4Jch0T(13vuj@+TCE;oV{5|pVyZgAfc?JDk z-33Y;qA_p0O>YDr!v%7BpGGM*Fb$zoIWF!+3K>|PN;{^XAoyh2+zGoN9 zHgjC@*2cJ$empFswfOQ%y(B9?A>)mbp1etP1>5^GuOlM`#uAssZ0T>VpXXC*Rp#rnk} znk33V71=LSP9tUMJe>@;EIfu#EyhS0>&<)~rzIue4&L#HYwIcWN|4f{`@FYtlU~*<{#ID4fGQOk&F{1n(b`gu%>c4sM_DkX}``h z#oX-Y55sz)|L`<5PU33%NM2BtnNKMnCAg12MKb=wDwhP84qkJMO=Gr4N>&o%%VO~# zA|J*!rwq$xge9uBBqCFEqh8@kLz9=!VIznVuczCWx$kHP9peJ!NxmU+u_mvUYEh2M z=2r&~iWLQOkIY#vm=j0T?eZOZM`?@qt97NCy zRIb?yi*f|7;&edAY4uR0YfD(@@}EVVJ`?JH_6`2R8MFEX$t?(i9Hl$jtd081+&EXG zK@*QZ>p;ed{R;$m^zO!jG1-cJU|{O@s~8XIHWoSr^vLf#psO@`W*w`Xy-teGPbfs-XM&BE!c zY18HyG=;Yc<7+pSmHBf+;-2a7YV;-+k~CT zDP^rnNKH|)foxF)SWHCj94=_-Kym{Cc5e%^{S`@!=X{A0m*|F5?QFF`IV()b<-7Ew zG6*O25EiPf3Fi9p#E4BBD#vTXWZ69cX!T_N?hR9EaOYSfPlPkLS!NQYL-RKDAQE=Y zV53?fsoc~yoAcVKd2U=iaLXk!5RCi|6okcn1coB%#<7jDD1-9Co1_me0Rb=aRH4>8`P!L&Owhh78dT zc;dLZyk%@%8?{)fWAZZPocI@u-u#dRM7p55VhhskP%q#*pW+0Z8Zm*cw4cCP;@IK& zZRbo6^j?0!6?E<^4aK&e(Y{yr~5El9*($^ z$l!urZjN!7U)SQ=^Jeh%l1{L1!9j?|?)jQSWS*JfxHft%5@&zc6p4=!M3)T-fEX)G zqoE#XWFA!R>J=j}563x(ffNb^IKnqc)*enSZ_kLPu=FFLn9;qCfFU<0FEv8FAY&X? zjVrkdWSoW6_b&##u8TaOkaNe%Pi_R#MmW|?6R#LE& z6dMA-J0sLrQyPC&vT6m{Cl*B=sAd1w%Zd^=KoOwH=l2~C&$ zAc8l`u}`qTja-8;3|t}%WgLb=n#>P1fC~qsFl6$6L)nF;@U<<1nuSc?8ci`>I9VaQ|=$5nVB90pq z)lshi#8wXI3)@qlKn8((t)?Dk6>7SAoM@(iK`gKF}q5)(l`VJ z45JqB@ZUQ@(7~X5V1j`eKj$4TKHul1+Fi6;XrTr9Yt-nXlwPT4Fk8v`PE)I^@HF) ziiSh&gOK>2dSsSAV5X!HzU0YjV-hK|9}N!9b&T^Aa`L>^0>wmep$+yd`3DiD%_)tw zfD67TYJ?W_&5|T@jdHDwVJ13Yqhgx8s2{Dcg^(Y_Y>UBB(Q8R~;-Me(d{3~dYw)7? zBdGWcM`Ax}F5Na+$DcSVeFyWSk^y;>!h1nERyr<{0OiH*16EP|2@T3Z2H;pbd%1)O zs3pV2ES8V7I%?0dOK>0uW>7kzndI+{=Kves?wrs$ev<;v%chM-m*-~xbcgFUcbARq z7Ur&+MzQP=Z+fDZb2D{hrQ8+n)cr*w(P4sm4U0{a$OS?f48<2+wl#(d9@vk^gz(dl{{iW2 z_J5YN;cvVfHuc;DP7Tl*vHNT!jsZhXQvwrCKHqkg>jnJm2?Ag1(O0cS9MZk&p;b=a z_v2(bHVgqz^N%pW0wJ%uoALqM2p`{IMu@!mkH-Dq?$WxU$stL|0AB>n!EeGdnO)96u4b$)*b`;_3I_M&5m|mG?8T@yG%mhN! z4lR9-e4jyCA3Y(pA%KOScA&TCak%rVl=ebK*;=m%p21uuk3Pt!qyFTX`~YYiy6v&; zK-jxK9+MaNbP@Q>GMut(ie5XRLaF9ImIecWoFnb|9EDQ6!qwi5n=@&aNGLZC zqw^I^RMu}Yz|b)hGut~M@IfgML2tJ$XHtAHgdHIAAKEj80aa1w4Hqxl$mcgs5}US}-gvPrL}X*z2jD!l&`uk=-Msf4UpvBB(AYS@-= z-vU7@BsZfZ?Vo7wVD-BNP36ZXpj;!%^p>RV=+fIt2J46ntjM3mx45_4ZT^CpZWOLE z5+rS8W@IjvKMN~iMY5U|WweGWT&6Nf*UuB_Yf+NMt16j;t3)k8V|3n(C--AsargCa zV(Uq8nX$1}`o`80EVHmFj0mD_TlNW8=MjvLEzq;yvxbmX44#XvH6B2>B5y;2v7e=0 zMlq)fTJbZ)Kv66fd_0ML%Z~GgYb^?LNyj6Q>Dis9pmrnpI>x2~m`#Z!W^x|-9IxL_ z&5)dHU8u4*6v$KN<_hDvpsjblX8wh|b#9ooIIF`{_kFU4DW@#IVXaqd>pRlYaDeT0 z591iL*Ct#87R7_amH8|0h+IwP(OZ|`O1ju}N3=5n!+`}Q1)DKbW*?9`5S5o_)Bw); zBR>7oxR!m3R)CZIT{`9Hd=lj%JhQ3DV9UoTk$uwhhD!T8Zis6zE)oe7V?D>{;;$ep zfVLS#6AD&eGT9;Q4#<86Gta9o&D`V!4|CA7I^qmWbwFXjB!P<&U|T?)e-ljJSBB#oGOz{TEz%@kV7X~w`dMrr$M4e zfs(mh5)WG-3;;qoW8@%*o+ep5_lEKik3hu?aNXM+0!;?+Pc({{X{NEG>Di*I4Fk1aT44F4nB*nOFxkZI`;A^?SWh2x_G6X`}wF zV7%yR&UU4}jrw~;Tva-XC+`!!K{rJmmpANW7EzoR4fn8l#S|F#C|$|XmU|mFY0LOD zK6v2Z+V&6iyuU`;yqg!+%O*}+10nJ!I`Pgh>9v#~-U|eDUl?d9#_1LHZpBf3`yQtJF^_<=R-J^soG@5$Bsi@s;0)2&B&S^%Ns zWDHYCQSq1<&w@oo08_xcu(+0y4AhClwxfHQro=%?Qz@UlbrneS9t3&x7|YBYcfp~M zbc=6Bjse>Txq1(ATZy4X0CwrmM#QA!AxY|ZYTLo|@&me)h5h^y%5|_dJ=ZusISE|9 zBzaO<{hvM$cdCm$8u_?xC5?st0R_ZV_MK{6OGNYvt8MI6phrPYR2q~0a1o2E%8BL+ z?yD1`IAHJ5# zGuXu}S`P7Eheg;WwDz34y}Q?qFdj2fGC z@j{Mb%x&b8OD6DXCdFy~7{n>BzM;wbq|(O*nHI;*YN2H_wYzR`Ol zdy95tYO*0oZTc5~UVqLb$Qgrl4C~3FxYmlFaKN_QdToO(FenUfjjRL`t!kvm+BRJQ zXD?6L74KHcTL8`=QsKlx3k%EY5nEu(HC$XezwxK5^*mp~_#NBXV#h)ANDQ|E;e7%A zk-iBpvhUecs0yxz^7&a___aUEx*}f0yT7Z{)SdaotGi6DB5{0MOxlr=?W42Vs%pTHz zcY2$2FHbvrGsGpJl0TH&m;1e@`}@CgPOO&tebmrEKv6#e<^Rc{>|teYZuj$HE!DpG zPjcn^x-Zz3Nel$9WxSkN6b7Kb4sJVNbOEZ51l26IVP__dRM~Ej@a^X@79qA4w=iXe z9KFx)`O<~SPZ0lYbJ1zTmfd1rX0A@dQH|4Dm8Gjay(V)Gu1gw*GsV=6`;fkx@1C-FD3^?14o?9mmUeQ4D>1!~^4 zN9Ch9clE6!X*oTPX|me*jlo$RB`SqX7zI#LZ+PQk5w%xhFIv`#-osXjw|?;p-PF;_i{XN1Ku+I3*3a9s^Yi_4cu$K~^Ebfo?!v>o z3f0KTHfH*9!v^|a;Vp_w(;vF{Baae$8y629bm*B4dv}jB@7rFpy-^ViNtvo4ev-)g z@$F;C5c8&XUh{@wr|-k_ZezpMeYEHR+J|6BSBzHZVRC>Y6ZSK0xhMrFwXB_^y@^BSy}F%?$oWTke&jzwLiRnM*W!%tQ+eOhtX7wd09mhwu86| z&I&0`wC{>Y)WpBc;W4THVsOiK!Sc8+by(g~_+SH>SAENv z4iZZ`!p7niZI`)?e#P%0oz8}EA?;TP4MtdnN0=p`Mi<(d;1(vVL znnN{Vg>E@g`4#(!1n%=^O#(I^GoEO2;{~z&HXx_}g?uG@c%vIw+RoIF4<=uN6rhCE zYrP%4fd+S7ne43y`_^Fu<&9=f!t7r>F8U}OY4 zt^il0FkWCYR8$TJ<=MgUr7R32{pZ_>L5UJPMkRLLziRc5Q>$Vn7sz-^o38vNU?+W2+M6ph4|IiJqsfF=o_5SEkVFC-e{e4Xaz9jM-WP3 z)n`IyM$nN3cm!W95Z-zY(o*O-1V?xX{acnixUD=BQP+!Y4-ju28NY-f*aQvmws0sT zvrp>oD{oLQIlD7-TzY0;Kl+FcxrB9uDhdVjfq)ZcSdq|>@N@o*&o-Kb95(lf#w(OoAFMLByMzO z6xH2MI4D0>5AF4uXV(K14tKy6Hz}x?gR~t|tZsxzYl|~~a1dxUsXs5r2gn7M2vT+8 z9zmyO^OW_B5+C)+N)p-eFtL|@chmR{E@n{{FMP7>!QM}&yt0_v)sW{T*R2H!=8iMb zn&lfCowzzr+BJUolaxDV9@9;b0?ED&aKJM8=CO4vr)j~2Mu3bCCRDsle1 zKp9B{w4x&k`!2Xf`M7&LbqYZEhbih6NyvVeEQ2&&3D0Z-Vp^Bo)=A$1Y@gWm`6&M3 zp>12tm=`&4wUo@TE79v*gY)44={0Y9WrN_?j7Q$30vincVa4S`L5C;KV1DrRcaREhPx&wTOg9YSskGM;|;X zf<~EtuNqSpv6lP}@HfXKd`rx{%Tn4~Xb+eB4$VfFO`4`iYD8!HC;zT;9g+tm*Q0WT zSyeg;kOo4QFtJS`jj(rs1xR6T@Vu5sWrfI9)Hws`*vgD!CyAZhYIT3ZQv@qZsw3+s z4N3jvo)b;b-AKyW(6muR!|#db*StA{!`L>7GR{4&XJ1(5e-=U`m*Bi#!di@lsHq7_ zt=u@YywJYgmZ9?;3cc!$b>neStW4Bei^+kkgXy(t4wDzk8So$PTVVR5*zLgvFI_bW z+8-gKo9C_X`B{*IoYEB9Wh?!dUBA~y0xA{`((pqe+{8Yo;RdRmxhjAgv;=4tw1v}3 zEga-y^Rl!oV073P5#^zcvmQ~^>Il#AOjH)99Y&6*Z3>=$e$+T&W3$)gx{E4=1>I+H zkE!)eiqPO=MzxpN?Cqnz@=fgT(H*p8O0AkDVCB4H>aqN-Wa-n3HuQ(|`l_-%pj1*I zC`IFn@;VHiixk2XmdSR}ztd?_)a?^d6K;1Qbg4er#87d-yhDKqdiLkw=avbD+1D;I zzS!d#Nx+Khb^C2VZc)qX&b%@4>}l#>7h~IR0$a5Q?kIU{kd6a35)Q<~Kt3CWOh2@K zGo=j-LQ*Nkw`>AON@fGGv$;cDh)Yu$&lX&Eh_9+siE&+!Lb(eKP)4qZ93Bg#inHm- zuRQy+U(cr`N~+fPISgXUuHH5!F95r8266#2yy7n-Glvu??e2Hdb5+2QT2@oLl<{@x z8=HEgH4EF3)3w#u<1i^SShyhk8iR`xUS`gcXy_oio{Tz15WeOS*qU$k<3YB6Pew2A`t|MCULic< z2X6h1#z%R6*#wn>GpavILq*NA_MQ4fN>l3xNXHVPoq;^yrFmqb+-~9%xTNit!(pA`KrK|7D&5*3J!%Kq(0Z!KJkY z1+Hw56=500a7V`kTMPyY516RTmzZ>vRdc&r!DC4fmhzaJDp#+5(Ldi~CVYX00M|zg z*Yp>db<*=3;0VACd?L&vM_igkdO>8S2^{x0<&D+Uo&I-_fSv&*#FimMJS!&}7bN8Y zFTnJV9vIwY4&UkGtg|?ChaUwDzMX|{eoq{dptEVW291`AIYjlVW`9UpszY~0T5;vS zXElb`1IqG0QF7~_dCmX5b$2&)Wi=m0ukc|?nYhb?{aGOM|s0^UQ)C7s03du37kaW$CvY;N8 zTgB5NrMn65M|LwEy?a>_7j5iLtk_@qftLmj72ke{CqtMn%RM7lnWY0X8wq zaJp=w&jEH7I0yx$!=o)mtwK)CdtJAKPd%Pwxb9!sr$ut})NwGh0PbT5OdG3WLHm?- zR8}kOb4;^P75qC;yJ89ghQeuXu^)%j+0f=#y5Z?}n4SB;xqefZMHnDhPQPXS28XH^ zhH7hyP=q^U>L=b1C+Gv3L(%-Y~0(L&(qn?Kd*X1;6-R~f)w+cf)!;sAFxtRXWw z9y{!$ahZl(vu8>|3sQ~?Bi+lB@WK?qs6|QpqSQs3UVr<-1R)lMckym1cx_!b@FA;K zpMCjoSFg@6TCpEmvM~C=8wzo6>+Iw6ZYTcZdFo=L@AWgHtEuonM||Gl}ioS_BDaD#{p zIS`!m%!`AHunJxWQwjyeXPUWqDb6|&1iFwdjh)vJd&>Wl`knmUi!1=q_N+cbj@@o) zKa)iccV@SN`A#nif#w(<9Nh-DX##?EHBL)nuSb4t46D!@pUXg}fudHV<~k-^IqebG z)(rIx4i|BaRG$LsNHk(!HX_c<0Q6WDuD!^o7X_g`44zU>#TSdaF;J~+jisXq=3slM zmm;P5Nnbo=9Q^4#cpnG5y?_;bh0cxOqCpVL)%{8Lk4=K_{o(lS2Tuk97@jOP&b+ka zWt?Xg$1I|;Y&8&WS=;=Pk(EN5tWhpoXMs11B&BYBV0)LhhxHtHp-9){OuBo8|8*fpA{mGh|$K8o>R4i#K=0FURVhm&^NC=l!0 z$POkENDST`@cS&io{WAz-puvTi3G_z{-KF+Z<}8*yriD;adlk|b{%r7VCX3nJ6CX2Uq7czf03?2gUdxr~#^zRA=_(w$XlF3Ps(SMsn5b>fr3)=`p{gQL1Py&bL4NDPHzcyL z(fw*4!|*;C6AY-1U`n~|o>*`yekIw_g8mD>){H4QV0v{GC3 zY)Ipn0X=P-j}w@G?(odAD-1lZr%;4)vnKCAbxSS|)s z;IFR!&Ua6)IPl)+JT0($*F~I;jtiQOjtQzC|6Xn!d*vM+Yimh{sHmbiOBFiwg5ocg zwjT}^G&McYkr1P|pYJNiUQW34>l$V&m`3uS4>@K&7$ zE8d*Zd0x(gj*~k<M_KCw&@F@I?5!MUx$g0z#-aYnuJ*}x8ag74Tw^qmXo*5#1Szf1LF_k(rF5! z$AIFb2AV@A-{$XgJW=>(5zjGact>`N?_`$VnQ-MJaW}Ly716fSC%e=46#>rqlY^+h zKg`q8O_x8~_wvPDOP~8hOYZZl0w4%jxU}`3UiE|h*rLJ;P<^Uj;97L&{kv$z(c}6Q zsY-@}07|rDRN{%{jtQ{C4$$LED+T)MSdO*nC5nb{%S_#sw@5DA-P@v3qT3JD++^Ph zmrY=g5g5=KCJPeaZ`qumybb$n1EW|Mn%$cZpj?X(ENoD5%gL7+W@5<7DCFND#WA{- zNp!n+hYnv)pZ!w7A4~FCTC=5pIDoW~`|K zrah1l=g^Sugq==vcI~Ilbx9heG@zXd=Zsx(_@yP%c}3Ny7LA)KCP=cSjr4qJnpv3P zRiylkMv0u)R7(I+I0y7@@o3KE#Hkl-yHp`q>Cho~SwF5O-OPCcOF@=Kgs?t7m1TY; z<^;kagwa-sfiAsz*g%9*@R_+o2LBhy5VC%4#56kOCA&5hR~tRFd#Dl3;JgbxskL#4 z5K^r%{ljQ5(Ys5@k8~3I6FQWSyKQr6TnDtCHg{UIQtV7k_Z7Kx9*TBThA6|r00+&W>SbH1z?2w5y)qB&gefcY2j z=0OCa5z0w#dxhD?n6-hq?t+P0YJMW`JU0VmaTRp4NUg5F_Hp6_ZB$=7qV+^LKnaE^SyUCiaguX`#u;IKub*87@s+que1M|| zO3H;8p~k?x?B)FN9_kbNq4a{d<(Nru)j+>jL5rY{dpMBT(x%WTfVe3t&ifmZY*b)V zph}UhfmM*JpTWsUtU{#APce6!dcT}tU1d93MmMpA_hX0E0DlIVAN}IVQID;RrVD;! zFOp}?s@69u@p$3b096TvV3aWhasDICL`>m-jjp}q?~qR? zoMW!6%z;Ug^sDMsVT9jt;hu?*Swf&?HauA`7$t^PALkjA5m&e;j5w1OicNd%Fc?f* z)W+Z_!v!Td@}E*=`p7+y+#>uk;G%PRkwYtPwy2)Oi5vpG$jl8QQJXv@F{zl?&38mu z6__FLmk^x03<<&UW%yj6J zw7PQc_oA{yzOAK6@P%T?jtx^gK76#wfl(#XcwCoxNDi805CF+!E=1x$Moy9L@VrVP~(!@vqS`1b|;8rR3TpcVQIqhQ^K8&g^`QSJlN@4$v{bXwDgk1s<$Vr_ml< zQDn8;eJcESO`FKMsMyrFijn0on9MK`+;WkM(m1s$L^wA-O1;ijVKP!=b~iqgp9Rt? zJR~}-&F;1DJIv)+G%^Neyk>~8!(-^uzbR-#j>SmuRF$!d)tq7Ps4L?+h%|z7wdZi3 zyU8t5!2Yjmb$cF6Ad-Sj{&e&r^uIYU;85TNAXP5|S)C}^DfI|ZlvS+*JI+Luv0ln- zcVTApW%Z<7c99tlW+vJ=6x8K)Q8`k^`J8ZlbpK$w00n0jA)BqWrZocG_@i~ghUAOY z_OS2|+r`*770o*g4Gg6{ted||{|z$)v?VA?S7??OJ`V2NZQSSRGb@fx81oPu$Y z3c7}mi8OO9)+_Q9d#w@3{`+^|C^mJeP{~Ny450h%IQT)}?qYbJ<~hK}y_{}&0PLRL zPCu_)73xDv@ca{YKVQNMBeZSFPB()7;%fdp9T5=g>UrS@gsUuMX>(mn-aVIA#smZs zVlXqg$o|pzli+1vYu`FIC@46$hgt~5;G)h-nxHXJytGGzXcmLC@r=ZcpPUX6KQy`X*0Cg#n`)<7Dnc_J zNj8*OXj7EaTw8imN3P2$T+nQ>t57zh2m$QK{GnBA_kVus!JI~42QX@yX-~K(+;FIi zqeaCfbBDTsL2Gjkx!yh@#~r^$`Mh-jB_jyQ>dICGM|m@}p|OdE@zaGMVV<(i^IA>x z)Qpw(G|##_E8lm{^j?rLv=vTe+*(jjx2d((2|+z-thOp>x z@R+e%C8fNgYl%`U8VlfW@5c&J5xjoa{N%#CYe+=_SwVb?X=;T)ZhR~P3|FcY;7(4r zZJ|5tBBiFO4h-uTp65tn5>tba^4f1{F8}VgMbNQM9Squ(`btsMVsXA^4x=|%mvqzG zmrR0Zr~<*N{2A14?Av_w4{RTKOB#y4Nvgyq%IP24KccTS8$E?>`suT&3i|!Q{N|9P zQ|c>)@8)F4(p}gN+6Z%u{jBmEK^1W;aqB?-Z*>l%cI}G*vYYx7(q&yx5$p9IB@2;hh!^>87HcLJeUs%-bGd zd{|7Li&BE=Fxj;Mm^CQD(_yWv0X+pW-j{*ll|_HWbj=RHYvN)&l#Y{Zd|1ToWbLy1 zWm?AV^}gq9@zz6HDC6R<`9gE2glJi*HI&?optb*eW{~xLN(FA%-Ui%>QrfT;#m{yZ z^lUs~zvt?o>uc*4UFKDQl~0$IzhlHROL%vdHSw4b=c3bBS_{#lrRtKDh*0y0SJVs6 z!s^r@#!0p@VYMU#3xbV$Vow4hChLc{MtUeU8VRrn^A7pFhEaG*sb{F2Z#az3lkV*J z+XW5@Iv3}|j<=^(r-(SDm2XS39t6m7dbg$v>pn)wz1R1`41b0K@a5x~GxNnHiBQ8eqoy zdDPG3v56aJWPQCbY-lv zJ(*MWVPo=qJks&sOMSye5Di5z>Lcu=l-aG_bZ5ow6@s~Ox`Je}NRibWa7Wwfaaz&p zQ+up5ww3-Yiu+)q0`>ioS%u<4EBZX&^c}KoxF)!nG&mIhm2c?#5V0c|aD8OjJVR}# z8xkg;$=w-Iqy^$mM{YPruiV*gt0cfRC)rE{vJDQ_8M5wLQxx2ton8qdtFKxz;&y$^ z+MOY+pn}sjasiuM&+vOVPid-;#3$yuX&~~}pATYihnT%tT*p((Uo@_p-iu=Y^gvRK zWcSYr0~X;IOJYOU65g2K*?JEg7#}orB7W&cV`0uP6c#c`T%I`UbBulroo)EmR9D9f z)4Zugz4FACKBuYwH+GGHy9#n4ZgzGA+N&sSeT1PIv1`C;I~uR}?vlmLJ}U!D0-yLf zwZ5|g^=HrUhO)@$uCOW`f3g`GDkP_x#B!T02;`ip`Sy2ubmC;C;tldJVVcO8ON4<~ zXsDqzIw70Fcu;_F%?!FoTBf^wXD#joL+zE0OoH zUQN|exQbY&6t1?w-*|Pg0LS2fAkb2$pdLK7q4DwW|AIpGop=|`A%K7m(13sl{(lE5 z_U108ZZ6iw|Dicrv^L^?Xb!&@O(X-bBxUVW(R>W2ME7hC;SKqEX;`rAzyk7h6VgN& z=`~xl&zI?hPNlRSh51p$E);H8EiCCx+mfpLk{(skGl^2{n4272Z&o4+|V+;iP3 zym_b)AyxY&8X(7EWEkkU8&-MKwNh>sh%026;lzuLiO)(8zL^iP+Mkm$LzYdk8t8?K z7fLc>>a_OIy142bX{z4>*)0b@W!wWL*Xo%Vg&1x!9(u;en>S%0SrfX`_uXEmcxTo4&;xQ!z; zTeNc38E3iuRv(q`1B?hbWxb8eTxc6Cv0-*Dc!S;uLQk<)Kkgy7h{h7wr}_uHpVRkv zeO(@FdcTZaT}5vgPTO*HUdj*CD_2v+{0zg*DYl&L0~rgpZPeYP?qd3H6a_sFPEa^o zky*;|Yxi0!sYz6)Y{gqtmZO0IEV@Emb_!SlSBU~6+%w{Nu5aOjtFAmJoX%q&jDF3N zKXxyv+VQIBNx;OFqXS);S|f}J&Sb7RIVj@ywA-@Pz+X?ffkEB4{XjJIjXymhK3#>) zxURl{V(m(@mjen~PjKQs8}3m;5c1cT>{u$VcP%Yl$oMipj$MV1+>F!P^`z&_oXp@A(F)D9{S>7!Vb)9R5ecDIZ< z)xksYuN$nIhc>RSxBV^hICBB*B3S?vQG#M=ZZxcUp==DeomFabSCPL zjumTvY)Q&lhOHKY^4jiDYQ?-PuIjNbugr&q4T7I%`&{f8`f!{oUw_@6ArG#x=%;^Xi7yK7Bj+5A@=bmG#bbiCs9NEeNEPP zFa51Pt%$Vz_>eJXiCS9o2RZk}WwZ$vTmVo+$Ihf63y+d6` za;2L_k9aDcdY_CKQTBAfg8?*r?F~is?;+`5b+9o5&J1TUhyBGRg>>ii3g@)hW*2P3 zE#17wo;j~SQ+*IkM$U)0?z#=CxF-(!(?+O?xeWH9u3SeDu}tKxdv=T%LZa9;T%UxN z^uqrXbj0hC-`=3vUOtieY>>a`Xc0gr4Z-xj5#3F!)OJXXqHR{KCcId^r}=KxTo>x@4yquY@0LA?5x|Mm)C$m=9H7(R=c;sMMH$>gM3aEXCv+&YDB zhESZ@{pyUr9lmS$HQMzd-F4_Ch>*e>q1xvHa~aL^$MW>V$&Ch1yf6vD89P2Zcwn;t z){SM1K0@}yJy#a)3ar)C@(sExgf~7ecG&1}UR%B~c$_}sp9qf>Nw&=t@gk9PCfTZi zNo}53c*>&F%=uKuB?=WvfzbzdsHEVg%Imo!(Cdj{SBd%EYDKh~zg>ZCl}PGLshg3q zkh@L;vOzN1BwC*I{Z^YS(gIzGd(RlvE9it51&tH910+Kfre_({+X$cR|6=PLctne~ zHCwiA+crFtc@L8$dQz|+i9=@L2-F=S$7ftAIG--W3Sw| zw44#tQO6OTw}nr?V>tRX?yaYbG-KdP-;+8%G|Os?EV}x6uRyju6l}X=+f2i8d%{4% zltO^w!kg;nf@N5k!x|~%&??ytIvQ*?K(cNz{8 zVA6ObDBkxzrhDV3(vo(_K%tZw_KzIhTwQhZGEVrq)S+9amst8_8d0-Ovtq`n$kse^ z=+;~GOV*FI8uW33-bCw(&wkOx_*^s$I&*kTB(*Vq&0rvgWBxsGhl< zlv0Jf#kfeIK6Yx3HS1+ZP|chkkgWIgRM$l@?eZ_Rk9TeZ0-_ zkD2XtbABj&-h{Q;&Fy_VSf9Ak71dCfB${!^s{F0c`6-*f=T}jfPgMPYFv<7FEii1m1Muh>oZ8#em)JQa*(!OTu zeGc-DMu&80b2`EBD|ta0s{1^1xO<@d8l=Kla}-u)F5xDvt5xo!r?Q?RjEm|N7va8s zMDZwfdF|Am2utfEdzESQpV1BPvRupD(e#EL;trGl^DJx4`Y3-Coc$*mA?`lboV3zz zB^`eZbFUv;g6%Om=;h^K3*n7h4AHz{;Tyq;AYkr&>SCqZPY7Mz!?e(0C3hIsB#`J)*y`=JYe)~?iWezNI*3#vesfg=E8w z?YBqeP^whIdHwZl5vNG^W`<6x>rI!q7*4dO}16zyN@1%-a=dfvQ*Ip490_qU6C&g8;-w?wWWvHeV$%2btJy#4)fv~IU&u?8*Om@x zRC;IMpKF|N&^!mJ*n>^l9XH`u5_9%lTe$4AVY>X+F!FMAT(x>AO%YW5Bmr(sh zvsBTIa|vu$xT2tmD8tHcQ-CMc|ajxxpLjZ8Ek17 zB{2@J3cPCtT$841G(x8}kJF#L3T^SU#$8LAm&Saa!qQ09vMT(4nO0fShKx8aBm43m zj*|LC4ixm(soEXRR~~#KW3!K%h}y6)Jvz@4_C^V-vhGcDv&`*XAd>AmQHtbH8EYrn z`P)RdCuDL_9w})r1(An5GfgSNpH62K^GK*K$!Kd-C&%jyeFiQDLH;}V3;_OFWONEx zhTs_PTz@JtC#Q^2*{kHj{4ZQ#^O;lUxzGCPh;gi1?*elpgpyZ+v??U7y}AMhuxa}* z$nRWdEZmY9^Y4@H!~;pm)kGmeVF+i*BC=#HH)Z3>)HmLlgpp>=3H0JVGO*56n0?%)6{$=VnRv@~9`=hu z3R`e$9Y@q2cU(maXQQEp&W)ab>5lNi$_wRwJ0FHthfiHU$?>4)bJ{%^AV9)URfL$| zy9;deEoKnSGzPj@V=?c4;WNg+f%}Uuj}ER=r5&y;6YO(<4+&8^41ik$e?&q|xk~4; zINe1O!e4#2M>(JK8P+thm2b1Kjb>;wnVd{xEr6GbE8=d zM4hcIWk6xPAq1=9!H;$U4#&(C#syN37W*KhNaL2s4H7>pQ`|l5#a}MxwV9gur10o<# zinpZzbeY){+nZr@Lul0IvNR}=r2-|Wx&X*p(v?T z`?>$_%zNxsD}?c#Kl()mIIz1uyAJ?p`6akz!Po@RFDnwb3Y{Ta-o?0!HfZgfwl7V* zxN-Mv*bGMpD@*}#vStsK{%_^z4YttDI?Hp3cv@w@eI387gs_pzqDyXBC4!>;IHF!0 z04J`@d5UL`L>afO9uADamB^4wPeQ~{#YKtr@Lw#vaJ|*@Q=FCt(RLuD!TgwbGK<;E zM22FabK;Q3IQ)Y$NL}ICte24Vp|_3HM!1QjU5D6Fv|d~=N8^JE=x--x>gkxu>_9LA?}4@ z*8&z1T2!_lcDL_gbEZ69*UAN`t=oB`;ou9+rs?73V&imiazJt_qB~12W~~Q$(blfc zpk1BqUx|#v#+r(PHk#1IO|Nc_r(UOyDCz4@oCl`1NVvW6aD~Bt=N}#}o>HAY4n8h# z*LttDTla}rS@X4|c--viSiNbuJkBn(N6L6RA9fuR7olNmBRY3!r}CYhOSxh;)Q*rW zsfv38T`#o*21-{b?8V4`Ea1JaZxHW{dLb%%=a{Wm>3V4(*&oWaFum~F#%AOS2J^LT zDFVmK2EfB*HS>_*la$IX1)uYz*ZP`CTw2?ozxdvQ8(*7zg3nj2VaU@zS88C9k0%%@ z15nHH;^ma6c`x=>35@-0mK@Ff5tmO548JCH38k%x?;l8MXGDf^KGSoCwc95A_`YAS zN-iL5?}@}@of6`|zj^eiN2;2xVWesa#raa{-Kq1v^qa|;!Ms#a+HS}S$B5(P?R88R zisw+qpQHJHbYm6V6{<2g#lv{o=Ot!o)^>XXu|0HETH(A`@S2L_>%k1J%NQfT6 zU0DCN2U9_$?95W{w5ha28=atA0Xk?#DkCafi2p5C1ih}BbrV}1l~2rEuV&P+Qf;Q3 z7B4s|_Y&hYc?J&Jt#4P-LvaD8w47V(8R!(Cq!rCk2GwdWI*3w$2Lsn!c`8U=E+t<1 z`HR5)6-Z+XQ}L{0$Tjm|eep+QhPgxG2pxuw;dZzJ*m&!#{g!?I|I!^W4G#OvosOE`VHpy0FY%X19=Pm8|N)GsE5D`aF=BnXdSRQ5?`>}qY))NkXbAmaKemWM z*rd&0HlPl?lGVr#vw}jt3Fq3jtgeLNXXwn`tRvg!))iA=myOM8mKRzOGHnh&L+TpCgt+vJdn_Sy0*u{>S| zS@w8H2{YC|Wj!!VSY`r?e=55X8?6vJK!cTHIIj)w2)W)3o<{1GN_x+?9ZJ~tXs$$R zKPvv#GoM-rJq)S}8c}j%Jn!P*imKG!mIvkXbyjuKz)|5&J(?#hVf0#h4rjEpw$^<} z`2>ByklXVM;BbK~Fzu~Z+Oct)vC?N-A7t8`ChuZyfM+mdj1zBY+V)Z6KmQSG@_PyS zIH;2gb5mY=c+_~eZLz{wAfI<1J z8ZJE8`w3KMA@7S(|3;3GK07*8tVS^5p6Szn_%EbXC81xl?5`J&TpIv@_}? z$j;W;(e6KM+#Vh)r|s63y?@m59^0fxs4C<+=h0-2Ig_$S9T7_p@)g;v{ZBw z$i>GsV?STHP5=l1khLUZ6Tb1T5=2p(5z@qE4}4!JgnZe1(cS0u1v%Qpc(?B-)glL652O4 zPF&j}yPPIq+IncAc=P_KiSMw$#btOke!xQ8v{C%l9hap$KcJeb`yitguJT3y!)DT2 z6nZfsioz4(!_{Zo*m!#3)^)83w|DfGGVZ(5%-Zh;APDCrdwoQ@WxB>QgR1-&{P#7x zzXkI!)aUo^=J~uc)$}9f_kHs3QmyWXa}PO{U)pzsds~+35q1w~ahQu?8PX&tz_$0CCtCx}$;{MTf zP2g6K%3Ns9kh`xhuNx&In2>s(s;QLy;)U9}Y1WZ%%}o+xFQRZCwbtA(j}nR%(r-x@ z&<&B}-S)9kbL~p``g;57RonGC1Qg(_n}dTxT&Xw^WiyZ7*0H1CY<#ghL@cunSzz_$ ziAHh>%A8Ne$XxY~6&a}k<6ubL;1aPgGOs?oKm3tGUvK#83{z{xMPf$&X8$LTb38lJ z#byq3UZCv&20WByZhWt3iYLmG%m{k^MdN2>l!kSdDaue?h{^5gxRUD&FMQV}2kbav7z$ zyFA>>urZSei1jn|80+5wqR8^zdf^5c0z6gZGV$ORDd$I=RlpAiS3Y4hG;+2F(HjowlLJSZ;s5pDKO6&(6(uz{=xme+kK1F{B}F<(~*I_0HfnnaHc0 zMaRv~o5IFl*!IK>=}Q5CA%8VgR&ccjGB0|m zybIlh1&mE0JXPBcsaU5-1xtDtr?z0NqYwOBr0q{46k8JB-u5(=;kMCD&qQ#vhSM^x zOw01Yo^voUAOggfx+B9z0YJ9Cm+`k}D_TG3dj;xSF*mLIZNh6c?@eN|G~*h=t~6eD z%rSzo47Y%@b$B8lkJ+rK&5=EBAzsZ~^w2SM_j_gq)tVQ&0$@BQNO12UWhGC(>- z2VOgGdPTTMwHQ4utfhE0fMIjs*dq-B-c>1V@)N{%=&9o)8^Lw|SmBahCRn@EtrCez zkdB*!KS7%m(E-l061c>V&kF+n=`m}`l!FjK@=4Nk~j{E+>u zv=NHWfVW9ABcL_Y>UKr2GAH;+Aeux%2q{UzAb(a+qNzsM$;~A=?A|57Dp-e9#%X;v zjKz>C1I*$4vEFk)LK;qaB`!xxC1izaRd%~PdOs$5d2`r5q;=TS!v85+@97Th_caE_ za5wAy54&13zcXgxpcu?F{wf~*P7C@t1UPv9G=m#zcep>Qjy9vj6V z+-)I(t@G)-`L8eBs=&~eEjtZFKA=?RMqe(&NTD**K6K%zdiHLo{$e$Km$IBU!)`g| z;vkGQ)bPePX(!*G@I)NeTM7JY2qGNMW-K!ZhkSZ&J9AMHiDu9yesE1J`EuLR{zA;$ z?AZK})E}xOoG?Xs0%I_4&SPG%N}qDTN}bz}BtjbeHJf^5;U`1J40piHrq;uQp|N#x zHL1)XBZYe{Pcb%YbDL4oW*9`_4R}ls6%W{V?Wl@wI|&8o-_)J;iks$?|B7D}Gnp&A zkwk~yQ^AY?y#Y=M=uk1rG1MmKp?cJi_{Oa&c{GD{%D=h}@1j6$)t5sShD}rmO$I$# zz$-Lw3=#QnOK}qmu{azPO7=78z$GERL)34bueuRG#~K_l4<%YUph+is4Uf!o#C*gx z$lTXf+qZgvKTz&WRPQ16JrkM=FNraR-m~J9^3BWpVAF}Zj*!hO0VhHB$0`LB@^Tp5 zN1x5WQcZ?)vKwg=dx?E?8)_43)#V-4Xt-Pc1C!?UE?GJSs7M93Izz z_OZx3edQW0y$+t?NdK6f?~`%!+uRwejBOxJ3NGz2 z78iJzTt8M%kTdZXXX-S?PfK8I$c<6tI`phkWXK|{^l9|bf*%cs zaf#(@9ZJ0|n$RLwct#P>U=r5va=3#xY!#|0B))f!*kk;z>SI^$O&eY{q6RAp>$(kgg+Xlw9$N`fszVEf_FQ)4BAsWj^6c=Iy00-zpU2`DHWNFU=)c$|&JtE%_AwdBe~2 z>HZH|Nb;x#nM z=t$XKxe5dOmf#F8w5H|+89a;n%ZM>zL0gzn1b2|3wF0^tw~_Jm53BJMF^CSBlpTh0tqc4G>@6Nyz@9E0&`*&Fsz?wXM7A`ifWZ}_<1Bo( z?3U=lml}KG8dCLNpzeldnm3Jbt0PGS)H zt=#H@M2V*#t(nbqfD&%>s;P)4c$aJV1rMAFr!QYxSZybGD_sMCA6}1{6T-y-03l#D z2J7IBY)9McS4a+;mq1WFQ*{7{SnzX(n87=q#8m|kwURD2`Gz! zJpV&`U)J5A)S%x?2nHg1)vu1%2-R*Gx82Vw!T{uPoza7VR7U_ zR|fT+hrIE^u`Z7WQ2y{tzC6f2WH=^`vSe@dPl>Wr!}H6oaiA!CBP|`+nq!gnhJYsCb_7sC9N@p!|VH58;yYGL|gF^C-FLa zN^&AT;4@4B0&^H3oN- z{b9?tlz^trPbKOtyi{cD`y$~oos?G@Z^d8nb-oT(5IN>cHGw|AaD-jS9{`+WhxWaO zXITW8hCDbbL0{rQ=SfM+x12-w2^|h-(h-cVtjht?*+(~}#l81>HUks5 zmk2{75CA{O`f5L9u~UQVfOwL)LzZM1_WuKB zk7epDiAwuSGTm)rzn#o)f zPs;XJ6(cL)nZyW-=T$>LHBG!tlEUnUCWo|e#OX_+&Bn{iCSOHxxj=xa=3(%7OVVgB z>(>*;mhB(S1j;jJ8v+;eRjG&Qf%KiVXf7J{k(E{kp2A7j;8=!BX%ecb?cw0zV6b zlpvUiB+^3b?6W=~h2>3e-E3bFg|}3|?F zFpMbpkw|LUNaZ9A9+IqwOXw#J9Yh^teJ9c2w<@b-QH8?EHs#$94OimrCdM)n={pMA zEed6;7V|4S-bO*#U(8rBM%lnxrX>?wp|;tFGwML)uO~+b^fHddk|G4YtOEF57g2Ma zpFSxPKouaU)*cCjVtAvwRh!B$83RF17W?fzRS^nlTp$R-%4sU-^NQANV{aE0nTFOF zCJ=0b>l^JrIA_`kiw@!80@f=>g9v&$2OorOb<#%bJBudaf)AEbcxb(-VJneCqm8#= ztdp$mEI-@p_lR*VAr9K>2+;vHLAzu(yatb{>&*D>zP{&mfDBsh0 z+RRmV9UtBaDclD+mqaY0wqz2(epg&;aP>Wc@CAa1m63j#rWzzNzd zt`F<6fxgX3_fOu5H~_*L6)f*kiCxov#t5JPIpX1T>~m2KDtSTIREy>?qQXSOGe6j8 z_HG|No)`xK2;Lr~`k%}FJQLR#Du*)J`#vvz<{9d|eh<)4Q{*%B+oM9|gt-0D8;q}w zxg9aIBBbMo{dx7%tUZ7tW#nN*9`ZUOE6Qqn@;}uMzs2ZaWdNW6OxQ_NiQ=V7rgd*l3-fi@l&aD%# zm9FMTZi_wCXt3F&Stk)!l>pDs1r%b?=sQ$A*2lGj6SxY@+L!L zhee4QRq=SwD%{H|Hy;@|2n?sm8vxF*zNSgjL4&x$VrFE0ew*iq68a-^XW1$6o`sge z2(+;%pVf3tyx;j>bzSNG?!(Epi(Dyp^)Wx8VC_?lLBYel$05!ACGq+ko356NSKmB@uyB+iexn9 z`n3#*tXu;hNflkB!$N0l-x5(VaI1o1omf53cm3=2{79uA1N z$*f;XX0k%{{h#vT{#Lqn*^1M(4b(PLm3^&1PvHo57}V+{39^FTul=F(6eC06O;?8r z_xd?hcAQ7+aXJ>Z*gW-RzMZr2GYYj}e5|?3Mof)^kMGL<)u#R@PGpzvNoT2SU{CXU7d^p8uVa z^ZwzY+%OnG2w)9EHiT+1QT#KYcHGJC=JJOvDnB2@=@zFjmMshD0z>y|>B|A^=bhq1 z7h#LL6YUuueCwe{C|#Lq4uNuP=X*HFlp)u9`bV~d*&IJT#9zD`D#YL?OkvP#ZkUBG z0$=+e$}ZPPG{Gy$-(>G?3NNXXj3WyJ1_zqG~?bIQV*inIEW714p5; z+_-jbGdJqu8%`ddPv?8zT+nwu`mK>UI1GHy&xpfet{(v1{TxK|@*=iTD(&S8_)=;W zvgU4Jo_HA@4Zs@!&_*zB&It<5ujp^Gtkf5M%zu|3LHb?3)1urhdii_qR_b$(l4%=9 z#6NECykpM_i^{w_cj%sxP7gupJJ4zX&M1Fkmf3e|QRLI}22e2Se*Jo!u^E+}q+Sxr z`jl>sd;Ixry`M*n3**zPX+y~$>moWgB5jW6Hd(rPxPRi-qp(1Mb##cP7ZhQc2wsF7 z(x(HJLLmvOJO&vYpPH46il$Pw9CTtN3(qM-8mlF2`HeSzjD#uwq0>5=(RZsp)f5W$+6PY0fs z-%-7&!oZn7cT1LD%F#s;loae&K?Po!xylB(rD?P@#AcJj78-J-)8e~)(ePR|qpEsO zMow!E?xZUCkKpH-QUgVy0bZAK%I|gX}A_8H#(G>{~A0QF+&pmBcz`0<pz@8&sp=!}w?VyTaWwsKp>Gx|;6O)Eo{^AUt86zn43C&6s zZ+NN5e~?^$b*lXkV20uCTCv3C@8H9$M-kfIuJycofmg{QlJ6#Y#TdK_{q(8jA)3AN z?_`teCXe`f7dgv<#r}J}VD8jl^LTq7ORL*E?C8=&)hviMy%{kovaO@i=?saG^#MVZ z$ml!mpo>9s78yydzYlVwBxPaUjK0D8JIQ@@-N5WXr!yz(R)*R7q2CT-#TzRy)TpyV z{nZH(cld9f57*Mo#T(hP&58Fn2Yl`3htE?_-J{`CGa`3I~ za=2X#eNLrcoi!!VgZ8lmIeIAr`BLW8O|5bJRXAN0)wBu1=_Z8;r)`{#EVT^CMD=M=n zaqo`FRlk-#mr_PCpt7GPAHYAY+>Jh_=iC^&xFTnYiap~!(sHwP-&o$49}H@DAl=sDG4<#il&}pdYzS1%J>;_79MwuXfd0G}S3YuuW@A)2WeS-F z+XX~BbV}g?yh>EYrK-&A9(2)U_h0`kH+7OJFKTgMN62&s?Ym*RLq?ld@a2CS$|cy} zy?K5O<;_R{0OQa|;V=MyUuIiJBv@w_6_}$?xzU!R9kOR~tuD4)4dmu(^Oi?ZObd8kS8Nh zev9lYH6k)-c@OTwis%~8nij$e zIclu11FqyBqfeb^Qb;KgV6m13o2~GU6%yjXxYE*PZS_;0T2lbT#ZFSQ)a?-|%r$2< z@Ug~P#+<%M5U~B5FJmVF9DNJyi=k7TG*!Uo9;tW3NZWLYvvlk4;QUF zo&5!3q3~B4;YU3hER;b$1QqbEJUxwEJAqM^_ zhxfUA6g7{!wdf`V5!RPmq1x+IB(ckj61=K3zK{@I>6*I;5xrbE@dYQhDV~Fr#?70h zsnvadA3a>Jl(P&U2S5`!B{!_IXjU8A zAOm4XN)Tfxo-A=*lGdoKF%s_sQ4lw)i!d0Y0JX5)(M^vbxoo+o1p^m4AeBZTyzPo+ zz1L&J#a1E$wilNq>J-me0nL#p8n3fYvLiCJgN;TfBZrgjvI}#$3`m^l)BlH{esXf$ z_|m7R(?d(Y*9{yAYy?#w^)owq+h3bRJJT<;ublemfmR_*9r7W5pcO&HUQBD*4OFka z=bo!tj%Jql4iaoBvvZjYdlU(6{sbc8uj*i7HaX=l?o5^s4>&78*_?LFG~8)xFA&eZ zJaQwLOa^kPr>$MBV*YNTkns%Eh5Npd0QIBG@m@xb{~2=K((C?ywRQ^1<=4XPn#yzx zJ*Q_3#D63^VdYQx^YChQe=@Pw4KP~+(;wnC=|~9Y-E@Y%%?5gq=V-px$ircbn1%M4 zGn3J{@(PJmqQ{pjX7;X~0DCC&)ay9g?lTX5$g2!a^S12e%n7v&Dh@+s$VQB=c7}T< zCcGngt3VwF=FEUw?TSB<@W> zh2b)n|8miDyW5N4S6Ta~Z9&ewuo>4Y{KEvls;!*nbTEeDc{5jMVvZh31_L{G0A1Rq z8y*Gl@X|i24w4q?y~c}nCtS%{EOgl+)PasCS>+7y@AH8mNwWozQ}Sjk5+Nj%Yrj1j z3n;1NAd@JUu=dVi;|q;=a8?IlNNRVQ)y-A%HCd$XvT2YK4#@N16_!v!SqhKOeMKy*4;lU+IwkAeF$gAo`azanW( zs_bZCpaOPa<^la2Jew}5Y<)e`Lxo z5@3`mYoeVCZZYOI_WFbKGDYHIw@~=c=ne5^uajsq#1p5Q)PRx+bW9c(c5-Ayyzo6R zyjWmI@A)e+K*x~gwXmjyf#}Ej0#}4vLhXxLzy(}_4RMa|=L1mYXqVc3y{>@=NFwGf z+%AMSAwI^uxsf^Uy{oNir7ieZJe7Oun3?sfgzb4&@NO2}fkjud8fc{>a(tf~0&>w_B8+CAVO1CV;cq zrHG7_m6%~{bDtMkMjqonqXSwMfaF<}!9<_u4tGMJ5M>%0V5Zmge z(f%x{vb9sgU;dCwCfwq|-jkn(HI||+$;gthFjuAEu5N?W8JH!8we2sX0KDgyBBagS zt}QP(y{CY+dF@n%2Xe1OWH79dm#0eezv;d@j*ei*_%+Rrt210z@Y18X>+W;9N!GS& zEWP~}$-Tn=PlNc3;b6SRZ+eNq1ONc-zb+gDd;4GPt<$gMeXV`zxYeHceOuO_;3kb*fq@|-_5^xsk;1?CMw0pt)3F^CtTqJ?? z3{F`E>eAZK`t0svWaATa4QAo~+v1$(xQf*CG%3fy9SvM(Jo`?@edbDjm0TwA%Kt-~ zSW+Tc@<0b$!~ol2%$rb8C+EQgV}#)UR-}Le=8F~St`h5x@I2`6G9>INB}F^C5ha)z z+nPD!n+`XMOOG&AN-B$7dbE!#v<6Q+@!38#x_IjZ?-3OL@tKGll{`hO&C6|hjn9nO zR0S9oQXDv;+z*~V(&>BAq>E8e5N&be$b%I@@-NgN9s-hzK(Mp>G_Gj*@#O3sp9!LC z3q7ar(cOjSr?;cG_5O3=A#63PX)Wt=4!_2(y3WqJHpur5__M2&$&Lf)RG#3y%muXpLM81nx0pXGX`Q1 z{6`;?GWGeXPPb!@Ln3AQgk0z1C26)>N4NOMII=|F#yu%`Ng`)9eHCK4c4_3hVwcYZ zG9*#UP&@giP3w&1CG2zg0NdrN$Y;-mN)J6zw3U#ba+1ZO{>a3?_r*m;4q;Me&V;{3 z@lsM{e%3&cuM16O-r66-t!*1*(-({wjV&OnhDRJAV}CjLWX_Ogu>-d2zYD;vWEDL? zYn7{f@9DoRb!3*dr#aqb#$B)A6O`F-%ksBd-p6L-2>dg*eqk98w*v@=l0e|C(^T)+ zANHCS$9uVh=(&F|7{ACTLd)x`752jT1bQFU9NqnuMUqRJ>kt+*gaMWsmxJFro~^o$Z3>!-fT2e^#tHE?9oHHh4C zAs0w4#SvzV5d?gA|@kjmrxj9Ktuh< z1cfwOy@{=z!kx{hh43mt6xB$6guEtBuZ*%)lbj4b#r^zRN*GN;!oy|BvI>|&{IFow zD6u^DGU7H3_#Q^%?npy!$7Q=8Lq}gpFSJ5*$ph+za2<3d`Q_ z?lwMV70cY?@i(MiHV6t*@r4Aa55+MNHLwBNLEV8?+k9w@cKWlAWA(AZertrKeWZh7 zEIWI?C&1*m)R4u?Z9KT-jF$o4FstkWr1?GZNhu?YX+Tm;^qjFNSA;#-%qq>|$I{}V z)&O+-FlMWJ262>tebECN_K~Up_P|mR#(~91iHUB!VM&^{AuHo@f`@deKsH;R3Lvjn z_OlTAW^O{xoOd44(XsxOYMqL%Y?uRP_U>WI=~$+Rk&=X*Qapsa43HB~`l-ga{Otm$ zR=gfp@Qh$(P7^WSl$e-MVS(np;D$ufH7iy}iMe0t5r~neVxwo1$vlVZ)-3$73Y4YG z{=_X9${)WIu2J;1f;~hNq;|<(m^`r%g=uJ_EHTbh^r7GA30Lm){SgO0k(a{c=6;RH?EnG+>u2aI%z-Q* zJhUh0>HuTs5Qq-^whTHyDXW(>069Qf6H2bB(H^z%w%bz&b&y1A$dr?A3(tJzug-Z7P1E` z#&#^f35LazwkRM6N>Gq#VfNrib@=^Q_AWeJ{S}yI1Lf5M%fCYb5VtdDO; ze}1HfeKL(ydIc{=&|cy3g}u*f@Iwz<6IqSyL5EcTqXZ|Qot5_&;^cS_ptR-1ZO(P8 zPA(QM9RF1nqJx?ko(=q|-*Q}Ct2OrOxpnr1l~1`}P0iBd8^|T}yW7c@-WxyJJy!8b z5pRogjwJKY$9R4P;Ar3Q;Th$+EWq@1hU zww@Yp7DwbTl7}>Cr<}CMgF;=SB$a0okVmF5S~25*Wb$O+oNwg};Y$V{3-qSh&2{ znz+6&5zqnya3O#7=CK*}p;gdAM__pvh7GXxj3SQO-a+DwJlS{0fVA4;Cm@ezeu+W) z*T(AW<;jT%%-Es;^RSy)f&|c(ukqBY>Ec^ixm%qZV$zJBE(cU}_u8oHg441|k<_wZ zkOFGmmT&*&?8pg=WqL73R1`+V1ogFG9us7e{!lkG05t$mqD5q|Ed2rq&cDB(2LW!@ zz);egkk?PM{!@wO&(@;r(zn>YbjQ{%7B z{EJa*dfy=U!6}y8#!-X-v-?w8&Ikh*tIuM+>6%qJPBXa2k5!Z#V;d_ z&jSugk!KiG51lKkgIB*BnKJ8-sBnJ~J1@tolBU_g0psvub(oK(ss_0p`l(DR@Vrc2 z$c;MH?x85dU>m^6!tF{d!>&H#)A#ZGdiT0U+e$x9*ccs8uCb|&$f&tUWeGB7cpN1q zEAeE>(7`|4MxnkGZ+Clqc6Q7$;`dHO`mCL@GXl2&n;wzcHat?ZBc?eXi%LER(wI5p|=l*s$!b1CU?4D9S-qUkf6;9VTn z1)I8vVB=(2MWV9j?D@V(Svt)wR1+F&7iOvIW6{e%s*BEkYZ-a>Ex9{)yk)`(YbK$s z6r~)U5Xa-&*b0?q=A|4vyW2zPmYV8kSn8Hgk6-zVq{qvS<5bkv4$F@7w|4&Z=u*DN z&h^$c+mfME#I!}@PAN;)<|z(rvfE0ju#st#jl?tKr!j1Q{4rno=VBZ{aEQZsZ-;nM zv;G|VlP$JY)W6;&K{K_6}!jcG{b3 zLm65ZcM}&weEe(8K{`eVqwmnp@%0D&_yb@pZ+}A`aO}DI_!hlJpNZtTxl#$Y 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%0Amxn|>3-jCzq-f_(0 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%0DC1GGPjJ~yyVV|54TbS7lp)=TO4k7oC|TtJ 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

th>X z=P0(6vp62Zri|9A(ZS)p=BV*nG=o0q= zi5q3oTB_cWyl4VkNC|$v4tK`XnZYjxN@=uEWG|*sY2E-znk< zo<)W5=1&D=v4DYXNe#mr#-)l9!uuKl)bkgkSk%~gYwL=dpA z?kt)0`nPbHLZ?p$S8fH}!jfSc%-C^XL#>-#(P66gMzpl3&!{$;)YmHzNj)W79lCpV zaN2gX*y|XN+zYCUV~UUjPaC+$v6y>H&aLn z*IUY-vC=_aZnMPCbej=5Ur7&p&fdw_xtz-qe=q<>g9?-+!^;b#P+#=Y6}iXV)RvYH zJ94o*3|vT1c&BCmu%G5h5$oVb7Bg^U-<6vj=f$8y0JZ+XHqofk&+>&D(!DfxV=EU{#y1#kXz#gD| z91CnP*D7+#M#`SpoFT4sZ^(_fR3Zw3g)?!|E!pE;=3R3~JjZyP^$m^oIV?9AfH(ys zP#O<%e;$LhL@}4me5W3#7TSJDngRg~lfB?i+8`Uf)@ckim!=Bb$W;ZHY^8m9T5vD6B?>T^H5HfU28G|BUD#y z4mDJ>u{KgzX-taIK_EP!MI=QT?|`xdam)kiwzIHI{1}~bF=g=1=74+csBOo)Ye)DQ z!hdZe>^Oefm-nk~aCXwOEQz59>szMU^KyTChcS<7?gq~aNgWs07w}HKb#_t}N7;&3 zZ0+-FI{w7|M$A6Su)vNLqu3S6;Zy8mCS%eJ!PTvJtVL^f23s{{kengEzsfyr{7D#~ zh{+)Z;M6SHQ*?zt(^7p-&2|aX5L+ZtPoB^aL|_e33bjP&y2mm4HkCz^=nsjpsJQL2 z)<5CYd0JX!af1W*P;M;jj!#JP9X z4@~o{M$3!Jv6Crb2WgP^rqM?kRj&W`;P3sTlXDPhV8+sDwp0c@!(FMyaA`?8ZkFg3 z9~?#`O_A3nNBfa6gcL+4;-p9k=|ovU<|Ln>5`g40sU9csLuLY3a0dfDNQ3E9rbUo7 zXM`S#AVUYLpq;g4$0^7MW%fa5%!vU~poqihQsy%ZY$PNp@e*@3D@Z!OI7%qiA^Jpx z7$Fq^joKY6cSTkf3DIwr%v_7Xqh*NZU^|0V*=QXxLPWicL7JlINXP|O$FM13)1)Bs ztuh^dm~8LtrsepHllkypg&xZmVX$S46jQVFm`=9NnA%NSY2Ogbmy$bgQg9faM;JgkNtP20c zPaTAp;r#QT_0sYq8uY$%A*?9GJzi1hejwF{k+4i}@KCYhVe-Pm1O`qBtGrJ9a>Ghb zSKjxx42oihqBof<4(KBGdnZcd8nW9|#rf3j)&v~G{dV8>zm?UW8(YggTtJjVlOF0i zUe=iYXoH$j&696t*7h+~>QJF72r8maBtR)qQ43Iu&k|T!@*dF~@5V9=l@L#zw@c$viJ(!vDyh;qbfccLKnft- z5ws{oA@}}{7AER;P>(fEN>p*8{%{(NMSxV_U!a0>0c*6qE;_P&+vopF0F7koEx2JJzWe_(sw)rHK)3T22Xhz>1z z38w2 zqETWo9i6(Cb5?`#h@3OndMo8))UbEf;5+e9n&3WQD>hJ4)w?5U%HFt|(db}N&}h!4 zjdVo;Pf*nICh2aqdLQy6<0y=Ha_9#ANs7!Y3!$QEHuSro@Y@s=N*LkjdVMWhQ~1z~ zq8?(N<`p7DN!MnRg}mY5yGgm<3DJRcSDK;ZLIvmCM4A!a9!sZ2=vbvxTO-pb+6>K- zDoTM@LvJvYCFxv*G77|mIVJ}lak5|B{<{D?P4hd>E&s2$$W<^_d}cc)jyU?~A^Hjwcr)rt zb3$sr`84eCt#^{qJ)sQNiBlbeY^AQ0MT%EkcWG>~Z5b23J{ko79~{x@WM>y`Y^QzM z4KCW)4u8WI_#46&Z~2eWK>N~WwE`9}5P}4M2@d=vDEJ)zu^@PtXp=js<)?g6t-D*B z+@W*%JEQ;2GkV~V*9%mb+m*6Q)Z zxA2hCrK8dR?1~dojK>;GrVc-b5&COjg=&rlx1X)W=-LPs*$+X)FY1Q^Pft88P-#D_ z;z_fPMkuaY4<5j#_9fvsk~u3NEy)~>KN^pf z+aC#54XY2sI1%4eXTN6wnh?=~+*CRMDTp0p<3SHYy(dO03ff;SCal1V+y^D+Ofe)n zkr8}QqNpNP$Z8_KDq`~TGIa^i;Z_%u61opRv#->yV~~yTHtsw8(#7KG_%qM7TM%Az z2@VrMZCchP^m;XITkWs~3q3-z?czW52ETk}CXyHodc7Vn5VpW$p@z6z&ESxE-!^vXXMzAtHeb^>JvW-}Rw%}j&0uFd>^X8`vEEBlBmGHP>0Vr%y{M1=I zeoEQonwoL$fw>CvKb0_1a`CnV+2-+^mV>sk4EGTcqZ{+N;FYw@Wr!eDG8dIe7$s;GqS!bh1Drpn=cmz(SZYKq?n=Xlzf;hoQV^rXL@m=!IUhcdbT$>~biEs`usWf@ zSs2H>iCli4+fSWaL6e(ZZaRF_AOTN81wyjtm5~%f1Gu_SzFg2EIe?Y zpBn2rLWNvOcakc1F%;OflNuYs9~F2O7=J(@M1ffO`IBTw`ISL#5h6{(I=?8`*_7!{ zB*urZ;QG@TizE>r0YQ1V}Kk)IZ*(hBie$Fj!9PgtNo zCG>-0rN?-5$^uElrJjbtzzh|r`$;Lqf~?jnqaWcG7iesG3kyG>Rf!-^!^_64!E7&u zaSEq@8-zy&_uxULon*BTx@9OOSfZ&{>podWQ?fH;Eo)*NO}`PTq&-knlROs* z#*XOXUik^$N~^U)=NEc%vA2DRiS9xPzuUmoLu^9rSQp!Sm++kj(&=36?Od)92a_5r z2Oc3fa@j>~m;8ZRB(Afy-e~+CrgvdZNR+#u93-h@+3Q!|Big%@HFhbRnX8BgZ5Ef) zg?{giE|KPp2~;{)oSu=A`#)mPn7HjFjhH=w$=zBSFvnQ<{$Ml?w1#9Z0-9z4eqhaa z$EK|GRJZtSc?Z3eVdJazcKgytkN8fPfC=QB~6-hu|`{Ej2X_DPY9iiOsRQQ#1zH|?V5j@N0f@4J>8AccH`zi zVUbw0Q(J)#82A=;2ARfIr)8tqXsRBeZ5rLgGG!qdi1;Frpd=o=ShcVPlu#UI>X1Q9 z*!I};uUzpKjnz%*?$14R6iK)#OO`uUM)3n2x?(HDBc_z ztFfaovvz+PN9>+`;E#2-U3TWNVh4-Uk=TznbF@@?r&zc87=>;tz4Lt2hQ^!maSZLj{bc%|6{X>=v{j2`53eM`|AD8%r~Ru z54F{skP%Kjx5V-}{`az#dy-cN*}^}Us)ty_v}O>!f!V6}(6EHFw#L9*_rmJUZf39L$35q5N z!!&Ngw2E_(2(1d=&;SK3DUFe;j(9_vn8-xbQRZ5>2n`+~>=mWAKvZ1eqGjh2`v$aT3~%pX zlvn_|?a}7JE4*L85{@zr*b7JVmrsN#yy8hVFauCvCjo%Ih+G7ihG1vuzLsa{BG|_D zx+4O#=_u*Keh$bZ{CVrwpSOSQw0i6)h_EmAzPfy9*1zUY8%+`~pt;MoY)g)1xu5+* zJ~pDh;(Mod+fC^4?s zT}MSUs)TK1R)aqn$Ou0QK1bL^MmZRuPOYJFY&)MORfTJoWB8XU;GP^LhSDCa<1ST+ z0RM5*HiIc2DF)`g6Dh|+W7xvJkqsS{%I4D&jfpo~^^#>iD&tX>I~fNX8d?I`3(AfE zf(UAK0kM>`PCv2c()%T&t{J(Ud_I5ypq#Nxay%1dgll|0uaITuf>Zm?0N)^%CUd&D zA)jJt)i2#@6!cL#M~5|X1DR=~TyDj0bt~;7t-k9qfy8hd|8Nc5ww%F+w`^#yIka-A z?UKpGXM$m1M0FVnQM+wm%vQN*q>-_L=toDp6u}9`(v!cZ1IA{^1TknSacZ$yvs)4T z9_r`_*s^v#n&#s<8vYFDmE7pj6^*z0G6!nXgV-$5=aTO2WGr((YS~Ew5TWsB1%Y?y z$@CJfbd^_to>H(rL{-^<{!=0LGya8_fQfsme2AHQ{fLK>bdb~ z=_s#($S@fyAgtW}?9k=xS*!YI5dRVyYI6PeVv-|Pt)ZxR%@IC~!x7*LeWwTjNHKBm z3M4@|!;2e04(Bw^IcglOJbPU5;v2bq1oCut8uA$vQALz*fdEbsku8%1>IAYA6|G|p zuPrDEDAK~bxubMyMV%n1!!-I3eDPFu>FF0iTHbsZw>v7NDi$%lPZT79^U+zgNaI%w z;L#fF25o-s_uhJ#GDz`z^H#DEoGe{W;Lh;qyuT`98h+doGERb{f~xPkO%?5N)bpn_ z@z>Wz_F0+m4gGTXQC9}QmOs_0j2|>b^r1-e7&8SfL8JN1%yd{Siv;~Y7muNy$_0?03IklKTuQ>O2!kk`6) zhzVC<=MKK?bb}B>K<;hhPMPj~<>_C&**`+Fe_CrKfV1^Rvb~Mi+4+RAKxJnz+q-Lx zX8S8_`s+_=`m0*gUmH|%u1`wkb$*v|sH%t}_>bo!Hs?2`US=mU)c$5L0*Nl4I*&OJ zhUP;uJg@MeH#7(4W-;gm?+PJpiu_2XL%J0_WiYrK1Fz5$R#)`W;XqK3)2;{4u`HfJ zUr6LW&t8Pj5i>8k&jB$nIxRyxiGJURkRGBalYa8-`%0`m9+%x9Qt;z(3pJUdRau*} zQ=qn@<<6Sfm|LwE9H3J}mWv!8;-1048>w0dQ6=)+p++>Zs!4aa1Op-vJY^6ez*KA|gg6<(aNYC8`zb#i-!SSLEn^ts@~L zn>D9UC79FM4&+ElNdrjyVJ|#*`RaAA*Tczbbaus^#21v-5l$L+_GNqZntN}9oF#YT zHO_7QK8Tt13o27hg6OqwQsY^34UUNGC?SkUyH2gr3G(Ybw!-`O&?dZVa%a;`!5SIe zyyuLec_xGmT2Mm$aBPPf(;1(!w#YvwPhaxqIR+0|rm}p6ttzdC;Y>v2$mz*o6!Q^h zwxCW5!k%E#;@C)XN>CCfbxBQ}bjEpMUUqZXRuGA#j0IoORuTV_=lCP!{}H)bSe=T1 zkq5~JtduK}dTa$z4?-guTqHnnYG=(qDxK+u3ZN1djt!_oEhqpHvWQWdm-?8mGGh6L zRFAcXs1X4RQ7m^+)x&1O+8xD#%=qKEs1V^-;w-G=y;Zb2sQ8`KPgb>_xJ@?&BqDM! z}Fw1bx4^vi)Q3i6(1;3SJzS!v^>u_M6#eqicD7yum1t{eBOWL&q|D3(lv=@%qh zv+90gcO~K(LIpE*=H_f$a$4r3+_ba&G*56n#GIaycr1tg2%;<0Z=%T(zLnb3;M-i( zq>zJ}jFK!Rm0vO{a;!l2|K)sWZF77A#}IX6ae0wq%wLiIsW6Vx?~Kfwibyt%k>Zb> zyC!=|cPqx`gT0IxRVECHAtz-g-^yXmPL$XXIBxo8d>$)X2I+;1Ip+$Y0k6~pkpHrI zqPO1S1z}N9A+@er+gn==*IzY0Ut{nrV`+?a4C1JBdxP?9_RzEoc-OD9ECD~~h#G@V zONT_2=6S#Ur0r2YVFs|*^XW_!CQX94$rFz-@jA#$)DTN5P%JMwdNPS)KCnQD%S5$R zQVrTl6$x9p80!NQkiek{X(Emcvcn=>GxMMf(Zj}qh1n2}2Q#(&Z(5pk3W~}_a2G91 z+buw?H~x`YwK6JCNwg^Yx84%N!?Xc`gLB2sKzVhcil0`#h)d_-+yJkg{B5C-l}mv zw?LUo(g7vI{Yl)bY?x&%NRR9lq!tOC7y(!<2@&>Ju5qUYHstE)V1#&tNBN4kEtT?8 zEFOW-Z{$^0R5~aeOfur4eJd?$U)1XigjCA5pejBiU$RA<8!1|!}G9uHY3N@9H@jAqlAh9~^*7JQDdN$`K~ig|qcY8PnD(eBImHiFbBAfaJZz+Mu@M&F!7q zQ$UI@yk<+NxLQaNj8^ofCj+$B8={rZT91Hz4A8&Ock({u|CguQG%4vY2}ev4U&qN+ zQb~nEyH{^%v*(|VDo6Ekw(wTk?QMVA+y3g$KBPIq4m)RlIv)MkGb^an9ohvvxO5>b zCDx6tkj~u81^KMhiD9%T1c7n7w2S>;LoUHn8 zW!Jr0`LY%y{9g21r`@G}`niZC+R_k!Rd@zIGq4FYLhRXjyya0=i4VAama_;$TL~)~)dp>MU2&Bm&*vl^ z;0f4w>XZyIELxSYpyO&k{%GVjDa}^#%`P`(vWn1*ODZ81(Va?w!hT1btD3!6L^Lei z!X@Rki*~Qks?*H*!3V}hT@=d}`y>cZz6>aZ_W;RE95#Ce{R%rAu$hKq8IIWP3E6!~ zi&DDZSAknct{o8G`3Nm^T}Mc7_5&?&*-W@El*>Ji!K7Y-ASESpE8C4atXNN_H0Ior zoE#h7F4{k4?M@E_R5QzvNT!4qdLb3)NTa8p<}mT&GbbnE%hR_2bKd@OK8Yt2y$SE;4mFK-!l`^-vdm1B zua+Fn6sDENBuF)9BWMw?&5mmsqpDuY3ka%vTn&`)RZ~7yE0s-4uNP(>)%ql=V2t}g zD|~ZsesJ7rIg57|3l;MlEU3VBgxu4r0fg!_gGi=+O}>%hhpr`OagVckH@ICG<=a6! zcp3mjq(&`@Hp4k(;a?iiePXxNz%%4k0F7!b-t{mvI4TEcv1cHfd&qA{O{U=4Ob4^r zH^<9wj(lC*JpB8s!*}OLrzg6zQ1Ov_Yv#{x#=O4;WEV?Y!NsOD6f5tH8groHXEy6| ztfzeq5?2@xq}c-qyCAEs?153qTvVd|+R44-$CyzGqlen3aD~Uxdf7V-=tRe&g(a|8 z!!=+sVwd*UOWMs1Gyq3^;J#D}F6q6wK7QW%RVYsOf}gj4g@1N_RW4|XK9u*Z2y_;A zj3+)st;Keh_1)c2O?{#_3YM(9n%TAM-DPnp)O#pUI98Ha1b7LC7AVNd>~cQKu~dOgbFp_GK`?oBuqbOq!* z!!VyB8JHbqO;#7#N6e;;B=h)mEZx~SMmm9(uJB2vZX@xyU*^%bWbAa6ePoz8fD)a?*ltO7wLPsfB|5E7_@q+lG z-M;j%qj8+plc&f})tlur-TjsukyUmSFSV9-)YGktO$@lYv~O};`=TQ{k%gZXRu{Si zfDYPHrSTlaAGA0N4RRn!>xHcx5KG-GhT;WJb67hMsR{D;=a=T13S%87WV+D{ZzsF~ z)|c7RS*t=-B2Iz+M$WJ5Q!2d(mH!UCIeEYw~@0=A#6)%X|nug18_ z=r%@Gf=mQ2N5jmD>KLQQ0<;QVaCSv;s}iMm(W2!3-M3HF$|`0mIAMzlJH~#~Xu(%D z^wMi12}O?3pPdZSlpXN;@f?_GKD4AcYry<hy3}#Lt- zvzJyzqH&=kWI@er^REn;V!pWjkndJ3oi4X>=Bgoi9UV(W>+*HPPD41fDkhuk+VEH-TGa!-IeqpU!dV6+e3 zLpjQr*dw}jc8;V{S9{5H8jq8xiUE{qsujWUE!&h^j9NauAb6EeVUBod)2ZA|0V%g@ zjB6$5xs^;>9T{3id!I=K|6tHgCT$9qCJ|4M4zlrSmM)I)T~9-mxUrzZaq}A-8T}xG zv06J8Y;KOf2Osyh;dhs#oWX-|u@5Y^EiH-;MmY0jP~GK*X;z-G!wVV{st`+P+%q1N zbBnN@A_x+bJUJ$ck}=eyFcfS#6dBftM%)n=U}f@H^0$%0AqY74g;Aj^t)zrOS40y2 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 l|8h4`-*>Xs1}>6Q=j=}0 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

  • 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 z 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

    SF&Gby;5UU*z?5(&Ro>a-W9m2)I_?_om+k(CS|f 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

    yS`}+4ch_) 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

    v9w_9#WUM;Xk<@h&a9huMJG*2}g@# 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®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%0A9>WXd4tEQ)xZ}4?p{w;b*t(dfYzXT6^#Ek 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%0D(-|d4ev*;#QfH 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%0D|DShcqUAv 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 z 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

    svV6zd8F?#24^J(kDpUe` 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

    aqV;HfX+nKw-RwiUzs>%&qn)3k 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

    qPJ0y2Pe;^nyHQHNaU_L)|maH1J$gOY~$ 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

    m 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

      oFAbC9TaCW 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
      W!4B;=^e1>y{e88#>5o;^y-L18b`Y`P_Pm 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

      QD1(;0Mp1-=DJLx`asN;*xjecuC%oz5V- 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 z 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 mBk)u9^S#{2cn;RH7dycxkJD%yN(qW*uPqI2{B literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/embed/setuptools-43.0.0-py2.py3-none-any.whl b/venv/Lib/site-packages/virtualenv/seed/wheels/embed/setuptools-43.0.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..733faa6a546ddea979815b05e12c83fdd0bac706 GIT binary patch literal 583228 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%0DUG)uk0UT$oDWdSXEj>wW*{ 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

  • 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%0DY)hJ_ONv&a4)dbcy&xXRa36{@jJSQ z*5#;_VF(u#iFt9 zVA-XAb-ta*ebceYfT7BmhI~l2G~r;1kA(SAjf2yT|7XOKs;E!`0&f)ablJ5QhG94s zq1TD)WR;>MZJ`GpavB|A8tc+@cRX~AicU4H15GKls~yFHw6mZ*@T^e7I4{Y^>-2H^+JN$KL+*=AA z4gMZU#mUEzJ7s^$V+ze3XjuhK!4Gu3z$fRAS?Izb(poi^6uSixhMoDA_y!JbT1X)#+qz2*y(N)}3duUcR zv_72@k)}(8;?A7x+sgVNGY<&Tq9jp$?`Nz>U6(8#*Ga*15fIj~R~;<3g}M5P&!pYKU)j&Dg%L#>aD=fL=?l8rY~BkWyjTxth6> z*qSK7-=XF4$R0pf3sgsdb4ssY-EW7Omd-6^m^6G5q>k5ONNDbHn{*^G={B!>eY>*{ zavDS7C?;=y?t5PY<|l+y0XwBZdXIl}q5fCbXEHl3AB>ymMosa>5CSp^;$&(w5zGIQ zHH68MDgn@C#)qvbBxGVIgWWv{WaA(aF5pjIaAh+=i<=P;K@tF`-+@T;#7`nkXuFCW zui+a`Yf28f?5|u*Y-V(UF#&3+4?@`9_aTv%w!==$_JFz^hiyuALohbREDGmn0QyU~ z3k27p79Wgc=w*cq2Ot3MJN#MQvHc;pj>-^xcEPUXu(v-G=Q+{E0MSztoTRhzk24;q z(6Lvq1d+pf50|M%^0&^=k_1U3F#+BEvs@{vBRvVzB1kCN-q2htr!YxlKt06x%B8dW zv0#*5M1K6Ph8U4MA!NlL3!I)Rz!a?+t38a@j%OXgbVkqojmwm@Tc zBZbv3lq|KT8Fp^p(&cq?h6P!yZ<<0_Y{sXk5{B~@6b}_YK11&9mV8Iu+0M{aM`G%( zt|FtUv_t=rC9>_Km@y{_iS;&1NJB;nQkjXY6H?G*jV0!&>L}kzvXk}{))=V zgOtYi5fcdb;`p+x$_n@f-&;QS99)u_>BS+*sRL|;yXRKBdv_N1pgGD8Er1A3|Acu< zu6Is78so)dcX;K`34l>Cm_V=D$w(~$1D@TF?rqNVgj#W`93-gBsZx7@{g4kebvV+j}g?`br;y~fB4pvw8?eXG&Zy; z{3gt5Gr%9ZhMMn}&jVMmkXChH?Sc$J_>awpJQvSt8$eV@G-0lb0v~wrMNSNXi^_(f z)McicVLf8;GdB?$e}12IAy3)q?+i(F7E2+nr*eyS5-p?Y_^39Zz<%lH{w!ohxXol3 zXquNLr!{*-7FCcmnjCXIsNC66MEOFZ1r=1y47vrvJg4|qqwTk@?>FxTjF6{594;Z- zX{L(2nPDSV*PAMv!wu6a&g5b2NS{ghb1O#=@{G{|tSve80&z+AY-!Tx_?yM4*o$qr zH*+=t3%C^>KO$xh=K7fPspdo`;0uJ*VmW4&i@eVJluMyiW||`omQ!$9TINV=B*EN5 z^rSlNrNc?U?%_1s$p!yO^9m|~FnQbbGSJBQTBBEJENW?=P-dOutDQmuwG1sL2<{m@ zd--<9p7lL?`5uEW+-xE9QzI0@oP&(Q>3n(2pV}*s`dHf5e)?2Es&>6dE{4-=Awa~- zA*b-598ps+)GEpWUHf*XN(|3MmpFMdc{l|ZT(wz zD}-~n$IK{I=10*#6ij#Oa8wD_&H=cy)1~8iI&{0yl12tqaCCo!ub|YCTJvz339HC*x}BUz@tVo zuLT*qvA(A#A-In{Q1Z?l3tjxX_FI3jdEmvO-hfy8;cczD1gs&NRquP3kUM6nm;t*KCjIxuq#AE@cbzoFE=8Wz-R*VqY1gRoxxAxOJ%Ag6u!g?z`5Ccd<*h1=AY=C zCKVOtLxsyQIo~JU%g`dIzqTguh#9qPFOltbcil4dFM+H>7)Eoa^?v!%o)MbcI zq1P}RiR$5jAG3-RF08R{l9t3-LnD&r)FIE0`otDhqMsfa&JI=!v=pjltyFgtFX~7U zqscDGb$cW3ce;NVnzul22dqCpxLEy>k)%kf;S+(F81EpTLS-|d7&b5UfKZ8}Vu|=p zH-it-2^j!i6^7TrF_7n=K3l8bSL!a0LTn;L@`}T;k2llFpKhM6Zml^Q`(S(^LGH*~!q>#^!%Vr+;gkX-#X#&3}_qjjn%WDN#i+#_92b z(%;!^%Sr2!n(Gk>rfg1;NPb+V^tZu}+SN%3Ts{TV19G%@U8v?kEe~;t0F<7EMAI z7wd8-#uO5$;x2;IOkU3zh$zm>Ewjpj`K{3t*y!TI4CDoGv>Nv2VG~b1k0gF2dPF;e ziyaja^fL-MYyw~Oxw^R#+^6=*5!me^HjAc;ncJgX_y$*g#|PTX#;3BexX~iY?U@Ff z|NKhx;c?25vWXj4VP-+w& zx$u>j)D*YQ=F%Kwpl@LYUM%b=Z{tg@|GK8B{IH z05XX&7m6raP8t!MRK93Tt8iS|>U3u?54^NA4QCrp=9gpnQOTa`xd&_Y=5Y-?n~UMw zyM5wHxrx<@kmu6usyDDu=IO+o`ElwkA>}UERRNVUR-)L=i$+BqmA1L~7GS2t4hbg0 zLz$wZy3XB4`Vf8n@m=v<^AW&XcMAQK3t)0^Pg;H{9aQ5C)r!Bg9Cpx`jFSt)iS(%M z!?(|D#0@lsgiCVt80!KU?guWT=e2w!lS+wAY-@1b5^nA(Bgp$ z_j|IkXJ}9V#nHS@n1leD)aZ@2hRtUxs`a>VlM}*8FkH1#Nd$lii{X|Excy-O#m4&) zD_PS1;aiESmg5D8S32Cob_6(+`aDycUMD2b-BKy+!EubAKLtX z0Pwi6&l^p7JRO3dDp@zwyVtKaa1J0Ee7Yxbx!vw0fWG{15Ow&u@P`=*g{(reOiZSM z&v+YLN)Gk{npOd=bDcR@(=zfx?5g|a0%1RZJsJv-Zx=zZA*tch>@f0;Cn~BAA)g|Y zQ0u7rp-3L+!HB^R)r!DYz5-1vZcX1dT9^uVQXn z3Z(QrNYbdOG3!E5%9|tnJ{h%_|Kx$~X(Cw)smi${5^33os$`6+XWyNR5p5B4b_bvL z-L!XSH(oRl)HOWx;o7@PzH^0Ms$XhXlC}5O{RtVy#Wv_+?R*N zehfUJfwi1oCEo-=a|}hxkrT5XMM)ZV;1r8!IKxKFy0jTD_xW|JEzB$uxfQr50KY@% zia4uKbejUrk?4c)x3=DJ18*~3Nes1IGV5SzOQsYtY8auzVc@3DQyv=X#a9bKgw^Zk z9Q8T)c;M*hWKYw|_zW-mFay4`2&`R3iq-A;F+o_N($9Zt(_5J32BNkPz~a>#l3DPP zw2K6AgY&aD=<_=0)Fo02A5DzoAQ@jrMk9WOP$#SxRXPiE*>YNA9NZ={5B3yeyN}O(`Lu+1% zxiN!n&1M3t2Xmw~Fip4h4)tj# zLQ0wHnVtL|e0&@)e^CZCn+Wg3>&1x`&W*B=SRUA zLZ(S?fgxKUmP0%Df`G8cGLBWUmo4CK67p#g#p8^fk?w8;oI>Bbn&4TfaG0zp>HOYTFHnB zw@1h~yFfwIP~<}o@nfoG@BrYkqA-B~>s{GumS8L*wKn!dV`jnS!CvrKp{{6g+AzHJ zJ(ThP0_H=h-D@`%n1L;AYw#V)-oO5>rJn<^ZA3k)laT3003+V}t0=^8M~5=Z9Y=l) zv94ffK$%A3>iP4yUJPnU=g@M%L0336nl#)Z#HSV?O9k8}G-YD4HrHeOhxU?s6Q`%L zP)gmFkQD(xA2MrRQT0+I!FJ93<2Ij4SXqJwBQN@z9RQB+9$=g*kBA|rUM%C?A~mmz znzInq)4tTE%@~LTY%|E>toF^@e;(nS`6O(!+r5B2I$yoxli!MC?m?SHap3#{f|Xql z<&090$Mm0B@}*Y3%Qiofcn;WV+Y5~tec^3L_Llr%19CK)h9kQxk z>QN~TU(A7mSa~5-vPf+h@mxIi(a<-HhL0++G6w{htJ!#E#}tY|kT@-cCbWc*3SUZ} z-mY(%`hv^Ntq6MJBUA3&CwG zsS&t$Av+AeFrX-9i3O3M2`R^}ScnUW0}dL#;DaY$X_SPMlcX5KaLPDmbx8851q^)p zk{$G&p_2bVhMZ6mLBm8i+7>N@S4Wjo<7aHRQ1Zc9`;Vjed$0oDZjv?R0@nYwJ?|(oviMN*}%?QU~OG ziyLr%X=C0-JRz;rQzI>3fhO~S2CnjIM%Dtc3QRi{Rv+r#5FbYwUHpbNTop4i>nmCU zWPV)Lil2T?PCP{nt}g)@+!~rEsp+)jYwlHM-&B$w`0%Z2`-_Bc&4VlW4&jtn^>O+@ z6`zGks6A$8U1D=-M1mmLU#DjV5V-iw)DEY$E*^W zwzm{W>e&;L4t`U_)&Wo=<9#hrfXSgWC$&$+M5m4$jE6|8&O-)b2v2ia4G21qXd{os zbH2C}g2-lXLZN@YICuxPb^@yAz=nO$ea8$z%zTAPepYPTRb#N2%P6|%rq18huU+-)lP6PU{%1;X1*qn=e7jJNg zvMqal0H*+E8PyEoA5L$OcJfUTuJIKF((XHcy?xYFGiIUJKM+_4Dm0%XlqQ|xohrX% zOGQN#66&L@Gw(Zm!6KkgV$y|QIJ?1;b|)V!Dx-f-x@{pU_zFEU--OWe25#wUdbryE z%$l5%)zY5qe+|nvR;oS{P~z9~FfSA-F>Ym9ovUbzTRd*Tt*~v3zl+E`oAL$B%uWqO zfMv7Ctt_2ELa}_zU(cDry@tErtO;{DI!{^dbetTP1%CA`8f0Eb-jSMzp8{|K6Menu zgrSHzC?GTS5!|`P2G|A=U58UJY?LHz8E_iQ6FpibNHM=B>v3KU+rsA_FbqJAU9xkz zJ5bn!tkeUh{C_vNJxDD_m@9IIekY zarxk2E;MuEytu?DYoFI$qq7_&08tfpU#Zn@f(n~|GK*}6<5pd7EbEqt)OB6F~6z$u@*Na!fJe$NrmnawtMY1iSlA4>d z!R0ZszQ!(jrqK}Ki9}$o@SqiFdM*MtO?`e?hI7tsraIE~y8Pftpq`}Ro_EyqjFni- z05OnHnvodlRmGNlf*ZIAacX_D_f2?p>TnJ?LO!^y7E!u_n6ltv@4+jsn^N7Kpf+Ph zCW^tq^%e>T)%aQ_H@JC12P+RYWwiK3h&rHBTtpp(o5_f{R>X_qXb>4!!x6V=1EczH z?@`xjH7$+KMPzBWN^m*e7~;IpgGC}3cglUE&$7PWpI;qwdvSceFGr>}Hr8v-kH7F; z+sSQ{Y~x_e?Jv-7@pZkTwP|KLKVG?k$x*|F&CJHQQJ1l#tR;t$Qx13T=n-mQxKKXjc_aA;AN ztz+A^ot)UVZQHhO=ft*c+qP}nNuU3r>sI%ze%tT6R;{_l9OD~vv?O)|KPGza4I+(T zor-DL1%SNn-(@ycwp$9}aZUkGG5H`luFQTo-yD$1ZcJjD(CX8;*sl^M+yxcn1#R6z zOUJ4lIUw%eOcmT#NWh2&w{Uws0C)b~p?AZ=bSyg7_HV3cN>DUl2zBbGYI}YYSni~R zzG{6Btx)OM3myA^2F=h9U%?ktN0!s2TBEMx@;=2hey$Cl$u^vDX7%wS*E)8NjqbZ1 zd-!DL{J@!-dTO1ktADqxoTE}Xpk|~ZW6>?}Qu4^x97Z1-@FcrAdwIS#MT+)J$B=&V zYmAk&ojqJQjC!Bl(>+u5#_*m8e8R{af#1R4V_|wK6c`q5V4hSWxy^n z@tp|Yu(i~x%X@%)gQ_Wk^jqmNwQ^|*mHR38j}c zQ~v_AxRWN^f)Z)CoQK+y+Z62P-xi=~Nw`V$2fi?fyDK=Nf!|KN zdUjlHwd3CI2YwE6fg4}=tG4zX?ASZ0`OQ(QtLr$k@vP$JAou1(D6B(+W?NwRcEj5!Lza{ zpIcUEU$n{+K_L1H#z@81k$_Z@b8@Ap`{6w*Ig5pX7RVQ`ONu-}o#-ClhE?i)@Gn~C z|9tCuRhSX)ut)u*&7^$K|NbvLQ5~J9l@u8O0A>ULz&}b6fW3u1y`HOyt+AaW{ePQf z{-5q*Z)a!yPkZ@KG3lnbNE0*a^-Ur|LvbQ7 zKs>PcDH+mUp6?8Deu*8Kni@p~n`%=160?%hQoY4(b(Uw=^jS5XO%_XDxyb7p+YOS= z6_@p9%NalXaie8s6`LQ5%jb@=l@qz{)sxlDs`9-UUQSIycO81Za#jb13$k%%N0GSM z`&o+xG%XdkYOkLFeD$-ZJ8^=Ni$}%lje?pcKrUX%y;Btps}#KzmvQ^^eG{eDXC`;& zp6%w(vUNAANfoDb7OaySzFL=0%On-66fe2mrAZj_J9>?E%G>wNt4FV8)=&Gd*`M88 z0|Jel*Qbk%m{+ymZ;|3!rbVVm(Z$$(uAuaJu^=`-?xJ|zGc~7Vy}XotWa7sHz`4}LHcFu z-JW{3D`*W@qobbD&uL$s{q65}%4oGp!$_QFeqT#oJo+B5j1(E}; zCSlOWc2{XR^2o7p;mymznbE6SSw*d7uBP|PrSAd*A18~%J^mn!Pb?v`T3DRrIZS3u2 z0r6L2@&nD4*-}iHsj&F1a@mGB>Ujl>WSd2W$+O7fZM{&`{;n)NI#F!AZTl9*O%irr z8kl73-AIkoMJe+wNl~Q|P7XR3teVdY8;r>+w()S+wm}h3$IIS)jueU!UV_}+74eHr z1M+iqg<%VMXR>Nz@Ifn0B_SmuDe``(tTYod4xzd~3+juILlPWFE?}bDDL-QFQP6Ca zRNAz#Oo9`_6g(^d?kr3OkVuf+=0!pUk}**p}j?O$vxmjRpi?i-mK?l((xfZzZZpB46Qo19atJk0{(PXO^a$*ejb@Jp6W z;h%^Mk%fQ(K_1N^MA^whopJTzOJn)t!JA3#y4JncL-lEGcR=0=ApaMNd##sDW>n(p_m34JE4G$-F>Q=8IV z6ja3TW<#*Q#6dzGi%*=C_uovFqO`06jAt_7PvbNJnCKj|7f%`=%mFIAQn~Njez3Cl z`IX=@b0Ms4BW!C?2Wrf-<7u)*ABujWil5E-OTa0Dw@zH_YwZC;%W&h%#-g z#EcOXB?t<-IDR68P#tohWz~PF%GJ=q@+1ME^y*v*Dnhj)v- zBVL32+Xmc0^bF~FjpY*LjUH>6T^Nc3g~kNbM6UG)_(D@*vfeLgYfwP4c>Lw>xT#VM zWS|cGfCU_c5M{P-5AlroFMDM^>BCNig%R=~N=gizT1T~_BUHvf-Lq48A+W(EGb9ak zo;^cciOB1&O28u_GRl@;IzIYp$1kzDq?3*fM20jG1vaO4Q#ur;FHts8j;F*1zLTFh zLay~~qZ;6{NfQfh`sdc*gA_&rpuu!j>JU=V_&ZPzV|TmJlRAhjzW>S^il+K|9z3QnadI26>)D#GHF^j#f*Vxk za81CUnfveWmPKXfc+AH6o_2yjQ?fupAD^G;$v8XSDL(Bk9>3T7!6lrX^+rmkoS^t% z3S)H+zAv?2My0GK*zsF=^v=&5L;Q>8a{+DXE~6`}o^CwukTrf|oB|8E-nLf5IJ6Dx zFZDYP7TGWf^HMAmBh#HybH*tN2}U1sKyLvOM>}C@G2}vHC&G0B%L+u0q^CD_U|gK*`EUrf4Q&O>J*D#RcAoE;&*|7 z93kM;ToSX?jL&>?tEE^3Qyg^I`i@$g0ImR=7)0Q2Wf)NGI%UCrQQ8{R+U!;6WHR!h#VVwkd%3cSui^pa zkpaVqa}REhX2>Ap`#JjLrgD*T@14{mfQzI_B;bj%D7)P|`T3^tFx5(a<|KWpG zLm2O?T7$TE?zk`XcKpk|U>5guAHQg3UUZ%}3l6_{f1CRu%W!1`=T4BahIlMM*lsAm zGxTYE6g3+j4Uvs)`VPQOG{Wu54H~g$*JUJffH`owV_KNIYTMHNH-abn=fwwlC>@mS z1RnG}O%Ra>9BHAm4Y}&$W_COPyorToh%b!B=BpiP6ASL$Ml}zuwL(KoR1%~o(n)X^t&K9}YQaruZl47%}}hjDi3VCdVa0{#j4Njb}zF<=Ln zfx304jbID*LI9&@96m&~*f}ZZxW%w9m$N*fgD|{=L&Ce^ z+u;cgp1G1Vz?dKn0tjHY- z0`kdKsrsAESM2NXeT;Ae9-9KMNXb+~vEk;IuM#7D`24DcEg@k000ip5c-{}LHx{E2 zlm?N(Ys)3(|xJ}Hti(;K8P6?BAM|a~cq0WJ^x~D&Jn3SyW4ma;f z>$RrY5tB6*@fhRF0cA;-GLxl7O}PP(oq)XNYAt=k8>OP*w1V{qkE>O}sj%kxxH+T_ zIG#v>>#^+@>ZUR`*#TC~!uTu~24hjmGu{9i03K%t#5RO^3_vX^pnv(ssSm#q^#BoI z=OhPX%Y&l!BqE2RR`hv%fuS+c(0KY0ET6oaxG!0Y#0j~T)9jQR!A*h1a8A+&$37|5 zaZ)626EG6MHj(ix;t1iQg6;I>jP#wCVu(ez<4a(-N})nP9ifs-c}_?XX%BY@xnIgQ zrcx{<>tf8qIke#;NAJ0Ft^-aeiIqaDG1&c-cFgu@EvCvp2X>egMq$oEK`^#}IR>Z^ z6#129>UY#_C>m`&`1{eM7c3GrYP%o-7e;`6R(k?Ln z6p0%98i|SD#>j=UA)mMH*T>x|w&n%-iN;a@lei*dJMGxNmh&Uc=&YR$4KY1?pqvt} zU;>cB{ct$B@ouCM!xWb?Wr-6L4@I95`3`v^e&sCevS+`+{no}bsWnyURJ#O> z6z^(0GEqlLba@U+9Z|C{U3#ZNC$^dT)eK9+Zq=7HFp0Ry6|c?atX73$!xreiS4j&J z@yo6F$_wYal;-gG{46`+_Y-%XA#VRN)sTx<7Iy7jf^nx51AY3}F+pM_29SZ=$&Eig zRX(x#v1~1J?3m^z->-U1`D9p+U*qJQrW>T1mpCtzr{Fu+FU}s079?jP3Z}Z}?Nord zudg8MvwYB=fzcS$+)%3)bb2PxxSZ<1^2%evJz0b*&WCUST!QBF%t<+zNdqJnRn39| z&K>&!9LW;^lqWg2M=jtOiA}RN)%HJA{J0D1sS-yI^4gxYRH8H5m;RE(S1tFnPX^%ng_U?RKjncZPZ^tnUEVLNXdf|+pcZZ(w3Yv1Jl;hUfO zp`ap%7z-hzmre?_=EIGD^rz-h1o1DOMq!N6&_hgnch7!$&x(__w0v6#HiT+oxyR3B zQz8Zl)&Yd|Vu0!2Kz0krD69d+YT$)&5Q=T@%ICsxV-keTN#FKIvU|&D!T{HHivQlu ze+0Gi1t762KbpggMjU94DIE5QjikwiNACEYz&}5>P0dof6f~q_*n>_%BOncqnMvXY zj_?*-Gi8<`l4BKet(c1%0>fmQHR=|7B7b;nsF6f;Xf<~SrjF<{fB|8fb~G!U552WC zu8M&kT1U1B(A4#BA)}!MBF_graW_^l&vKzElpLjHM1wrV{VbGI2V})HPwdn0q}3Vd zw}j_6Wdoxl2P4N>Vuz=U=6u&+X)Xq1gbz3xmwX(OzZ!y;Fq|`Uq8oW=N>Mrp@wTgaj{1noy;y0EY$tBMKK8R2U2mHFKqi z$|mV5)Bq(8ou5>Zfj!HA2?^!BM;VvLDa$cXs#UEV)Cu!M4j2fd^?Gud78yOW+7OQT zXl}hfJx7jA7%DO!_C3>S%V5^VrfCPM#}w0ZsshI6c3MXM=&fD2EEV3|=+fqD=Fkq9 zGTb`%a}U4|wbDU5wwaXd@(pRE&PVxT7Zic{ylSPhKlP10xlJ-F4Ep4M@4S6060_R%=?Hoc3s?WAFhO9)&0Z z`)hD?vbSx*y`Wz`@8a}e_C}ol`{OwUprq@raPDyQrvg z>3Zl8u#=7nVDsD|hXdU16uS{Y#L8uAoNBUC(EdE+jy@9_cb%=fI?tw|&>$&A z*v;zf5Pbx4h4Woi2<*GkE@K-!vSz?Eyzam%s!(ldz?M@Xh{QJ%Y&HRgpmB4>)aObs za75fg9+(C?yoYk$R_WWVMRx|(9 zT)+t_WmyrlIFyMtD%+IXv-x9CAdFmZ2My9&2?#UYpycLtb(V>Dd*@c@E z7xpvhJY$GWV7J@XEi|D7sXRF);>OiEAxtt~$=%*{)k~6(G&?~s9Tw-8`;Jl{ZMsd6 zrkxQ#IsRn&u27XVeqB^;9WoKPlad*03ddoFkjj9di3?nYy7k*8Syl-9mT5z~fI2}x zi=tFAA{M5f$-k2T29Dhwo%@D3rDkaKHIjT*3%qRf)0uFUUsPwcJwo9-@oYuZ0pTgy z2~_xFEr>AA>!ueEr^vLBaxH+eC|4Wf;S8^oum;e{w)pvQH1r>~1$)FnPPUYoSG3cd zJ4z*<{_sZL8=pzk2S6b8LNq07%-@*OH0fDJ@e5x)3**zEi<3s;b?g|oR(P7XGo;%} zK>4Cyn-m{9IWf=;%ta*skv5d`hGDCWlA%vH@Xey%o}f=%M{^duse|%iZWGM4dO8HQ zFan*mctv|{av>DC!aEPz&j{T*_t3k4#5hIn5U|u8mAzbG7T392pjeok0AoWM9Qv1R z*Vru2?u1YWaWFJ$?hUj9#RZntv?a{%91c(Q3KWT0m%qLkm&e{^K1t&hyd*cqwb+>p)(C?_xH_DV~!Mm#ZR*OvE#W6aK9 zfQjJ?NW33%yLpEJ^}$L!QwZmx?=KA5qrlhDHz9pm5w1+Q6D%-_Wsob!16v(UmNn*^ z+V)iAAii3X;ZW4piITi@2A62D5q_pa--NTFu}!vZ{nWNDNkU<8|PVNZP1|Pllr^D&`?KUVEdz^S!ibh`39;rqK!eh z4L#sp$HVL}fl{65(W7^ycp<=+wg?IjB50VT%L>iJimS1ck9aU6cnw+y+^&hja2zkj zYEwJXB8X-yxGRI!UI!9=Z|dXmP`WBw1~TL0V_q5Eza1^_3c+YXcn04{Puo}=)m|vJ zdK~zP5u8|1bt2O0hQ58iax$ug?ZlR0GhnlOG$Yv*sJL}NdrICR-GJIDwk!Iyl2CUI zGl13fIlP$zzd2!--uF+Syx&m2ub&bbSw^05G7qkl?zp|J#l63k`F(lasa0#*6UJ6EZmvmX^CDW4P6dyR41YTN)A8d(< zl$k+dTXN(h_{n9i!j69$hYpU=UZNYd1$LCHs54FhF0s2#hiH_PN(?2zyD1%ufdg=K zMfxJnhVi`6|7=>{nhC^hPoE#HZppo*9#&R-vrxK;SWa1wmzZ>_pcuwJ4`NXN{cKYr z{LB|;)qXeJkAt{c*M`V+e`bftP--?DxEmnS!Qj1MEg&KAUUG@@B*@!QTlcg=!)myX zGBk1b=*l`0Bq)FwwV&<|XP+^06$~5vkw6Kk38u-A(AE#TD1fMmb_1@osxu8d70P@x zCd8fwx*h?LlyfOMFQ9d_-VIpr=s?vTJifu}l8C(5DEtxh)Uer$)8LC%j zF7G8hgp3!_34sn2RsE}UwU$b-vzP$|m$X+n?f^6o7?_ZiFLH8CF|ckf+2!4U!7dk+ zTKM;UGM_mg+ObJI=~{eE;`usW17>$?CTmHfYOAr0*CqY4P)Ojrw$uU z?i5WJ)QQ^W&)cUI$dcwEv-WARa=0O^n$Ll>U5AOc;42_AEk{8XCtNVKAyxSy0QX;E zN>3XRZKS03>iK-zF~}&8vK37kUQR(Zrm=1EPS4d8W3G*Dvsoxm>DScA@<}|F;7XpX z0UC!$o3WOmCg<0?0?&{0ejGCj+wEb(ur!4O@a`Ns%%pGfuT!1!+5!}54)o?*Eodec zi$H#$n$+hE_H6;k=&SNKFvpdYs@aKqNRXgFwQBon~4U1 zkj~Rp+~&T8!KEVWWx8MaCS5@{NmhQvj>(QNo=x03XkLTMEG1cQiu$4Rk$^`kk!;W@XFMH63S9pz^_$=Uf;oTCvpcl~ z_YoSItb{4%zgs+(5e?!#BToDC{Wkj(eu|d<^@H?)b%v9Of*}iqZd18&*9jtSV03%+ zBEKa2tJIR(z8i_e*BRqlmFdDsEW%_x^37|X)d3G@KE`eWbjD#vlCCS?$fQ1-tc-K> zR|rZ;8m)Hy&2k4@xK^K0r6Aq*KEqY<4zlogUcuP%a?t`16(`Hwh*dI0A%SHiDYSLW zgfhA0<3u=m&Eu@*$AFN5mvlpeES zewG>}flSwxt(cTx)%D%2NXL2R^tJdR`2oo7(`G7pA|U>oCfJYaO#wA3UdMGXDL7Zj z`}9LwSe|xf)@A=>(gbKXKk@3*SkN7Xw+OES*J?y?5E2GAQ2!aQ)(yG)i);dONcM%q z;M_YzVtJD)ZIP`9Fs%(T-plh8_-Qx|)ibh-Wdo zCUy;aYb2l2Zo{x#n{dd$Uc&*ZOPk-vc^1M0yiF+d#kHhY*b%C0s%w+x?WCzz?qUlU)7fueS(z zr3}n6E(UmW`ytb!fXZXQ#Nm$|ijbLK)TIMF_;T+F$YL73#8dOjpxgK~=H(}h2wf5X zf7#OM3N`2eBA1>*rOp-&}$_^B{Pegdw!V|{mey)jMFu>z?}-$vsMY2nl0z+?Wx*D%PDik0 z5{ti|EZ>iCzJB7?0i4*^XroZ45rtFv18};np!o9R2-)()UFcMnQ4jUlykgB>D|3tu zAlBL>>HQRU1V-9b$#@=BA^1cQzOMRHpq(742|X}lubzatOW+q$?tuP4i(I@&!q3^d*Zq@--;bf=bmIKK$x&47HEANK8SD?RmEGIN;2tj+BFT4xPP428 zS9#^TJx17O?5aB}NO#akTlcA3W09d0_+EX;tZ6m->v;oH7v!3$3i`*}SMKM`r9Qc= zF6J7{QGtPBK&H)2weKD;D|;H**5sBvNZw8Mg8`2%oc?K12Clk+{6Ul(a{Y%mxm=H_ z0?`pl!q@l15kNhBU*zyKVMXq?L-xw$BD8dm9>F&j;L|0@3?ZP?!2^V?O#M zfR%NvOo_+rX_eTNK9mc`iv~`iCwBqzZ}7xj92sH~@()qni0$V9O^JJ3n0Qw&E$ayM zyC2z0>%EN?yuHW*=o~l4qQVaUbQ>^aYRoB%Z*sPnBGDAfHKh( zS=-^Ewi46?=^c{0AY-&6u!em&YcWbNX}$9dJs}i5((4@h(3P0e4Q@tH4)L-v8Z==XDh~1TRUeZLx?;<} zUbb9d?K`$9G-z-CcM~LYbv6z$q0INu;$=G3puW6HkT;cuR)lQKOQ4RdHh63pj?bbO zXW9rg%BbN)a@?==vR?D|KbeQf*MEuRPVBAgAZvkp-6_T!+gLyF#M)2e@Bn^aT-9+v z4N?rQ>JsCCh5^AYg%7b{t;Cp=TNOL*Qf*yK(?s|X9frS{z1}EjCf7ueJ@_$0Zr^pF#>Txa*6WW}w za_hWAg^8LYOvUlDj7>M;kEU?8lpoKbIvret@J=>U4rX}3W3B|c(BXkER8ifVVFuQ{ z%v;RZ38uS4jqWbKzQf)>AN_vZ?|;6U&9)OsSd9T-r)v#>r7+IAn0w)w6XvgO6_EeD zr|XRB18-@sg8f2edKibM#@^J{X$V`+F?%wtZ50Zv4tlZ6YdO8=1?Hx1Ww37;?z>~v zEvHm=d67Fc)s=w}lufLf8~ju2 zkMRL9w?+12hl7J%?C=eR2#dGZN9{}eAMoaa*rlXn+@7O2HW03P@_J`K;pPtcX>ZRc zgiDE4(R8+UgscWXK)i1tVk4$!&nK{^JepZBZG2GMpIZ6Ltl4~*ReR$9&4Cy>o@6jf zx`?sPjt(B7Fdy~?z6HYN7`6p|Q?H8OScJg%ei0YLv^JO=VYzzu%W%J5VfkR3AV;e{ zJ%<;5_n)}E@6%C-Ki!hQz<4e4o^L2^@=q!k`DeynLOx%SyaMMsXpbMfJ$^P-?+`Mfll-1LLv|OY7B<+X zd348Zg=wC^gmAV|vxhn+9|I4vT7tkn8(4#ziJ++5S|FVqL-5`GXD<1tYz6ef&&F>^ zDvLH3?s->pqZ7`_gV#2opmvL)MdM|=sL1LJr(^3sJV_X5RW&Q>iJZNZXQH2y<&A{; zWK=uFt;QUA9JQ&Ov=>S$*@g!(wsL?-mJ;ttvSwB(wi`Aa05>2*H^_}|^F@BVbW|}t z?42#U=0wKw*3aQ)5wg$!8jxbOc z^K?p88HQr~qAdt|V9L;mSq%&xt|iP=b)|q*#~+TtLxZ2*I4S2=~NK2C8`c;>1 zFpcmC0$l~xtF5#HAF}ZD8^M6$w9rs6e0gJtOb-$7GJvmqMQ)`pIM&X4Rf*(){B9JO z{1-y}Qu15%-qrgd=oBCiix0OR8lT2aiWCl2Wi=3h2DTs-^s> z3E#&NQ5K~MLea%My=PU8jvm{yAot|TJ>b7xZ%IcJl}vmo&=tC7Pdkcpjh__%{=Car z$2(2t)oCD-8^e>v;cEMt`FF9<=Q2=op2r6e*P5e{FWMl zelhsOU?o^LTQc3q7N?no-7&Dhi^$33@U?6y6P~su!y9?;O4?c0l5j!Y$iL8%UljSryt$y}IvoEu zb0j>z{Ko6;POs1V$-%Df&;9iK*Tu5isoiXCsDROWvFHGkbUxpb%`f)$ZT^Edz3K@RL0ALVuvO6q)x((UxWUGE1Y}#sLD9~$ zqDL%=PsB1>`+eTTCew^N`gYOqFRqc?#_n$WxQ#Z?V@4IY>_ZV3gpbp#jxhE#aMEUl zf1U1NwZ=H%@jb-U8Bynsr0?|WX`Mb$$QH}jaC4n8zO}2?&parz*CTKnY%y(ROsFhr zpTm0Hu94e|O#I2WBhaLmpe+#NK(l%CWD%C8b!E7bb(cXaUY(l?Egw0S4 z>&|c`P9#FxSC-l5dI7zOpL}B!34Rzj+7JX$#*X&KP~54bAo4FT9|Ci#9tz*TH2~cb z{8E9q9cg9{!C-!7QVCSX zl48s$`V0kuNT5x((4|8(-3U&i2!UFawghj9lGy zH5{?a^h44}WK=PxI>69963(p1pQSD-oDgn&CFGOnH27yC5VF&Xvzw?OLdfoo2f4xO z;f_9-;qEu={vJR9pYzaNPr5U#g9th_k6v0HeQq=hejSTdHP~Pjm8vdNtNLqPkaVC3 zJeiC;5-@g$+IVp;y&a%dIqk2%BIF%96$YNl()Xr}GVBT$nxM_L^W^eBLOpPCLLk)D-xb6FgY|U?Gs58@E{ZIUA2i3p zHMF5Py$I?6$LIV|OW0N}^&;T~4y<|kxjuNn%Eec$01J;LuZs%i+JS3XQ$cjwbAQQM z`|)AWO5m_2|2#l{#cP63WC#lqLqqY?V+E9)cvblqP9B_aYG0HZBnieDXB_mA(5-Ao zbmT?_y+gJulMF#QAZY7iz*)%P(<4Bw#tu)ZQ$Gv8?@Qn3vkwm&#v!aqW1iF$EU6Cv-Xvi zis_ueba=M2nTys-&rt!DJ(OPYf~`O~(x<0d|BX%m;!~gL;_c(R;mffv$LE$xv6;pV z+-S*%#&VB?X^DS@G)0vaRkd4K=+3r(>78E21rJI+T=gPKNBz;VrPN4Ji4ca?M*r$v zL?orp)<9n)QXL=JzK*3GvoY@42bWw_AL%Hc*j2G9^bH80r?u*f=%HPa@C>UXcqapI z@dWg1)`ym@wY;CDLaHsnPxu)+)4+su$yRU)QUQUO1&EN&dpl=5SjhI)FKDpm19>^= zWNMghj(Y}==kQH2z?{N3XG7fW`HcMyPeI@OIf7NJ6ew@$L@AI+ux=k3$5cmMDp{AP z6q@(_rZumYwp`)5;k^&w->2+Q^WzJ7$cNB1UK_ognUYmK&ez|V9f2B;af!FAI1>>S}7JPqtVT#w6{D0@hXpU1#4 zz6ie2v^cjpYVTmkND(DJ!aScpoE0dby4T3>A46Upf02>Y^`_tw_i?5HAOfG!^3htb zUk{f9W!|H9eDc&x#Vrc^K|8B0nI?nl+!xCHjJ-(t^JD=2td-KhD_j3l+`t^ntAZWc z%#gQ!Mm>gx8-jlNN?W~OxFEamHs$l%NV+?B-w3ZRbvFOUp%yP?r?Owns=g?=rJ7>Xip*Uk#sF!bVHHyTx1lA*l=qAX zHpC=8P{*1tZ_X~tdfzp&f3j_xn)pSLRDC1fd6pl2XGFg&+$A6gR3`a2T$Z+%Blu(t z8e~hApcd`!_kWQmgPsTAXutsg*wFv~uHXMQ)0XO6}=*Fdl@7RsjxMLs^6>hRwRy$Bl$EAu-E&@QD<0*z4wce|z48 z)|Eu!L6n6>3TePCr3^J6n=(?geyD5qifL0pS2*S%#5&d0dvvMC(2;c#k-Ea%Q>sJWD>XZ(iC?TcxRlYoUUP;>{am-8F^6;EKzC zO*Ruxx>i=w;ieqoaaYGR+4c@(n5lD>da8%lZ%Yw zea}-sNBhTJMtHj-jl=OeQ9_#T0#{`mwh*%t`C7)j!BH$K6c*?gnwm;Asf$uc8cEX@ z0D|_ld|h2_4D91Xl&_Veq`YgUz%NJ0G7-Wa$%mh3DMv@g4`+$8C4h!?ASu+z zF;lyq99}ht_G`G_12cV zdTJ_@IAw8G8i3%c{gMs9z3%b~h4T$SI9J;$R4(yV&qOl#{3*b;b0@@yiUBW3l zHx4XZ)DdNOTk{3AV=n+WE0&QVS)t?Z6|pW73<84e)c)X!ssGlmX%~gWMb2zz&Q0?} zA890QJQ9NAk=_#4gFx`9+0FM_3IhepdAm4Rh1$vHwT863Zwv1@ZvH=T+4Jg`Pkc>u z!$-5d9rWDzqo#sDLMR)nA%p{R8OD7v*apZzs$PiA;_XU1S_GDP^yk@Q5N{uzv6=+EzGDsJZYmA&nuzi9+92d8S5gKdd%+ z#lRPH33#p6c9d3@6(nYMdgm(Ak*wrEr5)&HR7G-OT$AROUG45pvd%8`HQwC@EQ{Qi zyoAD1>t#Wnu+GM>&ftQT%TrPY@z97>;&u5hbvWMntuQwJvxK&b#PJ&Jxax zzEEhu9vBUgvUqp69t!nLS8OyyZ*0)$LLg5RP6R)52-v!=2(Hya0E=&MCBx*o)GfFg zAUt>n7JxkXAM~No2vNMAZThAFI-i?e;tf`HKn*P}qDfUDgMV(&I0J%uK(GPVuGHh% z$x46RyhF3>!**M0-31SSSVPlMhRpnb`ns;0P7(x5F$^#>dGZXNw*Sng(>wt(Cy{!G z5+QN27|TnHvU)zu!@1{N<*hrptL0lMUiHvu17Ah&?M;0==r%6E^-NIT!=twD-l*$5 zM%zBcd)X8D8pDm4HM}1@^1-CT{pinGqkg>_IAI`SAC1x>FFK^M-gT!Xf)oAX-{8wO z@ja))+Cl4nAplW1Q|+BVrT&SI+{aw;9Co!YWshr7&?^pnv3-q{LfAK#KKoR&; zSyr5<+nnYqt=`7gs2Iu8WN4^ouh5_XIWuaLO@PKMxEIGgXR&U^Q^b=^Pn|L5j+u67 z4f-UZ5{R*T}5`65Y03GegP+xP-wE!PEQe}jlDk3Ww)_G=j1f;nv6m#`-s z;Vp|Jfb`XWy9d4BWDguEQCd?F4&92as;=IOZ4#OBnwW3?I@BUkT#lb2|D4Tt^nM#AZej1w^|?rgNL1T>(&;?aXmslu>(%yIz=-=s7R!gMESR2 zc*7=oS~f(WdKo_S>C{aA);Y4`re&q{5OUohJmDg8sMnEPdEao!wS!X9jBoOLb_RFC zXv+<$=RxJ6{rjxl8B0{L*HKFh*GA{_A}*$=EeOAo?t;kCV>9E0ursuT!}lpt%fs5 zyS?z9CK^+scocidW3w+RI; zQ%iM=GuMOy%2u( zIoSLD!oF!yAD3gF`9WJ2If1|4bzO{%%SK1O*m4pp2N^^D`Vpkcp7f=22Zq-`hWW*v z_Yh@hPX~qM4~AwD!VvPd7^eP?ap(K^lPy5{w^4huTbz<2HF} zk%}vZHMu#u!JNlD{R>Ae0I(#I+*3dlR^OKE{VFI)foLlq0#+MlNuIan{%K6&y3z4& zO?NWb{vyP(BYVyqP+GV2q8r&*_;y6b!KUiV=ru~B-qyRoq*JAu`jYuxf@TkS9-bZ3 zeUiIhA=Ryg_6Gz?Sup$lrx5%^1M1 zPphNiwmtu(%z4v+T#_(klLz)1K5-B{wNodok-!WJx<4na0(=X$#7sj6MDXy0a=UW* zFj!5KqvKwvBf)<-eev1U&zZhjEW1qzGFpWB`C= z0RRA^|08btpOC4Ifvtg=iQ~W1+pOhfhdtW-o11G$KumDHaJdGzp$!PLS0Rf`;tDj` zJ{)326E>O8KJS>iy`D0J@_oY-=W#5x~Q|b7_TR$zL^S8p>MF(@W>AIqz`f`CS`FS~|riLtuHgV>`Jht#h7q!B2 z@{nHChVG&wrQ=`olirfb@E|<@^7PxyU|24__w4LkV_wT-)4eX%8?_$3lhW0a?t1=3 zjeMA~6W>b6Q0Q-pN$C!=%r?!CmdC4Z^Ypy$cYFD5Y^v}{>P1I|9ktXoL6nt8v9#%v zPD`!bp3-V^v96GuQL+}$hHrIq=2DrT^F&hs$J2AQrQ7q!8lz676v^>y;E|(w_$T(3 zApx)+S&~G~WCKV)-S8-7!&!Bee%Q1#VTp6}*(YG{sW<|q9ACdR0@+j((R7XSC$YEk zG|en^JGf7}99e2A-w9vWdvEXe(+_B->>ju8`;4@KqB^aVVg_J=K{p@zW};;HZBJwk4D|Yqr9h zk?aSsyA`nKSLT3s6?k5z0z&4h0WH@|(F$zMh1G17mGJhTh|E*Qhr+VKVi*hlNW*f< zY&wIc!6}7Q8z*IXN#Br_6w#XaTkqE?QY z=Pv&h$W_Y`P^;h~C(~5H%DiNrWEyX3ph_-l1>*cO_Y8d_wo`A>Yj`-=uHZ+|k?JP; zTOwN2s)Uq0iDwAx4X?woPV^dIZ3oi4m+`IeI?qVJynMnUgcC=>;tz{su3CYu5{Y?b z0r%l+K3}xGiY?6d5l9Y7H+@=g4Oh%G{~*3yG_-hJ%s6JFY)OK*G>Rm`H;>;HBD#!| zXE%kQ4D9=MToNNd$7`QvABjn@Mo=15iD==4NV;)L4!SNFFfmu=g&ZQHh8UAAr8wrzIVnEw8Y zKVl|gVot<4m-`~~BJ-@Z*RvC75AV;8VVVjL|0cz=z8jn!_??`O~ns^SFP11*8MN*3k>td~uk zsqU6VQv~Q^gW;;doS=ZgjXC;}3>vR8Q;kKUxAMy*--1$bYSjO@m5vR)XgO4IIaE%^ z4s|ExiFIvhULVDPXKAt{@HZK+SCj}oqwWzOV<+R7)u@t$Q4K*?rW}uPtQC+H>)+&h z?S@p0zJsIk9}iv2sth{isp;<;q*%l>Kwa#eZ(B|tEl*qrV0LQ~R_?=4I#gIS4L-Ze z6Kxpew($tcSq%v2ih15vEv@?dT z6zNqn`IkT$^zFGapFc^X;A4NuVeyzE`bq+3C;9OcZpFNRBf!G6BGzMLq!b9K=O(^3 znnjzo@sh}o_#?vvaoU!LpzPtoyT#6tO@&*`0XCc;` zP<<0rF>eP8`S7iUAbczs6f?Y7*%hV4SMe#S5x=0gUc;XnnKk|n>mrJ-wBlM! zm{tS+@MEr&V?rW2Tiij%N<1OP_j1aY&5a#k3riRW*1zBqCWYpa$H-RL<|?_-2fJlsJw55Qg0k51k#tRw}8^d5q14~I;H^5tpe zpumVX02-o!*dQ{Sn8#pi2m-6P8C={bT=EURoR@olvSC+qqGodRc0~!NO$*1-B?VBF zFV8-<{0on0jO)1guCqYOQluUhDil+x#wIeu>odKa$X|elPft=OWOqJt>0JK@aHrNdvf^vd{tJ}_BJ9tf4tvwrFW!se0c*3x0avQ4vH&G zZE5jnoO`p}x$+URHb&;8+vVT`Y%))o3Ma0K%AW3r(_l(TrLr0jjqc;L)hvrO;_67z zTEeE+;|V@Gbd5M8WGp#!_h1EorFPxC0fM-fM32KGClzm2ac*f&58}~CnLpg2{Bq>) zkPUDGE9LhZ;>GKcJuvMdt*sKE6TKoSmg7y?{w!)|YLSfMf^FQzI^TzboU^ryb18!9 zlNWtaH;6Z^gcw;dzSAbwcKmjnLU~<`p|)A%EEpt$sB_xqWZLIR`cX{{?eZziVNotf8 z3~_fcfS^%+dE``Yliw2B|?|Tti5ps%^A@_uen}AiQI=1hWo z61iv6_wwp-xpGLp-n2zp7|nQjq8>wdi+$U3qWNINYM&^nQ4Fe65IKg9y=#4*C_dR) z)A~C;pN(29@L)sOt9D_XbnpqLj>3Q+&c6|@5n?bs|dNg zb;MczO|qg@1+;pmnu}PzN~L`pPpuA36I%m6eN8?BO@xP+iuORfSI!ccxKi*k*Z}k9 z`(#_=!g1@n*KWvcDx$qBParuC#yY+oMAZ<(!{_-D7BOXVW7pZ7@ot2_{$^%>Eo&Sz zgQy-=LCzb8c0`fb$XSn&R!!$m-^$M=bmkAh_du+4eh?|j9}%4aT~|8pN&%NgoHg%l zhR|2VQ<*vzL@@syBG=c>+N57J4Pk8;93{2EMtE9;oX-BW5A;YIX+>- zW2q0vMbf`Ae(4|tC|*)r>_@TwkyVko^c$fi9B?UONm;yA6e*KAIBg&wXF;ic27p zO@2lg8h}fIygy%}dQ|<~K;s(EC_oUNZ|oCJ#Vt)10jS$GWv85M{B;BH$c}Jo5Nfc1P zeh&wA);Aen=N{zaH1%s>r^k-YVO0nhs&W}96%$iU^Q@Ix*AKUkjTjks+*WU3i>_GM z3*D}i(*?9^AVs9jS1VB5h(e&dBKCyGS+`Q%KHWg%xsVSShBb1f0QOxS?` zoW$K@qjtJ!ptibcXy5zSs-EKO1x2YaMC=Iam|>pOQ*}~pKwbMpE&3nMo51-;&~+xN_5r4YEv}{MDHp#DbXHn0+sB9YW1j( zv5vxLgipg9jFK5;3AkZDJnSQfu0HqmCBWkN@czY=JsD}QJk1vaGIV`Z&lvt{ns(?4 zdMd=t3Z?B5Gqa~u_{@8)KDTIq;QyCFp_-1MiM;_zmn^;1QuVW!cdiq19#idXr!ocL zXycpwOd`mLk-imy=IXQdFeQzo?8_2t-Tt9%tb{NoMr)#Ljx1q4!Qzl>Me}Z}fKhaX zE{U!{Yyi>Zxx~f`sfQy?UddK6?b0MgH?=F$)@zf626Xwb!?`b_ae=Eq0j2;1cR&JO zIO$&*FH$$p=(6UQ(H&pbXG1Ka(&rC(OwfC^c6_qeojgGZ|G;FUA%ES|Q6!h}Hmm&7 z4s0I|ak#|>W8RKt^l`vVq^VmKj0M@G=A+oxCAb_DNEuu27gC8RrW!4$&!&$UW~LzumAHon5keo`q*DKujezY> z-taq^7D`6Qy${j-^)oI#GC$b7^>VYt@0vxtKWuIR{%tevHWdY*U*DiM2Sqzs|sG+&f(eLarm0 z=*GfIs@b5Q6e|3P&w51`#rtf2(PdrrR$5RIwLRZ}a))ET(yQj8qMxd#k2=%2Qg*Px ztM%GU2}Yq%?)U-QGi0mA!Q1;SdTYbz5u~!*gc3jZ62~3zhdG!Y%!si<8dx`n( z1XB;+JRvn|U>YAne19ZTo7Nl2xq6m@$cff=U$`1`2^IfA=;osf@bYxO&c~4f3ctAd zw2}A14+aqs+Un>Ce8sBmHRZvd_|xr-j~@7Wi;RF900#jzu2)?2J27RA*ihu*J83?C zv>!msp*2-%pSLLf*W^6RUn%s#?s9$o!yo?uhB(Iuq<7YHUpN@Kdm5?lMZtxBnz+)d z8|7<$lDgyPrhEI1i5Ckz;VaTNJEx!14R2cG4h<{}?Jfy@?hX9!TsZ0~cuR+4+$)B5 zP-$#b?oPLt(_Q~Qnk8kgm1w+7Zu_l~47>gN1txe$d`LImsaci=+$loN8A;rhbvu;X zDNuwUrdvIbn9Y|6%|g&nV}aOiK6P_3%Iz>5kDiKntf^vG$?ex4IgB?f)WP6V0c!Uf z_n;#X4kF=w?HGiGp^(Zv1=%Rrq8Ja&hM;nP2Y8C|L7thr!rS3Uuh0YF24R&gFN~$i z#2Yx>ZuhsRz2Rw?=n?WZpI~(01tF8_=IHwt?o)o^IKQr&-4A&4^fwYtzaOLgH8znNK24AGgh%ga{3wS}j4}Av zr;waTI^n#-3j_n^u&uZnv0x9(R1p^M${xbU7h;I|n54l&yIA+oO)qbWymv$szwz2m>?hurYXU)4f#PJzMb|0 z*XQ?mH`$#EktNnRc#86l86=*Zfo=nMl!FCeu=x=Ft|G&SteVVF$d@^bva$Lo9(r)`_u?$ScCvCt_x1bwiXI9*58+y;kQZ2Q~3%ch43ZL?cJ5f*bd?L64nV)PJ0Wb;y ztl|DcC(O&)q=Aa$)Q(R_8BGjwZ*u?*sJA6_Jqg%Qhstri*su=69*k-#xo#yfskiUQ z%jJ4HY+*9*r+|_+i6qa8Ifum%u+ioRE-F?v792EykV_z2@(0KdeL|X=tqG5LQY`>?u}-6lJ_?@KK~1408+#e1C{ zc(lmBYc_yPhW_av%y6KDhU!EZxfvC0RLR))!#AvmV%(9FMso^MfJ7+_fA*_Dx-zg@ zRl^9IM)fyYl%&PrYl*6d(a^+Kjx=L|6k|q|X_35~yQOo^B;3xKW)r=-lX%j&ar1!(yeRsW(PPxB9{#C!)+!nY`sEXn<=pMMw14Ra7kE-vqSMN^ zc{ilEpmhbgI0+ZDUbsrKGYY5=v)cgRN1mEcZQL>RB&s1#?)GT>3@7c!JFN9~_F=HTlbu24F&-MFqH*PwFOL=UUYS_I}Awhv@z zd)xdpd%Y}TQ-2sSAPquShz1QYcK3 zKErH}1e|+2^>((pe-OK+y}6CW-I0N7R2MamG`1Y;-4SB`MHbIY7986ky9Nw%z0`S4 z+{;+)^jS=gRM4H>g>hve2YwyT4=b{*Egdh%SWYBg4*vd_oyC7?ZeCbyl*)w}ZoCs~G7pp4%N0rdLL0o-399!&0HZHG614vd$z)hpb)3Uc6fl*siXe*#%=eRk< z6IRF!*urk!BOmwu5{szJ6V#Skw5MVVr#61ouG^6B$tw_e+bV_WP!@4U&88$VrCbkh z@E5#V=3NeZtlN!9%ugg#-gm8mC+Y>GuboA4A@DuUo?ghlB#H!0K2*+oHZI47d8;o@ zOk#cB&~A!dR!*5))G!O4k>VAlAy$v#H9)w*%b(JuFIy7*i~wcAcke+rPvyQ-2P`Vp zT-hG>eGM$XclY`&?g%71*CekVRFV=peNia%NTm`R#6F1WJ?th+_WZjL%`$dVFEsxG zL{Zd{LzRON=CHKez{hTOXdi4TgrPDSw3G^g!SATj5+t1o;h#Zk_wKj=0x$A79`&QD z{BWi>ZRm(Ohlt3481S&BnGR7IjsQ(prC?FtX!W@r7WxP9FpUW& z{&!Y@<5?<45}0p-op05Muq5xaNZ7+TT=C6rhYFsBtx1I&e>|jCSKOB8I1Q8DVCUbU zqb0^$(w3kTeS_};7Cwe6Y}}j7OWup8D6rhL9@f^eNnoD4x8-2`IMvTA(EPK@3_?(= zy@iq0t385!qZaPfI1@ns@-{IdX|f=8sdd6fQ4x4YAlL^u#O*s)7W@&pS~o(hX!JMO9~$Vwp#AJ+|^Q7^8VQw_3NZ2WO@Z|3DbE zw1-ryac{j%gm0hs_oY7nsDle4!XEX%n;#N{I?FSvPEC)K_8nGI#~@77r>$sj&bUl^bN?A){{J;5|0U1Mmi z+g*tK{0|Fm{PmTL9R~;q%J_eG&mB#i?CorwO#Z`q<+gIdVN3kSdbL+B7Ux_NPIMa2 zVcn>rnY6mzNR?8Y={$Bx5JDy)$DXl2B@F%8_x*SR=>x*FCs{pleA!ozke&gGxe+a# zr_)zBvSRo}cTqumOrdR)?JXimIkWFd{fs@F2oi+_Ut`# zN+Z>HqhhO{liSOFO!R4kd&(5*koY%a5>Dy*9)I7d3GZ(AY$cmYGXR_R{)wz6(Sl0s zKqx_t!@u-S^dKec*s0ui3&=f$fsas~tzoMV2zgJZ>f%awM(ltp6ELN$iu|$nH;i58 zBzm`B-k>$Y?4@s(kt#`#+1Eq`=wW2pmRPFD7dtI67hvn>_3I3)`T@e?ObZ}!sPShk zdacV4T7@lrBzoP{=~|J=f<$+~ytUOXV|}Z%CXty6HKs#LF&2YeT9>H#R*DT%?adub z`4_G~X1Eg#?7X6?-F_uC_@M)OtpIQs1O!AQGp*F#9Z}5h@hV#Iw@0%+2X|Ngt?Ws# zaGONZWp{20lMa6jL7!VQW?d2yjhIS9h{0{N=11MxL#j}=Mc-X7z+s`wRVOWv5me2#x5w(~$%u%K3mgiAGilfZe9% zZ1}0vj|``|!B#-DxV1}HZ+mMeW>=@j%fkaiC+>XzX*+Wg=jj$bCueSPGmdVjr~8}T z_vzpUjGG${?ru2BjgC&P2SqQ+=kutCbOEH>2bnmt>?fuf)?fbciV6!uqzec3+U0WZ z7ypg{)0Ka=CSa5T;OPgC(PhdA6uVDP_3%e!pNPY<=Z|LsWoIuS)#mV0bBDxy z1D0WOdIe-bQd+;0+*~wCX>0=Jy}Ex@QZq~0>gsv>y?+)Fo?8;~U+)KM6behw_npu) z=>vul6s3!&gu4JrkgU~I7!2{TuYFlV)^B~v8W*IQNfaY0ixwszJ}-;ccodP+=wn&x z+Ic=%Dq?9BA%JG0CDV>+xCP(p&)D!OVJkzhUv&_9{@iq2xHiz7sL^|1gM|P|Mg9kUT5mB zD&rf)E+$;Q8E_NYD_{QTF#n>(bDgc|qG-pB)24x7o@a$%6n`|o%(8K|lh`LZf@;-*T0?(QJD_m5AWN2G5z=-qCMDt`o&>>U#H}I2z zT6LcZKqh%Q0A5{ik%-pS{}qe=(>n18B@mR)@^K$AP9v-TVA8bhSwK!o{{|P2Nc-(B zi<#L9qx&j3>i0cZwGwa}h5q60$#D0<(J@`#-7wk6C>kvx>Owgv8i*IP-LhmQf%5R~ z*hvjz^b908tEg#g3YmQq*3BNV8Iiwk7UZ7PA0m|swmFvCc>!T$eX!M|J&_rHZaKU| zL}_}jBWzapc(@z>!Nv5m&;w>J&xYDPJd5Eqwf7l3Zn{KL?3xh?>ye+ag+zCvHX8oX zd}QjF#B3Nxu|s+-IQ|?Zdx_tB=y@*$OpYM|MI@QU%>@#LLz<$pm&I#K!{A%%jL2$p zt$=W^SM(OWey%Dh?5Z821QVe-ylD)crOWsf9!L+;8S#}_vL6);%J^Gtu2ua^5w=&i zg|T10Ed+J!WjXq(p?*sZRodLf;K5TJRrQ z-|k`VuFp;D4*<8!6&0vPg`jqC_ zNmuoz<1oyIq8h9KapTCNqK7pB=Sg3O_Jy$cNR9shKWNS7tdqA&7f~pRmK2(xphQIPHKIO*mw zzDs3yYnA)*HnsQF-(dlY-q%5|gDDn0;-L>elx4U*hv~(|{UXohRpfWh;7Bk&`F>i_ za*!Q*=IujjvS8y%BYG7B2Zqs>vy69t7X)Ew*zM}2={U~a$fx5_taxAdP9mQ-D>4X| zr6eS*5OP_D|Ih2xU^7JRE&ksaG-00BmExccDq70WzO%=KcV9#h!xk=H_B8z?JA*;W z=9ydv?YFWjSITl-dZ7kKfK#R04!#bFN|-8Qr3VyaW7%g!O(X-*l5er5DrP6%<5T#w zE`sw@7*bomaV_gw??fZ-24CZ!?zb3F0N?>(E+-!^RCxFZeEvwq9C#|p5j+*INAeHL z!mHM)ArN1apI|2|QDg~Deie7}P8pkXAPvuO_%BwLJz$i1`e?y1Ru1#?f3WP8OtLwo zR99bwfzD7Je2MvQ4jbN2*S(9?e4d46!6;7f<>gRA>AJC!$xWN^1Q~wJOtsI=m2HTs zgep*emlaqO;QL`Vcwgi7mfmk-*W|27z_<85LkPoG&h2xB(>QUdIwDvY7QmbeSgQx@ z@2Mv$JaL*z$m$fbp99O2C98&wy$Cdw8nB_wMvrhW^K0~lOo<0}OlxS$WXHSD&P__r zATe#tCBHLDbfjKABWGaBbE|aa0&4SK&FR3@C}rkxyyfpUXsE#eJs(80M0d110i1e! zC&9lm@p_T(IBS_4>zfZ6bYhv7BFvH^uGf%+Joe|;z_qJ_yhmtEn86t}V}+Bxu|m~~ z2X#gz>$||U>>5w^EdKILASA8Lu>gJ)ud%L}_FImHEhyyc5buPtiZBx)4=ty9T3F}c z+1ct{fc;gz`XWYBVt!AjXwl4B{b- zS7@WXC(3iSZQd0bs+wmHz0>>mq(Jn%Id468C%YxZnH}?0o04;%?+s?$v_mK$o$P@F zlRu6>c-i6MUGP6gG^YOa(8HOBGq%G!=)NCEY-F>s!3k#JV4t=S@046rWaFs*1=ckf zBWBkQwo5Hvf74RF5RDC*a6JW^V=DEWiKY=EI>{`IMKXmCz+H*bS)CT00&k89vlsGF zBn8={dUmL_l=#)Jtb|1bM8VVq4wodq2yJ)f1vl{km{4s+B2lH7G02E&P24G2JCp%X zpP@eaT6A5DZ>i3b8ik6xO?BApY)JPiZ$cyw+Kx$DM}i8Yu&5j)=f4T0+0YKB7w@q( zBn#Pe`bTA!UjQePFFffPHA!Axe5^bM>#<8?zW>UD>2O=o+|ScRwElOp<8WcW+HoCu zk796B0^5XYKEBQUG(kG}mmH`&mTV9~^S0T-_uPyKDHs7zt9oisHCb5y`BeM>^_k%(`ET`g;0C(Bh#T1Lo^BBHUKeq0wDX zECirbZl5hi-|iy0$HVFEKxKD$@%E?9#C>x=ZNz>qqL`LVLRIW3G_^EhMSqJRV?mU;V1!NW8T=m;E^q56WBrx;qYM!stB)!epej1o)!=w>FpYNVCDOZ5d`=0F;u?R?JM z_n%2nzAi3Ju(BX@o{uY4zhtI6v@%cWtCp9UU)Yb@X!(i05@`GI=Zj3p3r}>o0(A@h z*UW|c-Q_Hf@9-P-(Is06Lkl)L`3ibQLMDOdP%HCg+#nvrCgL|%4Ru-$t{oK$6mU)D zLmo#>dgjb}neC`@mm+C(G6n}i4xm@h&8ySpIdz-QA5;x{D&{yd32m`v=3p*PH^7=N;^(mMrbeK~2ZtX|(sO+4 z1{`shqZB6l$<1N7nX77kK5ialH7AKnyQ_ zz$c6uhB$u_nJMt=sOPv!nK_HMQpTFTfL6G_>w?HO*pRa@u98;cRKDsuE~pwn5Yd&c zD(?LcoUxRs1pBIz&{RRGpxH}=KSV=ne4B^=(89HR)`KCtIZARFjKvU-gD>(*=n2*z z2jJ#7{2Vs2-OfO&pE3w;<_-TQoh`;7+aR}}nU50q z8PHr6@ug#08;<0)mR{J7aPRvaZO%pozADg6bx%Xk#gagJAnBy8dG*eyG?$No;1Q%En{idviEz<`1UyNEy41Bt`qWLlG&v$e2T{QB z{+(M#FZN=b(;2a=bP%RM2)#xFxgqPagtq4PwP^GY6n`>Im~xgt5`gs|j1*bp9XAKo zbvTKHRxqlcm`Bxkl{WO{T;_x8qMGGeYoOCQydO*~Bp_}YLiUx7Q8rKmcQinYLXhrm z?%+0`5cIf*-{x6Nb=l2PPlAGS7oz%YR6G#s8cCh=TaR2|z`u?CURYfX!_7Re9EM71I!R8Yxv5%bE+O z1I>6HA!q{nLSVDI(2rZzS==A&$o1WNz*YH#IOOxul3D zHyQk10DM9h2H?{p*_I0)Tx?MD-BUD4Ucv`avs#{LPJ92st%Ts)S8r)#ea<CKKZQaTkJ)rfyYu+XNtH}olLTE3F*s!E&8roAj=XI+g8i!tB%(8?i6sSgs6 zFefY42s6Ocfd_HP8AOiJ=(TlNuB6$=`D9Zpbs6o7iG2Zz`iIzpFJUM8ieViYBUJLZ ziZKy6pX1rn4ak?$_)7A_k61iRQexmYp6Pir)ufvYHxTit{{+X)(9H36d&lp^8QAmc zb2#U+gs)37C5$z^LO>-d#*=5MZ|uOprARfL9_2%QK&0o-6LiBR;La7zYf3<|d@M7* zj9UTmqGE_qSfKh+ygA-W&#vY%&?Hlhif}|*kE)_(K#~c!6&1mF;5lRD{)eU4s8g3- zzC&Dqz_~CMs7WnNQZWvrK7gcTuzNCB7r%yK8Wo(zu=45+gGfRAi9^mQZM3j7k3qdQb?GSX|58K;IuIIjJI$$%9Veu!IdI zgp7SUWAB{cdS|J!ciyE@On@9#oWkztNC$Fg04rQiiS($C3aF`)P)#*aiV|dfs{#)j zhW0vypn;5*JK!A)8C$9M!zHt1CFI0`T6vaDvm`2kZ-T`s_^EoC{}F2O5g+JUC=;De zdjhBHqZqw_tA1QyTbIWyCnBkz0CvG>a@1V7`4?1#;y{sqsIc+9TesWr3S9Qv#$vDu z%;p31yCRa7q3c}X@Z5@VLJmhQQGjdP8Z{roH5Ga%q!I%dpRY374Uc>~#ppgMJ^GA# z{*7HnyYC_w#7FlZ){`b9?xr`i;=tg>EWTr=_c5JpE2ULFzG9AUXW-o6qz~6hkqoV% z2zR=j&e|JvHi~ZMuj!=EXqtsaJG%>8o6kz4ye$&Be2%B%Z2|e>{k-Pb+_tvjwVQr6 z3Uel!leSW)_uau0UJvwoH*QNHW;r2=KleLhOgD?L6k>+bUvgy69dLSgj-wnj?~?bq z64OHjC@r0aeI>BBAYiAtR}3cVb3!=kg2rk!LvpVw%`dBFEB{ummNC=vNv)nU%i+|j zJhTnr1Ux~aJHN*KoLgfdZp=L27`{wHd5@xaW3q2buT*dRy!qekfD~Ss2OYSp0a|$T zS8hyoNCP>YkX9`wUDws7{yJl~h&#f$3Q00gK70s&8cNw*>iP&n-_O+3+9w(!Ke22Gn^ZFdM-NYnTtB|4%tE1HJ1L_wb)@1#+-oX%H>}Y{X?+NZfyS)lh1f9lCu| zE*}=6!#7;C32Bz(&cFuG(xdxA_0z{tpE6tTx-C!Z z7h9HBMs&${5$92!T`Pu|;ta-W2tzfBYX5yb=9J7kZYUGRw}BRR?J(NR;k>w8Tz@_AgsEq91> z-S3u5SGYRlNHUI4AnT%S;Bd!cS~%G&Th8#>pSGFsVI8LRt~LI6O>=>Fwc8UJetVL0 zyr?Q`hSokblJYB8eT}1f%X;=hU_BVWU35@dSf?$v#hV%aV;Kyr)9d9Z@RVOuwn}bo zuUTFkjcW2nojhEOlDK(>{yVd1GqdX#ODg%#i5W?R6lFV|QDt?UM zE0v~8djP+=wRcpaE zixkJgEsAa93yKs`uEzDO$}zlghA2!vX7ERi>5~j;b_Tbze5Na56SxwQY7%^?I~_AQ zFQ~880jWL5m%i&NdG&cXjQ1mDASf9q*=vm1mi&qc3%;WSm!F<=! zp``N(DVpk_34wV7laB^-isY)(fs-F{dw3~p8%i_WTm+o5b3v?#J#Sc{8rE9mQXff& z8j~KZaOZY%66G-jU#aI>5pUTBG`WhETW)zv+r-VU=;*h7^P|4phtIGcUW&i3S8qko zd8g)F2tthWxiYs#hVy#XWup^Y$C@zyh+ge6E=<~2gW{w|^fSl#2mPkoqLq-x*abYg zded`a>Si&Y62W`V)5taw9uB?wV*X#a$AzS&!-ORvv%R@*b`2So28;ro{e_ISJ+kU4 z^EB|$S;8FkHu(Tk)MSKC1g=hkj0eLG__eGMXduQg4e1p){_hMzkS?=-InIh43;A?) z1Ry|V_t19k<(3jP8DVwyb<15%HrI>UIA7CZ{}fL%hu=-v(78TK4ul9`(TfIC)H3eP z>+a=BS`R;%JT0e7Fy~}KqiEhEg`|lcYgmh0MT;z5Y$avTybtM*&rld;A$g!uK%Aj72N=!_v5ENkjvCB|sPN6!7RI?VBgS(cz+8iF#dVcrwcS5KDz|$wykl|rotKRd zHavi=QveiF*`xk49N3eF4=>w0R#T1MMMU~Kyuc@D!w=-YH`DyuXIP2;CGv7e|$F#;9x|~yF01(jhzgi6cR~Z9)dlOqT3tJOC6I)jc zM?2ep1&b5@B0MmriWw?3k1|b1q4L#e=P9-U*G?v6g6#Llk`ibO57+NnGpVwpd|Yh}N7Zt-q)VseQK2Np5qvFDXtvc9}xX^&m7fap`3B|NLXP}d7yR7iHLe9 zaO>(Y&om5z?a?81K-J+ZF@cL}0!HuciY5Zil^K*$Y~+-EZkq5w8O#c-)5=*xLbh0WwJAaYQS5U=!}#&2e}W_ovYbuHIDJk{uvx0;KQ z1#^h(?C2)6>M&A)?9cb!p)e;b>#Zt<>Nb=FoxLgNraQ|)m(!Xw z0-h{ug@ZlZY|HO$Q65`=ynb@zBv-Pso}E%kZ`_&>O+@{!hE`?FkR17ax4!mjW<2k3 zccltP>Sxm~E%2q1LoowvFGQlY=|F`B9>p(`4oZP9K1_PWE!eU~Hxwg@pLNYhAwc4)`ebP)NK zzQxggXbbTVe|RXEvp5}Uns^PULi0QhFs>TkP#kNTm>UX2?bAN#>s#~&EB${($+XK|K<29&(hnXishGar!6 zMy&+Ge(aQ>p9&&OFvD|m+V{0}8tdMNmV!%Jb^`D=2vYq-%MZG%x?qmIO4X+9r)Gfg zMw~CW=0IYZUOUN~Yu*Q=AM6fNOes}47YBa7a2MvT5Cd4$sps{FE;Oq{I)3Q6*EnD_)xyRM#r1>_7Ts7?tz}Bi@jv-gn$yE zUNh3Z=i#;(8^{!GYlAoHwO18!#rByhyE74DP&yG{(q@CRJGr@(^AzE^<@Na#H*vZ( zx5c6L7=f`fAD4ulxEH;-*(tZ1&p_!Hmhb!)`+E8}V(qkm7?}m~{5b&FhuJ8#B&906 zSa)Fo3(AuO4tj?MLT}27>*ScxXq*DLVv;ru+nR&Z-7qIoB{;Upc02}KwQ~iR8c-CE z?;%o10lYbYVYKfqb!j5qMX+B-&iRQ^=`b%?1z-qBX5{`53Ip?NJ!w zLV=l8t)79YvT<+ij1WAZAiM5iOJBE!LOhvCdQ=6y&T~~;AaoT>h295;lF6HMZUeB8 z{1wuAJQXR8RWSnIk3RgBB}vze0$V2f(1J&Q)ImYDOC7SL z;qxXhjXHd|4C97)i$HH)6e&rc2b~r&pD#%&*n-C}>(ZgQtJKPDt0#omfI!{K5k+b^ zRgwPEq|4nA^?k8_4bY#mEtt~d9#mhwTT)~&@LMZJJ`&i&RT5)x`Bgfn`_>mh0d0uH z{T{+51wzFs95gHgXGJttwb9qP-Gw0++x`iolqQ%Q*GwM;vN|iRF!+kL`Mh%xRZe4* z!VDEh5GMj;L(nL!-n?ZnQFTH(?2Z6L$ds4iy2`EbhH!EpP<$!Uz!o=~iZVXM7jp2Vil;U2Lo1nth+r*R+@ouGir5|_|Cg|L>UWFgmhAlz6O z&%`-K70y81ed+HiFeZWB&PH28Ew9eqMWsVp=!-K{G#k1+{J!=V8IPWyR#~A)UJ%T5 zwdOShvB&}j#y6}@zg;W6fSj7MzRqOH>Wju0qPaaqWCD(dkbs-5uONS#2xk3~GzAan zX5JO%PrBjb>fiZLVQo-gSI+bIEPD7eL+qM0Fh)B1t*mq&FaY0we}aw67qFWw(B4&g zs%VgvoQJ14y+eiJevcZ&;GqKg7z{?TNN#_ z!Yt*OR=F6^793^F-bK}rd+Fma_En;sCs4*Wg2`~D;vg5_Rpb8SYco8({S3Rx`@-yzA2bt&v|7L=wOWDRTXk+^A&fIgL*R z`bkMjBjD_!dvyB*YV*XYV?>7rM@R^*OXFL*)e-@=zLT#iXLR~-$%-KsyD^PzUQ|(^ zR6VWhi?VigHj=mKx7@yPZnLfwko1Q!Hg7VJPg91Yv}3NZI~qPF?dUfHp^vr5S%PZ*UjYzmPd2pdbj1%wqWYd9KdW8q<1pYyf;`)wrcieG6HtXd*NmN zn>2u2Uyln|^Ap`N0LQ5Y}t>$*9>UA^2^RKbpCnRX%cca6w*^ERY2>N0^44W*dKh ztAp(7wJYnJ`BC5Z#czR`UXfN;=wCqGM@QoNfi1nLN3V##xXeD%RSqE6`_meKatjXG8V;t^jL=E#*68UokNCA>g4doVgC~0862Ro zd!l^ath53`Ce!3b+1ayz$X6M0iYBu7?E&?jBY*%}q1~#Of(T-(E)P`qs=G_wzOH%b z5QmK*0~8QJtohiAj>D8cI8_q*zNIKP`|g0^io+PpY{JS27vv=ybqDr?MEl&hD^;4Z zHg^)?sO6}4E33z+;3ZWK|EHR?bimg11_`FjtUT)=q`$j8&%1B&%`#F_O$65t2WVV( z7s{-&rK6N1fR--CM?Kmaz-%%G@uz_VlPA!lz6^%UEa|Oor!L75E;Pevr8jo)O3oBYz%hZf#2Tr7w(g0%iPCuAN*ft zq^S|2ymbH_{jc9=9{qh(+S@IU0X0O3hj(u7JAMxaE4$4GTxZ)-^*YfOxTU05GZqfd0&6Q&|k=4%}19%NpXI9ZOHk@h%n!xzbfN-Jkbk-ns^eZ}qAn zWA}AU-)k2A@WGc*O240-3VyZ%7hC6QxoDuM>U~3~y^r#W^S!QGn|CWvL<+JrEQ&7Q zuF1#_N%!v_-jI~kbuF9oiPO_S{MQ~dVxn%7S=&bLr%uaM7+jhv7R~P5<#Oxl6K{k$ zjFy{k<=#KiG+R^~G38@wc^-$Y(0)GD$)9lA(xY={Fr(gi{)@14XcGj;nswQ>ZQHhO z+v>7y+qUhhF59+kn_ti3F6M6LKjf2{Cr-p0O@mWsKSm;Ns-O)TOW8LC~t8MTsm? zX)qF&nt6;b?p6q_p#sI!^dTcy^MS&I_{YB!E0U(9CYU8VjF<4IT&Gf%o1Ib06>Q%3 zP7+Rj*w*w=i{LS@N;8+Ck2lApn0V0FK$9OSLKdk<^A=Au(XEgYNJMC*?obG>C7ES( zH@X#Hp*zir30=dm70}&BMtHF;c+mZn(r1qjL$;Nb%G_Cm z9g}F3pO59=OOd0LbP8Sa9`3hb5fUM}@qd$4n!`Oo-0NZ~Q$mvc!(ZwLBF=z|_+=^f z^m|-8Wf+z~S^$cv5`lgMC|&UTuBFXFb6LqMCyV*YHyt9=c80v~$;EoUUWQqn;HSor zLedlLjhiSH2qCE%Mn>@gH||8mhV+}eyZTWXa4EFXJCe;1EL$)C?+qUOqz-gI;Bk!< zSaX+5VWR|9hge}tpJCkKUVvzh(0fiO$kS>q2hpEb{mEdsd|Yj_H%nV>Yx}4v&8_ZO zQ(W$#x?E9=I4sH%#;B{r3_ zMo}Q|tdX(jaPbq{379j{c9e~?YdCV0zU^Pp5Q-GG-F3^sObEFF&D{xd?7pU|7=s$) zO^&=nf>N^AgcIq@qrmY*07;z-4W_vmq^s0j5RE??O_zB=<0w)DtFk)uVuxy4fil|5 z`FtQgRH51QW@L@QrWIC`_MyQHy~>fQyM zKyS+C^?x^uzoHU;T(iZ(gdSa$gyn1{OSJj0^N#2JgLLmY*3rFD7H z)8{Lm_MgL^%p??=IF@P@7C3s zL3=!!{yH&pWqjRMgbXxR^|9A3hUHuC8GNBTE5T>IKJr3;3|XyHmZINYERj61W?C7SP4`W|7?j@o*ln#}~jtjO3nkW03+ z%oT135bU~`VE4)7nd@c>Y5k(j>FBgZcTWu4)-;dy{^am zhl)Anb`BY(fC&|HbSUPeiLE*J(B{FJ6?5Nf%eHeavGa-4huQal#p?%b${W!aj|d;ivOqV#DD8YBWK^85dUKw^}q^s0Xxty$jxty4L8*#8p(ot*x2v#;*%Y=a5}(l_R0 zolY)#Za_=Ypnb+}gE~7qA5EF5+n}RkvvuWujCy343ZdDMl5}mOV<$AO;&q`&61i5d z-DNj%Ohapiiqb4(4^y|IlWs;ZMP!rooK_=T1x&iPn1^#7HHNGI!9c^52dAv>gGItD5Q zS|Mx5`Pt#VmkR|znD9{xZ-Hr?&h6Obh-o`c&GEGFz7?|}9Y#}t5J)(M3>;O&S~95n ziwtX0gvm9--Ec@Sr^t&50tPR@2C)E!*RV|n$Ns`l%V^Zmmk`{9>n1fva0fyo4ObXP z3Lj-M%cgU{5EM~8wMOPHASsaxBKp+_XfW*7VnFh14#`X$e;}V9&L9y}t&prunqI0P z+^`KsDV5l-k7m9comm$Okl?I2aT8NLD+gf>)qhcN<@Xs;Br@qus8?QaLp%)T^I7VXh2T%=o#Q+FFgxI`opE4t% zfxXluqe446oF_)_UX&3V$2 zbDDqwc?5GqP%p6mh?tn2{1jBSx_PIls4Z#o5nkO1pW=nSwC$G6?PuAUO`nF~Y8+#2 zUm*3Akzf9hxs@`KhTrQsvTTR0Cyp6!IDq`<1GVRG<{!xW;a<4bt-R8NR)I`hsb| zWaQ~1`d;q$yqoeiNZ%c>kT#G+Mkr6R_A|{7?#x2G`{%OL!v_b;pt;`i!9?YEBlI-h zQ(-O5{v&BX4#mB&?n_a64q$5i%kstenY@wuv}{ju7Iv9FTCdYCWG%SdP+M}c4JSYz z^iYFn)j}GvXkuN8Zp;|u3@afTm^*l{`qT3m;RS&Ydqea9hBn?AX1v1k8LGU>kY$}Y z{eEB4RE&rZkVlRc_TXiq{*idQ;%>dE$0(snI%Pwlq@l^jE>sw-shascp4$m{9IJ4+ty+0Hgtd{$s{s`TALp zSo>}eBM~{u-SlsvKoRlwzg-!-I$Ju11fK5SCsQvv@;;Bd@+Y@;JF%Tk1WSC`Y-Mw0 zRwH!;cc>%w;Q|XG9R%SgHowjc#n*!XnqvSOgBHQSw&%F1d@kb;^8CO>x(hJ1Wt3ju zFcW&eXcKy`$}gRT)lfpX&UzV!Qdd6<^SW^t(I>vRSnxdb4%mV2wxZ;yOkdsMef8c9 zTGp~OKsMGL>08s^msyvRP7V0vZi|z776wbfe>-yI?Q3W2JooL%le*BpwvYVyWp2sr zFT-68@IG7Zj~=`|kLBqDkboW#$+ZlJk?YGaYubap8yze;Uk!(D!c;i7?6v8;|r=zIdj~1T4Q5He) z$6N^-4F7f%CjRXGmAHNX!4QI8A|bm|FjWZ2HQvx9mg$x`K8ICNyUhBSRzHT37cPhK zfsi9$4Ll>p4X=&Iwxe3pViKc}Wr>THH~+boXKzcgR!NGjnjZH-kP`DL=t5cuL#bS? zA*GxWPV*{-&g`iimN*0W^@+Sm5*#&xlR88kLt9OYci<<)04*eWOpi_RW^fzw^AoA- zpAl#P3@caR8IzUu%oa$np)w8ukJ6y2&kqHN#@o-ZFJ3#gF+4_szA_Z(`CC>c7aaO->no`%H>j60JdKkPq%o~{d(QDzZ2j1#sYW57xYVBLbh!o|25pfzW) zZx2RmdTZ>tI$U3Zhy$XFfT&OY9{Fk>^-WzOM`R13>!Fu?f-+u(J3YLbx+?etAc?AA z*L3C?3QClflB|$N9#34lgk3nhmj(HJpt2}#r|5wQ#`Ko|at4HgJtpDy{vw5$T>~hp zYGnP_eS(F~X4@R;2-z_!6+nN2Wuz2#FRk(;?5#cs(FPw^9A~spYx1-y>KtV(5NOyK z-(y*b!~z04JVF7(87L)s8gi?mT)DuLZY=`=b=$t)MQj=@h(V=rP+WLl7^fcoaq{ps zBPyD@p~@fwSikKP9%`-^M9RGR#{+BnAdl1KA+qytn1V-)efcqK3CD;+!kR>%L-P@v zbwZ(67%VEqkTR13h2n~VPDDcPzWl!8#W?#~xu6Z_(l=(SjtzH#3_$ArGE*z%y20CP z5WwWF;jJ?;kj~deNAO@Tq1YkPLN{LKmX*(l&ISaE=9SxO9Aw=bF{Y@Rm?8aC%;f=ZOIJH}92uM+kO_EO1{Cya>zWsuQ@b z`Zw_n>_z@Oq+GSWJg2FkfWV{%QTOw z01LuGt?h>PGmNx|K9-%BW;84%f;=rqo8)$Tv8y4Zd{P$qjtp*!sO9@t z;FdzM=tHjfgP$y6nP8}%{H?WVjxbpa?_N}yU!h!-V%L3Lw^%U?LwLrImYc#Roe(Ye zI-?r4Sv5z;C|Mj;>UR#njB#51m5Vu&%NODoVlZrfkUh^-$RSF`Bn8lz z#tEMXXRMd==XjsBW~^nV6#6oZx`*3_BetiUw7>fkhRJQ8Rl$IfWBmsp?C{imSd9Pf*R9ECxmNkpr2EpQ|k=KCETd4PMV9!b81R; z5JU18tTJ)LS+5t)3#Q;w$Fq9k_ipX%g(vc^S}b8>>O#nY^uW&3x*OUDGfc%dEE5*E zni;_=>bVUbR7mjCU$WcsT?f|&3@k49_Iy4M_<{@>GY4tFW~IVy9q1RcU>y5ta||DZXPZZ2w{p7Cy{6 zLGVfZb!qe>7>RvQ3qAQ5E5v|pEMFxl)3jxo#Yuj!P2KivP3T93atqggjNrDwCx@tM zW9fd4)u}6F0-^|Nn0>jhbWhD+`qH8x+E_z7IfaZsQ&sJ*gG@qnW~?PVbBD=RQve%6 z_ZXK|Eo)93G7}40)#44bdjH)=FcL{0_o9VS=t6q68LsB0zvH zs3lRKA`t}59}yy8oo~}CRH>{I%3Gr4U|`g^--LCbQeu&1;gpw{3tsg8jY*@<ev*K~a9>yVlbZ=v=wDL2MW6N)t-Zi|-%oZ5UKpPV3N+sD7trLp#(jI|=H* zcWqprHjo!qqXY$=XfTvOm$|^e7AWME+n^?yP~8ocN>F$VV8c6v4$Z?$cFNyN;~kmX zvUJZ!VAR-kL$uiaCPNlD6qQ8o;Z9JyZ&IMPe@CyUdv`xc)S!$fP?tpDn#JW7v5_s) zwPc=Sa_tm7o=I+MoYbDq`0bn(?g{*6AIS#hc;NmVLc3K#5Qs59V|@BJzwBq>LpP9o zEicQ`0aV78@RDPB*upq06EF8?rlh?{HP>h|5oehyt1*0t4)hg|T|VK43_a;QE~)M3 zYCG(GGb?WO7u}n8WKeuf#2s9q5}Ta^&Ctz|!5hvk6`J2LA?KYe2JqAF1LFC;cSq4iODndJ;iva5 zHR)GE--Av4mo?Y1kAzx$%=#gj{H$&CRo*%^psf+1yoCsVqLkzQzBE@X8qUH{Rh@+K z(Sm9IzKsnsb$w5WZr@g_RKE=WKDkZ20vuI(bf8zWN%tC#o56jVMo#(%|CJm|RCnc4ZGA^MzeI>0Vx5bzN!`1mQUS$S z1(vTgg{D?!%c8`9e(m_l{+8T=+a1Pow`>1|NllNndyg1Rt&$@~8?wUIQ8l@eQUP=A zk*SZranXFui+Z{St`8gP_7yS-j?YjL{7Zn)$Aq0XyYuKfW$LT$lVBu+o+@df4^=J3;sv4L8nJ+`SyT1fvdERwmT0Qe3#Ctpc|{yg0B~ z(rtRvP^XfD7Bik$7m-TLhw9YTRYEPMCq6HCwu5*o4WHP5ixl_Mw4n$;a1Uidhg_J)FHrFIiL1wq%K86`WGS3h^x} zj-AvKAr_l%ja^=4Ssg`#6(mpsKBmG6gHTt0_I8d09>VX&c&pHh!wNzxEx57yUH@1+ zY5w~_Xa~y=)q`0Czr*__($2>Y+(3vJgSy>{Wn*^I^TQeh81`klIB%2Gx`RnueUXMB z*7Q+>nSGe;dz%otwR}k2t#e&~sod6*@?}Y2gIZa3p|Z(0cb!<3@57VB1g$wlMidT1 z?(A)jX@X(!g=OrAsUJUo0oo+%X~|Slx|VZ}h8z$Zd$CUd9Snu;4TBmJ_dLj4JU?4i zIK;3<6rkk_F6j={^0Vzo!I-8f1;&P`a<+IRU(Xj|_@ z8IsZ}yh>o}V8*}~#?C?%2p*Ychh&qc2+*~Oj$fJV(oithGu>zA_6K4Jh!Sa?w+iii z5frIsfK7W|9^Ep|xsc^GtW$B~ZLe2< zw*t5`>hAN67vf@3ZH5}8jcCpAM)tluc;Vd$OxzgIjZFiU5@_y7Q= zt^fdZ|HGK(WNPfy=#^BW9r3{Kq)R#iz*ZenN*UmR zTK>OAaHe~CsiDi|I7_7I1QSJ=BS4~Hz|WEk(0Ckxx~(DLsMbW2l@t}~9beihM+?}| z1VJUM zKIIjk_%I5s&@G8ewm7+$kJk6k>Z1$-mQ+VUQxj0_8xTkxb42u1;~P5uAkqzbB=<)3 zfr>%Bf;pR9~;gDB8>bdfVg-wN`w0S-Ir|5EfhcEfi@KGI%zXBg0~a{$>TUJgO4n ziC5~F!d1uP;|2tKMZ4$c7-yk@fzG8YT*9LGl*kO%2*qVWx~}dF7~OGdRj@NaXW!^S zy!F(NI<%q~Gt~cD9yK1>OYTz${qSL)oNVNM=>qh=gHcw!lRR=MA4O67si@FTtQ!DA zBrol$deTh4Ys&SLqjbbLcuxAY#9lkH;nPKY~@9Z5#0(r#5!rioO}`vvhe)1?fdu(CUy2h05_l|nP11OcF?R51=;DQ1gg!C9z0nLHp?j!tO^3uQ-2r;L|20Enf@cp}Q|!;|QM zoH^FV?)P^?PDk|LG{`;oi|4nIKTCY?<^=79&H8##IalEGH9t$C&F zq6fX2Cn4bHMs9WkT~Nv22&u%>dj#nNe=k!3{1{Jt*i86ig$h1mV3Q1TNE@lZU~sS? zF|?T*brKo}c0#RC$~F{PKrc53Cjb|9_;b$upyHlEQw58e=M0j70P(1$;)6m{O(IPh z1&$y>9aBZ36EoJV&6-=mju`RF2CT_|9sqUIS{P++NxxxF>7~q!=~=hw(NuMHseDws z!w@jm`~Qg;iJ+x`CP-R3#pZO=B&afLH_nPBCZzLU&?SWq=hN%U%d=X9mID?+KIZ6c zmZyHCD&+u-Aj6c)4b%q2=2Bkwh5QYhIq=F45u)?$4TXfJ`$xzz(W_?;BMO;N=rM`B zMM;i^Dv!IV;~-4ka{@7*%mD3oZfkH_KSJ4OQc0D`_^$00Rvywj{u1x=Ee=^Gk6 zGjDj}G$~^?2Is5MXFmcWD;-QMwM83hqzdR(Hx2$59v+B?T8NgBisZA}fx1!`ONgI1 zp_zeJl zZuTz%ej;gkoEoOV&so+d`?SvD{Gl&klX--a@p4cHDDUL$l3_F>8G-_WHxTQJ4@NiA z0aT4O2D6Dv@I8~KrG=>2bibC7v4K4rim0&-Kuu_#9i83mAUl5Th+nSG*C^-H-dWb6 zeJ_^Afja7t8A1)O2xU7+vbJ&FPHr#v=i5FTj=oMWe{TlEFdqps zM2kpvHAQNz0#*Pot2vjulaSn-eZh)_&9((<;Boa(I$RNt9dEXGaF5JfDmPy0mlZ&O zn7b<_1oi_}IfZAs(Gnm%Um+BMfRN6a59+@Xi; zho>?7wWyz)-g-guSYW!R6+u1PEvF7^t4m3z{f9I!Q$f1aFKzGLV0p!JvlwmLRlH$? zJ*6KPJc9&0#%lb+yLp5cWfva3-j=WrWK_=8##^McH^-2}kgM$KZR&?r@a^61?mp3o zK*61uV#p}^VnDzotm5`@=M<6X1Y%(nfZyIZg`VKe1{E2Djxd8-8EA<}SXCmYI)zGo zmq3Ap5G4dS^s3bh2xv-^Btge3<_;6TlDNU;gm>*+h{A1~uX8sorGJiU;$I!a=_C63iK}t> zV_FV%HMw_2Htvh6=i6^*uuyj=HfDf3v90%&Goanf?YaHBnBG8g7ExWz>T6tQHgz$) zk(|cXVwq1dWEKp_P79fjM{SJ?;eWpsOVnuBqeD6jq-jJ* zTP@IhfUgmCXTpxqR1w>6&Yb;|724C6_*|=A+3m{j`S#y!CUXEO>Muq%X)dFdO`lyW3pF^Vyh_jT!sClpw z=4-$W>+{7hn9G~s0Y~*GVg5x)D=kkf#3ubu1vr-9;z|t8;Y@XitmI`H3 z$xyIh6q~bhFE$%)@m4D>w;igBuqvjKhiO9Vu~eh3fz}$;k8YH4TVQI%z9KZTN{{c8 zxJ84m`08LYI^{c;ltE`z_L93rgtG|*t}}AMji{tz6$+$*gcnZ#`#QWidKz&<91F#D zqaTAs!uTcD~RKLV}S=kJYtktlMdQ&eG~l36^g!{ z^=3j|PcfT3-lhD?!>lux4*T#tW=8E>b!8*Q9ck*{XtaX(L^OiwSn4_DHQ? zX^gV!*gE_kFHL#HZM+$FGTn^#Gt*IxpKaP6D8P2q%4jn{OTRT=6W%&*LJ! zTu6=fb*ziLxl+x}pPEgcnu@qOI(qvV^3yhsw6C;P^wraCA|I7(bLA%9bCp5Nr7^=a zzBRJtg*^HVCkyk%4@fuh9fN^2wse)R^o044Oa6XTN#Kxpq>T217HB*Dn1p&i+ap zBj~1ZVl2@U1)}3<9JycZ>OC$y{#|&G^m@G{Y99t(p_*V zcHLRcvgz+rzadpFk;yuTNIne1kk;S92p!HXMgjlOrC zY~Td;^d?ZLxa_gJh1#751)Sb`Rr(DG>Fm!~ z3~1J>4Fd0=hM6-+4FU&`&+i>J;{F8=zonZfgMb%RY6x5-rrVFn1V&!PW{=I!hd?9P zBN;FxTzr>cHsJ*I##xfn_Od)R)hRRO@q@VC(u?h^=W+bhMW?@>q3$i&AKKOC>&WOCA0|M%P1fMJ3iS`U&kW3$#k8qjseZ$h`l2)v2M=uWU0 zpqJk6G^Xzom`8Ch3F_cy?UO3{=h_K+k7vh{$0G}NPcz0UwxI0Jz+tI^l~cAL+TsM6 zmm?iq%@^m$kkr8{+MvVB5Gwa*ub0!a~Ay5KLAC@wvI6gfnz z(g~VXGoUaCW?8Dp5T5T&wjnxE)L|1Az{1=oIQYRHFhTHcChKO7!M)n}0Rwp0^hafCuISyGW(sW# zH5w%SpQqoLV-}mFTcZ>hxVFQFOh7f+O48M_)Fi-If2-hO|{2rvi_<;0@ z3!7`ME+}YU`ZWL*5{<%)-7cV?a~7eH3;QzRY7VLug?MnGylA~s?J*605RVBMJQeI7 zA-LX3ia;oh%hNsHgGpS*6t2#2IVQGBylo^KO|z(t#Nr6JDh5wm7UT739t^`BS8k3K zEH{J(tMidW{El;8$lh*wL@}5%?+9sHTq(ZqCq|_#o*)-f-C89D%{Rd?h>K{a=N#`0 z-C}rN#-h{rkocZjjlOUiGF>7Ctkpw6yYJybtI(Y-UIu}dT@VOI8CeEx{|3WCg*vR2 zj{$)MbVP43cfSwbR*NbfK#ovj<8;wSt72v|io1)1;+QA@8-O}%!Qkb)FY4Hmx-r`R zemy386Gf{c3H<;ZhG*z)8*|>2ALar!0b&!!21T)%gxam<=5EoYurFn<&-(qsw-|7< zyzCtYRswTrFiuxJcQ7I5^L^UGvz;Ta953w4uHP z1YaIfBu>LIjj(nDxIJHP3wU<8JVLVQ0MCVZ{$4s|&uGRRcF+J@ioa$rX*jstu)d+H z3OCfUS}n_((kW5Ii+Pw?Cc7@n&cLUyXzzpJRlClx5&FDCbZBFuDoIN;vU=e?W`C!P zLXtCi5GPS>!E?U*lu|^z?72Qjk`Gw3!aG{w&I2eQlBQjqSQ^spYSG^EiAtKi)NrfG zPcDgv`~$nEfW3{u*LQ1P`xvLm=8Ue>Rw|7vSXcN--jvH<2>fRb)iLdu<>)`=FHfuLh04Jke=!}0W*;qq;AEtGLrBI?DmYn@$S&L zGF$O0{oF~~k!|Deic77L%wu!dFob%XUf;SZAM*O$8E4PSlud*Ky6 zU_KQSxK8Qx!qjwF!{R}Z2F8~BB?)>Nxzj9a2je<7F6>1);%bm&hDb#^83I8({=afy zVmXMMD-EAwH^oIv&0J=7LA+UD1`vz3{_N#`NDfk}56E9Jv10y(we*jE@$eM)?}y|21dd{6n@229oRYN;*-sVB%0$sPAy27h za!iUzBz5#?tHEeJ&|M`H-&_PN%*VY#4bfIIg{f^9kja*?&Z@FGV7=m~-H26j{qOxM z`?%is3wS#edF-f8Am_f_GuzL?%r}MK=Ms*M1%LTF^4jMnIRzLz)!GxBqd8SdvL_bM zj`UUO5eaM~MQkJQl39m`ArbqEOTpnF{sz;zJ(D zJ~IDvtQ+;?uRCr0vn6t#=+a#(5inh#m{Fk%w6^w>S3ExI>_#zzK-Z+0+!=5WPG0W8 zqt#;1y@N#4VM&}j^Cxysxa(D#z`siK^*g-|G5E;(Ej09 zSWD|BI9J^07ET0|*iNI6t~$sY9@Q_L!c#hi3sUh_MIJzO?t;M-f2_;z!GKD*X&ucx ztQ&b&xVQ_GHz8Mug4#=EEMtrSI~C2$^%^u;k|fQP&O)vv!w{zWBUJoNQnF0EJJ8Tsh^xgk8dJk zL{9NEM_ZtF7Ha(tt4~it@Xocf*XAoxee4ho>f$U{z~VN?W_-U&6^+TGgLV^)4#EEB zl)=F-thc?+SPeZD0+UKJ@RK=QP&UFlp7qSsnwcMID1!7zn9Q#R31Do-B zbv~WO_j^%N_`uvx2g2)|VK(^^58*qSBD?Uhq4QCQ;6g+{0p!rd_nB@@)|s_)}eIIofu9O%5&Ws^pMEz zWzhb##BGEzbdN4>M~XJWdqTj?vOV2$2~cm#9~6uBDqQ}%SIMbV6jQn8DF~~4Qz>0rWv9MXdk|!jHF9=+P+q1tQXnLMU7F3Jrdq>#k zn_bN;mddkQf4?U*-OC%qA8lrdLsLB1I&^}bcvR=lM;GO$Xv(AhSf$&U0tZgF-sf)b zAkvDL88_n+Jvpwi#`icrr7>D9U^(=(m{&-36M?A@FjQly9beNaZq=1QBXSM>*8GEy zRZ{{5<}Wjwo`k+^_;aFPc_b`CWBC6Yx%IVnnZ(Bgp$}uzhWnAb!Q!qXO_O~{y9G@0 z1)cI6Row6}+K_?fU7x!|cG8{oFE7g#2JhHG_dx$9h6(cDiAwpTS5zqJADVk%C%hW)O5d{xjiQ$9H?#)00LOqtMc ze64Bk_^p)eNa>uzZCBcg;hjtQiT1#=jHMw=ev~jaEv}kF^M7-gVDaNZZ;a;H-AXOG zDqytdUrirS_s5{~bTspj8niQW^8JIrH=Ab+Jo3e)cp9d7%#JsK+UH&J7ADOUiUS7B z2gB7 z%35R8xIVdla~v|T&9|K&>WN-6~;HCLMB0{spbG zVtz;&96P#N7?)QH??}#mi*fi=r9rGhQNB5SjF=Q!k{G)L-PYGw12XihlUM4bboe1q z*uOZqE-p;ql9o;u+(XL(I}q2xmSuDxTGaD&OJ4YJI3(zvp@ViSFsV}VIXAA2BXGUFK;z+XzgU8+C(u3TnFqn5n$B9;Y9dp~vR6YOT$OlN*Zs#8Ie z=7z3QV~VrrLLv&Ys`#^yrq5YQ)}Zp$Mbog+Y&LIk z7Q6fO6^TsV(JgH(7L<#dLOoLK<@p$^=8t2{Jw}wv^QKOu!`MFu|wqD__y7dw1K$Ge-R$b=xFQt4Jk0sx~$x zMn&5xd$yU?p?%BA=9atJ4{b7rk#r6X1{NLm%DDo;PGo*OiSsKkDh3u3xGjD>$R8QNgnA+oHod@xe$`zN>ouB`9K(-IeSUl`(FRvGoR*AnEH`-qY4 z7y8asx?a+^A?cB7>2O07?{A7j-#YU^F zn81kR%G}RZnH)1AfG|=&%4qa(aD9Aa0vJbP!D9?9%h%pPXct#(-+N3tth!Ev0-V;` zIzoR{SkP}Tjr+ILnqBhXdl2T4wgNd(ra-0=boJvA1dqMhIY;vDSeEyoi9{VU#ZS;2 zC=p6n2Av=~bKj2BPPCf!eHkZFeGIbTQ4vaJ?yM&F4V)76w8v??t!iFbu}W{@_#Us! z<1!DNLUGGNSOtndo9o?ZOg{s5Yd{Tfzt+5x{RW1S=5|>yb3>wUt@oB+4qa>9 z@eW}pZVk?K1}DNvta>=zhtjeSKrl6Nth?c=0iQ#dUW7jV+4Tr^#B**&7B0qz(tZ?g zw`S%5buLY8#nr{V8%BDi;{K?7f+Nnmb$tc$^GxT?@h9Wx!|D&O`W34=*vy)wR zAwyt;Z=;!Y0h`lmEl=qArgT)6z7=tvf|}7GH)gIZXqzn~rFlBrEj9<4<4kWoC;@y8 z%HULHlH#*Tg@w6;%8+^3u>lpRevOC88t3T{_u>#nL#H}I7(cK-KV^{i{O%~Tje?vN z%{_8!*&$P|JrLNmn18x;0^i1seP9}mKIc0C# zpMLN4>u%@t+Z18l@SjJl>0CQrKJKuaCc1fDv2WWpo)tT29!|ZqjbPIs3hOCYXbu{a z^{H21gu16O4BL@M!Ivq+9li0M)gp7x2@K4^iLs1A(jPC$C|e7%lbK+_YWyCAOF-V*BiKB8ORLEg=6oJv8%N08 zbC%ler`-Y%GH7=jL^kj2S$99gxKmH4JI+KanR3;j5)L6MtL!!O)>+wj)Zt? z>0ym<C4b_z<#+DvE`*NhB%z zH!l`jHuD7g<5Ro=ws zD3^$KSg!T5-A$z<*BcZvu2om4T*9Qn?@43N0Q31GWy^FdwCNJE7rq%P7kH9)bkR<9 zy?tYFWruYfsT!|cVHyiLCC>=V+xSS_?r5&k*RiUfx5g&m<89F)F1QZc6!q0+`ACMh z(et~#Ucmph5>$ZX*Zce{_Ikwt03i8aRswrtYo~t(f*OrW`>lT|#@gP0fyJxZhSb{x z960DV;XN{oIX&y_oR>f%h4zK&v~ZD1lH=*ZvtM6k@3Ria9JbH?)Ugcw(`igzWAsyW z8ugI)SL~Iw?csk%ij$lBUkBqry%ee}qy!-?`a-={6}Vw=Vz)_Yg>?z-Cgrr9U-!>V zsw+P z#MXgyuo4W(E>XNdv@WsJr3lhXyP5xKpczGtD2uC8x9U6jph{b?V+M(YkWwcwzb}i( z>pk&5!R?Vn5Ez6pz5D`+N&tI~Gv{fj%^E?`$pc>IT4OHt+J93lNOE0!(%n*p$wbMt z0?y*eL4ahJWL#9?ug~87IVoQ^b3SR^+=vCdnv*e{6#B?}K5N$FAfseY(gnf#Yax=J z1H9k1MNDOWPLU;4h`ZAIO3}==g>tgIa0yK&WUH74i5Eh4L5|=fli}6%^k6RrJrv4z zd}G}aqTmBBp@f5;;g(jpRaB~&@O3+d@{1m8wNJtpMnoC>ll!U@7MYwc`P4O*;BnvC+i1ocjG*XQ0so#{;F8M za<-(<+UMFZhHA?!TI*SSq&rjTZRm5;A6%b!rWdfHYNbp9#yzUAb~CVi_?EU-wyep? z^fxT`03#GC_6mhG0(wOhhL^-bnJC-NHr4kj&3hu0csSb@JN&YdKOi@CCj$Zpx)Krw zMUnwJ{TymoZC5-^W@;+=SerGw?;!vQrGFhD1$M6f1=Y57+Pth^eK%=Iswf3&RNgVh zU~lC8EgFEc#H8|JjKFJr{e{E!R)_$`751fal&Cq=xwRqVbcGZb_ z$3FrW1G%Qp3qfU>N&_F;P0w`nu)p1YEe7Nc%*)wq$upyeWk9X;80EsiYS5z(P7hZa z+gi;{CL~&iwM%IOj);@zL?gjrQXU6ijiaCz>{?G9*iug6v5I~4D2~A#9=IV5>e{ZC z0aLwf-d8g^>pGM@eA z00REDs`QV$z-~ObbZ>}pc0a+k71ZVEMPEB0n#PmrHf}9%u6Nc~uhriOtiqBqDstHq z*LpxdM}Pnx4O!?j_LRT<;;(tZwh2*`Rlzi?%Y@AYUVf(Y34|&e{$-j! z9sXfTAV+WlElkrw`Q7bZ9exIoJCxLo`upIh4${_`%!7c8y@5ww^K?_mXoNZNdxw!LoY z-v3Sg~hEWEmcHF!QK1$QTmEZhn?05Gr#*v*X?ZU z52~#f3IRd{b;_sy;$1%-)H%Bo@01XI*miPZDa!n916;Rg+=8iLo__g3Xp1~`o7tme zVy|g2d1fQB7H^bI=O-@UaIxL&#!_rwusYgavU4f=ZGQP;`k8(p1nYNsyY+oNU;CLz zj}H{FWwfC_xFA~h1;+7qzE#SAU=q&y!vF8(`(MTWFO(q1|D$~C|BqF`{~KGdO*7h8 z9UcH6Lj(Zee|@fzrJaeTo%w%$6=t-(?GGi8e)HuQ(pRVm7;!>Kk~ME~W*N8HpO~*<5{tD#joH`=ZP5YA7mG)h+gut)b3;|-9m<9m28+*A3>y=*x zTCm`#I{l%A7Kpb@7GG){r)^?C!!z97X_b4(_m8cJ4PdYXYsBOFs{e?a_;A=+LyKjA%s&vI0eql=L3VPDrC>8#gX8RT z!cq0g>7l?zn9#MLvZ1faOm;5lx#pa^EFQNlftL0FScAw)S_gY58X>HR1Ng&RVDI9o z$JV;{H0@8>wg|a~W@(!>as&ZFACwQpbA1APKmZuqH!jv@(Y{WCQ4p-*KQy}M+v9Bz z+>3B}@i$ovz;)Fq z6i~z#snLKLUq6~cy<$#r%Mg`4I4+W~JV%1j90HkCX$M5GyYzW42shhZ9cD5&VH|ht z`O?9mVy3l8aq@=GhbzlG*s;vQ!KY?6PaK;2QaC7JR0or$5AhPABH7+JebGdLY_q<( zv+UZ0%j`((t@%+R*hx_&mmfw9nf^HKy<90Y6W&fd8i5DniIlJ-v8;ID>!wamaNXpM z1&@{w@(mjfEg6M3M=o;cbjrI?F<(q7XD08oxw0-W1~39Irfit=eDRKTvM4xkegW6&nAuzQnml@=m$Ag!mPjW23joaw&io)O z7e)u!4ubt$3n8RV{v9cSpgnvS+E~j1O5=ozB7n@oC63?*@Nk$$9Xnurr5`8BX&|Oa1f@_kX8Z@>Kl~}JM$=Z!QO^~@5ACvMOA982Gg~6K zd@{=;ZJDbUEIc@;GQagMFcQo8%JbQ0UK-xJRvFsY79^s-$ZIe~pv6y!>Lnd?&e><{ z!NP~q{_HE7^@haZ_N-aBj^mJ{`b zz|P~{5dO1eY%*-6T<@vRow?X~;I0S^#@; z=+A!fk=n2iZHVkU=6FIgDo1UO=bB1uEgNT{*z;<{M@tD6<&lrwvDy)ORs`x86PFGq z_UG92{S4tixM7T+l1+w>fxu&D?eYRU{r9kXL|m#expc}pYaGSVx4?TEn#~1f1YssH z=_;J|*)9t}o!Y%7EC?8!U-dR}Z3-AKBc&A9giIK4YhiObf(X)9GOoB_{uy1qagQRz zEbP=!Q(6rN8(NB+Q8@`Ur=c}5{EZ?`y3{9yIBD%Hf{~|s6!J~I3F+g>{g1sng=TS{L2yIa}0Mq zhx&x4JRTd3m{<%xrX6B=K~E^F0?;lER2XiQQa?OSneuBgQy2flt1bn4*5hUH&8#wH zp!L0@stL3`PhNF^WIw7!0>UrLL_cFiX(Z|VW0SRp>N?gL_4w@C z8~}VpC6TzANSj$Z2(?ufUw=6?P8}`fSzvKi)KUyPwL(JR4B3oDTRk)Bcxs9}h6zXJIb!ffLv|bWYz;|eWYE;Wk&FUgA&@0Ln*lL04YH>3D z91e74f%j8%#T%U*UbwH!xG4O_*ZIL^71mEoB2AnjXCcsfLbvpqPz&f``z71gb#Eq zvI2xkT@Rd8p8JbQywb8=-6M{L&b*v4w_Yx%EK)O*NZRV~XMRvE7B-E8uqSP~T)okyL z`MZc&kE)gYU;9@nWo((nwnJA5q4eEoNqC#Z0X4q^!eps%GtILyl2W*ZMNm%j;&|{S zP|m~W0lfh-!^l!_2-0W#d46KH3d4&VhH%`8!_Bs$1Wa~55$+$_wzvumB9DG-sd z=5*{SDLN_!jYcx06-_Z4Xo}`DMG>pPD3_YMRgw{x2(Ylo_YGict zO8&=)YhAt0SE$VjA6S}QlX#d(HWJ;x4k@(VS8kWAF~kMdMsX=q^UUZ^l{5`S6LIF2WHLP3Yc*ZSoJW_UhnL{c)Jn(MQd8Nv?RB#6*tM5KlLI=l*aPykt2`{#`^H8TSjc*mU>_vI1x>bwRfN4!k!{ zmJbW2pTik%3yAJN+=kQ%_k1RQFt|p=A|Zy%a<%UKWb@p~ywatZ9u`j`0Co3d&m{r? zwmNDR>MOq;c){spYa;{q&=g@R`?4j0>+N>2$WYt=!(SUU9?nqH$`rCD8lvnkzH@Fl zD1M-M*?AFL3!hIgUQ#LU^XddmJnF2mkxuoV`E?o%&DaG?bX$cp5F(plZwDV#;GRpY zp!NnKS+76U?>B<$it65-#3ueHz7gVwi>3OFL^Z~yK@hbvwMM96Guyb6C1t&9dKu`@ z-lrhW<;A26@7g@OXVZD~EmJ_kkx)@aqg3f-3-`&V`^CxL3*qT1m!Km>^8T8(wLY$ZdV>=ME8Y+ zDn{0w8FaE{L{AuqGVT0>+O@C(u>ry1`=QjEctu{rh3!;WZDir^(8$V&t3J`d4eLGs z+}@vF`Vo@lXbp-KXGHtq2U(571G?%p!gv%fo?^|h5Q)*U90usnVx0E*%n=hST&4(d zK`=f(SYp)g-sJ>B#7^ORR}e+9>;1A@ri z;74!pOpR@N{c(F!QI=eWLlx8mfZYCQ;2L*^N#D`JBAR=#j*Kr)hEpl>hKq`f_Ri9x z<1{zw6LQLXYd?;7yewZ&P@1$QMf>})qZd`$FDj7yrre{v|N5sZM|Nzl;FOBEX7BBP zgm?!zOUF9@Yu1D40RTAvw?hCMdv|>sQ#aH90KsasyzRGI(SG;xgQOWn=x_*oD8h&Y z7)&fXL9MfiB<&p+(7v7? zq{f}!tJ!lTvS zJZolrsrJ`nDXyw7ojG)?(>s-n0LAG;=|oOQGIOkp^e%d5Ngqkn1duV%oeCdvxWdV) zVZ*CUXz!M#R&W>4GHaPl1tJ>5lBd+FU3S&2f~qI1O19+swGtpnjEr(O2u$}C_|BaO zbSORd7A0dB;7KcOiLl?cGmxGI`krg3KBOe}Yi>wzaHzyFtMX*dsB&=v3MWyu1zRuE z&u+C>ZLwB5?M=&M%3N7_7$$uehniYzw#VdZvi^Vol7}u(CvrhUe{y>YY}lF+ty1{- zyTXm$k|j?d&*NB3mUs0giIvmG3c3bw9#D=;u=O!J5$@`CBi8Ffso<jg$Q zzcKOmwfFX9>gz`+6J(fqtpK=Bi1hCr?nC_gb-jH**7Uok*U`<*+0mb0lyOPs|8RY) zEVV_q(YLALOeY*pRc$q`)sZXjbE}7Dn2+FaW);0Xjg%_e3jN-}lpA^pffwCA?Cni~ zs{$|i4ak^?C2|Vl(@Qpv=O-Rud9witFyF z6p;Lw#|Kf}n>W|V!v1@iD#g;*G$r2wiZSFOO5o(|ruYUOH0a#F8J{LPeCN8Z!Fsf7YkVDUaA2@Ifb-W zJ3|F}z-st#rP*Zj4od@r_|Lm6?%Ap`d+3;LJ^{xtSG5?6zyO*AN=@`q%hVRFNH7WO*4|(g5y5oVdioU}7oN3Aq zdBbiMkmku#7&kSr4d6moD7TLJF+fOH^R2#nLWm<8e*`4Eeb#;4tdfMf-p}Neiaz`dTI&bJ`Ztg0%&*bm8 zj(E+61r4ZcVJ%2@-4uiA4)$K#>hv_G_J5}aabbmeS6a9*C1^hWD3BpU!5meO_mR!T z{r>ggvI(pNmiwSp@<7Bx9eP6KA2L27*GFH6wgnY;7{;~{kP6H$UU4q81AgVjkynNw8(ARGd3yyh=58#EgPTL z#=Q^&cfhMHXBF80VnrU!I}!%9Tzjysynv7A1qkl;F;tbEE$8M-?Pmu+GRMXaI~fVv zj2m(US_Xl;l%2hXo(K1NWnnr<^Y#_}Ll~QgCcOck0ziE7b7H*!a2mIL(y15bH&lc2dLW5i3$Yo zA`h0wIBoJs@7mnqLGpzx-EuaOP(lF?*Qc33p$19G=C zLO*8<5Y)WE)Wh6qpJc9#f39J3&b}-IlD7n8$kPl|m}I$UZti_Kv;8h;lfWuWO%86~ z!hn@_wAe_&OqF0;#Ps&Zi9Ck=p%z9a?BMXD^zQi2hv2>=jsP4TOmwW`2nL0wOMe-c z%znLX0pQ&85tWBN@znA$qxIyACqL&yAuLZMP4FbCPVDMNp=BBKWw@L>8xe4%Wi$0Y zuKO^FzeEtD{1MAJ>>Sybf}8X;Z&FQBU&*IKjCi&&*$cUNmwTO9uR3;gZ?zLz7U7P; zLQi*sdM+z02>?)Tl7w!xqDF@rj-$OSJ;b@gIH*wjCmNCZcRfqsHi68qjvS=s|kwjF&LsoKK&UAKQUllacbtTle55@?ga?Npj+jYc1VctB-P)as2Lvs+nfuMCXYnxJ zE;|FeXyl5-E>FE-#|wX1Gpd4`QFDeV@kqi?mlH;JJe}r|vqzJ(C?Un`6&YcRbk$#J zox-~Aso&ZvQz@GgQQnvs z8hA*-rM3bNH8h+XyU0o&emID-wAG{JXo5LVJEgq*QhE5!8t_KBa0w3^^p#}e7`Hzj zkB3h#=FIFM^J^5{9Pd1$aeEr^gC*FUHv&4 zX?64<$L3oD-f9vnbZW|*r_VGbwMOeL`iJiXL2oRd@2$X+@a!@mNtTEtPM*!?PcSlD z>?-X(d52+Hc3OP%(CK#4RU8>$&%xHvN&qKWD#*6?%~o5F(>SVvU9XW4cv5V(i3T4X zrD8jY&(CbiSQVb;JT94^r7WD;Fwg`Gu^(~o$s8@v!j&bE|3Gvlvs$jU!h*VFFv+{I z5&EsL>*DP1y*3*e+a2mN01fK%lHtK$_b#%0^gnBl_Jil#Cf!yUS%S?npg|nkx8R~U zyggB8+uaL=6oDNT-cbk(=WX;{0ngbC$P+5*u8_ScwxSqz)WSP{87$iYSra&{cXC6< z1$=MCS;qHdQB!%Y-IhW*0z8-pl+sKjs40yj}1o4_!bYgng*$%eOP+UU)1%AYP+|0Xu|xtHx)&Ox_zu& zGy0SzcfR9NE2&=H-TD36>5;d@(M@4j7$mOy1W3qvIFqeLXa5Qpk6omP40H8&?jaJiau|BxHv8~4B8!(k_2ppZ=JX!xlyb#)%> zf+Z8fAq|VY_KVUKkglv1w56#jd`_*1oNVuOD0*$5GYSp9fM2Cr>ua!`F9V|0NX^!k zdzn!bcFofx+0$LDGOtyh;7r)RrTjBQQ9;?{Ojc!I$m~Z843WY^G#6{>wC#KJo}(*l zp}@jPfX+)Mi=^T8LNKJ|^`ovnk*d3s+frB;KVpv##MVy2EH;@!LsK@~tR2+Dd;?vMxDq@!#6F8wm zAb*V38cr$1=S7UBz>jm<#Hu=k){z7b4`(HN-1}JA9w>&fdw>|1mz(LvPeio}IO~J# z+$x+WtgmzR-y=0c*yiixXe@5eNF%&hWr%$+0yYMx-D~j0w3_tL2%d~9ZN2c|2B`e; z4t}f6fU^Z|JJ^9ZRX`xDT|W_ZYXvI9Z5_y_N!w0C<7cSL(6B+;$xQTV6V}NopyyDJ z@r-y}PGl25rt@}2fo-HAr2vWz)6hymMJUP%)d-s_Lr=}1XQy<`JKP*_xIS84#F#Ee zEy7gE@%By7j}{;#JO#fFRb~UxCgo7SNQ&f67j_*3-gJ2%v z*+fLY)v7r&bR4<6b#idG?+GRHiN*Z~jSKXg2E0dS6rUb^X_*Iz5BfW71hUqU)KOfB zP^k=c=6Jc+V|9~FOYZT@K!VPH`GeXhCICw%z*1T83c)CgL=f@M`0>P!^kOs)-J*V$ z%{%nm{yp56`$X8by%!HU@D@>m7g~rP&wr{D9?xl}Qjx(;$?-#ahkN*;o8;o@5YJjrnvB%=a#3c72 zm%NaZ%4B;@S`B<2Yz$wYFNOH>z)3;%lYxT1wIP@I(XZE&;KcL z&cV>w+R)t8`TsB9o5l!21u(#X+uIlPpU#Ah&2_U;BFd;&HqbS?ya2l291qhvjiT~vhHlB%n2uocM!nV1Q z)qE&)5F@S}E5D0y9@wox1-)?$Kr1I0q@}g4;{>6g zAul8poAMu|jHmWE_LWtT@g*vG;_@`)H2mQ6@>TwhbVE3z>O+PY{1P}3zknO0yNXY{ zf@R%N_?#?~F5W2SeT~OJ-^3K%>ZsvOSmD-VDJKQi@r{~hDp5QUFfW95Lg~X4s+zXd zG#Q_)#*vk=Z2IK)lo_;ZFTcNA*EU|GVacGy;l?kfZci7NPq4rd@5hg)@NRz-W$Atm zelv9QVmF>&uijl64Ah+o*t**J@?{C#-8{X1-fi68sXqZS($(3oecTwk02|rWRZ581 zvgs1GM_l|qAd`~eo1Qji@Qn%nI=VSWy724GY=r2_pRzYC&7CE4cKz`5^=iokhB6cQ zaCUuhgnN~uFHK=%UxxCqeZwNzJXkvU#iataOqg2?;dGdksjvA@oA>#38s^u|&Xp#- z8$xZ%^5w{zn$9;bJxyF2P0#*=4C*5AojzYa zn!!ylHoN*M6ZmJ+mKw8V&Y@AH#XnU++mJz_In+kL80g87;-Yx9*aLtp<)beJk#J|r z%?54)C7KGew)0|CD=BD>X`X22IgJ?(fUyFy$PE+1z>AlH1E=;)64OT?DV)au(8!V! zgPFQCajaN2&_*@d4vrY?bJ)QJbA)cnt=AhiuggoP{*@M5or_!Q$`22C0XQirLb{9n zK5hBNx+ZKsYuc~kAyI~6&{l9{N6n%1z__VG&EQpWS$6bx_#R_S0GPFrWr|RHSX*nm zJ`TYZe%QJ_Y}5FvZTb3sp#6Lg(X=1C-hmKlH3InX>)(f;k##vs06}1v9!tRwK>^4Q{xKKNzYr~Yngr+0wqc{8IR-LxnCP(~=hWDWG zpjMYwcgS3s%?aIZV2HaFqvg>WF1|MTM2WWBcU<1*iU-O$)8ZI=8IMvQc0lUHe7+b3 zqfRvglI>&tTJm)WC!XN{=`s4HJ(FPfacKjp=`*m84|E~B2C7T}X&z|YtTZ9fNk!mok(QlX2KWF}rAsiWZ^Kr(L9&IFZkjXL1eI>4=rm zF|8YD`v>NH8HU1Kv?Pw~R-zNQ=*nUl5%d8S+CC7!0&TYAv+f2HT~BKXz5;#U*;I;g zblL#@mtkp?$Aai5!^6E>1h|s{3mF($r;=ydp@0w)JjwB`za~)->o^-x`lvClK?rA| zJp%908^bV;xSp;{n|8q!a1Z3Cg9Ag;4?Tz+j1PSpbJ{loSic~tfqinyyl$u@+u4Z~9a6Eto(`vn9#buwdvglJxg z<|v*Qcn2WF3PCpz9 zxZBlZxN`r!73|d=V3^#}aK2~|r54ZRFSd%}*h;YY_A02j35oK)#i_IrI!suAsrEUu zfc#QGT1Oy`F>KQKm91+5YVhAoW7w5|(QKc7oa%6~{Av26o8X4>xBZ6**4H>m@z|ap z$4CX+Wz##CL~w$gQ#*ngaKRRaAb(lw`Jjp_D>mU|wR&&t%vQBKI|aZ6(iN^gZdpx3 zf3DcfFqI;Kt-@HwSzF6!sO(0FJUW2u&6(9j@B>$KflmzNRzQJ_w8j>#fgm(d?g`xFOaSal4uW>rZ zD?{MaB5IlCd1U(5(rf%Si7Q`LdH*Q8XVzbk{GCk>kA(iUr?FoTD8kBt;P>`w&w8rzR}PT z;#CWVkXfxzLfFk5;e2&vP4E|MZ(QTW($16M1Jl+nO1``i6VrsoAmcmI>h7kSM@$)AE5X4&$ukAmAhHr%}t`#KEzipg`vet3| zaVbs*Ln+3sH8oZl%fm{ToPiEVYhCVlUS0y(a$nifSejYEo8V6V$OFDRE6rkxBsWgE zKcM{_>fY4`foqI6`#~%N1f`UAdr=|YGFY~PW(@*rrw=vXae(PKv^QP&F(Y*o1y;wK zsG;tg3)aV-2jie?GYV25BeJP_p3_&v%9E#cJQ5Ei1Pq|jM3iJux7pJ#4&h$2_yEM= z8wS+kxeVdDRjK_fO303RUXzh!s|1{ZrQ@igy9WCx%=?m`IF-KI#+9U@d8R(ZGOt@1 zW{k;UY_oa{A`|2*xY~4oOO7W5MNir6yyB-R3k7{^W@!l5zSaxd3UXUFP&;xoD9F%Ak>gqC73q^xg(NzlBMBBvULJ8 zVoGm|l=~;b<*XF+mxbVLB++L_Wj{uW0q)C!K`ioL&xsXiCVx%s^!Q$i=(irG%1qJy zF2&q^!eR2E2;S#Kqp*=Rpd~rm2Mst?th3xrRx1J`kp0+Q`Cm83(aykhGmLN_$LqPgm44wSK_a53^h<^L^FvdsFt95Ng?*Q`%a1?2}9RVn^`$}3Oe zkJTxC5%B*Ai@L8f7%Nu*cw3Sk9H?=i+uAc`vq~^qEUt0Wpz_I}wGIAzXo0#->aj1J zcAK)e#nGgCPL>Z}LB7Dv3?D*DiQ&1C;TXo%0+@MTmrAuQx+ihCXWp z!Y+NE`&`U%SrE%7gYFWw7#DRPQ8V>kmNXm!X&z3)c~4(4GE_^N2A~-WJ0Dgoixiw=kS7 zA%(nRQQF5Q6tTg5j#=?h?n0EkC@hzOMl8N&{B{CWs2=<8I`HXRAoi%q(`*#Es##Sd zpG)_sa?%?_1sNuAX?)7PQqH+g%^h^=>SpbP>b@6bl3vQTB(LS8df*jt2I#TF_BeiQ zTt|<_25(>$ek|w&A5BKjIaFK%uBN0FmZ_ONym)VMAzsvOtQRT-2gK2`_EI`S zY0hQN=xyaddfriMw%RZCZrZeFZ{$Ugwro#73rM0`8{>q)*#?A6859~nP#08ebl_~QL`J!8+Zm8eGI1H=cxJdrh zpL8Vy?V8ur- z$Z$=^m0>BIrU~80^-yiMuAT}m0Y;nB1xtdy-K)l<^OsN|SUKFVL7jc!@_gJlI!#{a zACR{15ljLCN8~SeaU;IWaYVrXWZln=piya;Sp&!3zbou)=Q-nBw8SaAfgS^4?2DiH=om>XW> z#=s%mo)TOMo|ks#$LAi-H18XpMReB87WcSya@D-Z5z!*saw5JMwaUl#_`q_N_TesV z!_7G_KRcz?ZQYh;b!hc+o9jFZ^lijYe{W32NNax1wdbFmEmbD_Y+uo1m$!>MQQT5i z+Zz<`4nG*x$lqv*`wEum+HYxhduI z%64LqC;BwYsybJ7RX4q@>j^+7=dn^3&=ozy#BcvKJSPC$Ega&O*iQ`nMFR4ekIwam z*{`|m1I90iV~rKQzw<~den{So@~3;zLB(Huq(<7*3|PbNq#1`pvhbgMoBU^VzaArJ ze;fkl2C|&#kiYIuiQ|FokTZ^lb~M-m__X{)60_j`4u$Oi3%!U#;vr z-G*fcU&x^mP3zPHyMgYO%&XDg9Jd#W=)B5SSiIqezF&XTX1U)|_=D!hU8)z==K%@0 z-QV)ps^}BiUaD6sFbsg-Z5xR9X;^z3O!{6$F$IZKuRp9>Kh}C^N zgJ$w_Z!U@?zUT0yj9l&A%;fH$jy7BozpA|~xw23gA8-}guy1`Y07n{dhtUVpwv|k~ z&^0O)Uj2d#gY@0MK#=GT6AlNK&yUyq_!lOkve`Wz0(1`tDQo_gQ4vqbx69BF$3|6L zOtb!XKZ6)aZtui3zh`!d3#B$Zl-ISk*db#x_3b-rZRnyYb?*Aa?%Ntq;#OtAO5P=T zt0W@#jxPu-w{&}k!x=kEO#Mdm(2J`X7Tu?57~SO_ueX;>U+Bhn3o9_<>9L0g&|CHAXMJj9X3 zOnlkSM`0!*K8ezc?gD>@PkEyY)knUB%yi^*yc6#j(VEpP0Nc* zL@_OByn^c-)rGTbIS72ZLPSltP$dghbr*E8u0q|4c5iIs!OrWbg^0zZk?mTQ-Z`gk z&X2lME0Z-wK&zvTtkd{Km&;_2(dw^9$Rop^i|c&}2Kb$uu?Sjt9*((1N@3Cjlg}WN zrbNOy(g|hy36)}jG=vYd2-=Wx%XB(7no!!63hF6cOuAjUfC>=dBztP5ECk#0`YI5` z;8-nK#ziX{N@OjW3KQ3+L8;>;-Sfa-{QJR>;I>-EH@F__&lFgdSAC&7%y0T|S=1q@ z#!^NIChQ4~BETPj1+KJ-;Ipv8uHrV6zsB<4SRi{Iwrba6+R)s%ZGpLjonWsV^r%{L z_7=NSYnsGRoWd>zKFOnxGx*B#f2ox`n`55F-Cd3mq)k~c6+j!Cc(XQfBCB?RxfKKL z=qMtc4J{2(yK7~Q%KORmD6(1%6Gieg2MnS8Yjzavtstd;Qw1T# z=n;g(Ngq{xhZS-KdumUXk#xbS$!lyOtBh4lFJ9jf)#Ss2_`C?tr9Dj>F;e>(ycx^F`@u`)HJG+d4*)QG_7 z1{w})EyxV1jit2KfWrb}jNAEuu8I*BL>qTONR+dEF(7Q%`9PW;@`HRKW}8mRUBXy#5WqILSO`ps zxeQG?AqThLiWL|I)L}L64ROmEY-xS6UcHUmEfkRY`HBE$;ldT zi7x@YxVYeJkb_;=eJm@_75%C<`fVwTE+Ns@q`k|pKPqLg4u1+QyxLETYVSq~Vq(bK z$HD=B$zyU+Nu-_T#Z01!Y%qp_rZBz`tm)0ivwpn~IhY&;X|14SSwuL&w3mJupi=~Y zYUyso`uvCpg3EFQ2r57V&SL@O%hCmBD1DU3hD6xr{`mtRQ6a4&)H#NsK`|p|NH$aI ze_|Iw=fo@TwRlPALaK9=t^KkD>217Ck=E|)W$inA_ogg4KQ0pn8-qn7sN0^|b~>3{ zCnmPu^rz<%bM@M?%Sv&S`h`^PZb!un5962BnRpL&V8BRP0T3{6#VdTWVm~&mUO6wM zcC6<4JpY#mi}@=M97dtQ0Edo;ePIhdG;K1xQ_Dzg1FXb-wJ|i9<1gXw)s^-V3Obbq z?bAvID6Yl(rL_aM)w#)o6O$g=kVU)N!%Jl>eRw>gw~3Xls37bPt*ffJnrnx+sU>~C z!p529kzSU@dglqow~9$xsL8sJlR)%i&g4UEwN%HZLj|kgNX}b!_AVqR;$iY-pcV%S zB7i9ej*Uj!AqgUb`edZB$uu#TY9t#4 zX8C0Y>D$wQ>3MDRIH_!LEpY#m0F$4Hn^A0DqgCHy33hp}a)=lhMs z-A!*^^K?(ye{^p(>8adxBuyr%BwN$xGxUcJ@sU%A^n`Y<+3UBCiUc@|KGqcgIZDn{~&$K{k{ zi72TQ?QimMKD)q5WXxli8!&ZHdwi^eHKM*%C%L*HcCEMo?^YavKG&(p z<2+h%xmOEL6{75&(^`zHlCeh@9XP=p_6rgP(JTBG?$|o%gC6WuyeZ>LvcbV$lfD3@;# zOVthfa|7GzDr`VMR9rMIs2sc2@-wuya8{v8sx%n?q)L0H;?-!P(F7>-~LX! zZSU$(BLhk;P+zQGiyh$~0BE8wtW>T|)qHZLe9u2q!p&DC43ms`uBe3U`id>J;f3U| zvlTK*RZ@Taj3Ukg;^T}x3+Eq(7_Z4im4k5nmrt{hWIfq~Py|t&-<@H0-2{ATGvLeXFbbh-G2x@J2^19l)az zA5RL3IUL&<)w13zA{f%bJ+SgCgq&K2!1Rs)C_kSt`5? zBItOH{*dx{3@~R+02wc%00H7yV&bg$R)B32Pft?nw*+885r3*csp|z{Q7b0H88#B= zERfj(6i1E66LXGvt-4PV?5z5#YM#3rSwP2<5&$_<_)Q8cJB%L-;~$n`s0?cZ$^ni_ z(53l^TsLLDqV=5@8dKB>0=mvSc1xzrhgtsRcGF@koVychsSCEnr_L)Vp9~=c{Xl}a zl~J01Ac1WA7$OioIwoI%0WJ^~&~_M0g>52MT}X6MzCxGX#F^Z4P^{&d)c5iV^t1~R z8E_Zn1HNrKZ7hFe2U+by4%qML*w?CDNW7({MYT48-*EqKcHwrR+4l0=I3pLuL$nu| zjN>pY?9%+88~OFED*`}Q2_S8$dI`x6q-D**hp6dHAYvELZAy2?o7T|1;tuIqJecFWXSNE2 zLP&@o>Vnm`98o-BGKLLTP#Z8ypJQc`@*yrI!uck8eioIkA6Vyub&V|lo=9N@VQ4l6 zkK#bM+ayUc!nBM$r{MpY07B|&7QCm;0x_teCzyRqBTa5eL0k@s0rK=$A{cL!8g|b~ z3cIk@%ldZ5SQ^Gl)HT+Rv2)~{Ulx(Z0%MVV0>(&TT=@%(JWt(PGO>cTH^5v=)D-YS zsjcKdJanQUK+zVkHN3`KapXq-y)ewlW0}m6%b1P(+FBuZWU7QV2rD;k&l`p)hK5h< zH-g024>p)aN;VE=ue||070Oo0WRHrDCLZkfe=K_c(_a6}?fvgl58zLTXCBV2)?iCF*-FMv?4W?QmC6eD5xaGm0g?Ci61~=GEve-#9Nk8l`mUY+Cl*~ zcmxkQoXpNX*Xj&@ykRxd?Qe{MlgCH#cA*MV6JfTm;1w})Qmtb-=n_A=ydg5!7#X;O z-wW5p0k8FX)*U-VmdR_@6boR?<0U~-#LL^)0g%~-Ra-V@5;GyhN%gAZFhIarTRu>M zFvq9lcCv?`MnrsQ}U*~;j?jZ><&K6;stT!+$XzvhG|6*EEaR*8#omEIUX=;$PvZ;w|yUo5iX`g4-hOT!uiE z#m5>u_RU+&n-kU2#usw=0(Rf%ur!YE!dIFL+m>Uk|8Nu0#oVSPt@2ZccDRAuWl_}x z23R}bajbBMDq*~mY!7bvF{DqNZG0^~rI)Qdd-CP;R^y@XnXiFZZkk4fK`P13!Z?`1 zYefnKV_F!4(z2$cwr*fRo=*Tn$(H&p!H(v1bdH>D^dK=#pxHXCPg|gaBwy`KT2yWv8pD8Wx)jAO z&UIW7ouZ6B ze)u;Wb!P+-M#_^z?(_(AK>5M~rX{*pyyNy|#Vx?}qmALw3B84~@ni@8uA?-FnBYKO zZXk*ufc_(=WapM4RY%3KsC8^X97j3=Z7QtG z^m@Bs0?syPXa7o;X(C|ncyO*-o6X1f4v)KQPZU1~oM&c`90GS6izVa;Qt zsS|}x8ufEOB;^bIe-4Bc;vZNwK>z@VpaB2~{r~wdmbMNyrnaVbE`~0a_ICd@FQQ>< zkKKXzt4YO}fM{_vdckphq*TDyCy|{Sn0+-o&1yl1TCO{8)J23&VygM|R#h)IVQX?bi_@iLe`Q*qN6b` zGwokf9KG&Q1A|34`PQZIkQ|Y^owo4xwP`{ZyHU}w@)7=#((ZDmK4g%uR??7LUESMJ zW2{n%;%OI{lRC?tCcuZj28*A_=_yRVpgtpMSx$%gm_sMwIb7TPP)OkbK?lGF*5ayH zOU9skPpG2@l{2uo5PcvuR?^%ykB8o05Qj8#y(+-0AdqadQHbgteg<#MlwiXS1r$ry znvCt`?S^>(^aAwDFLp?e9azHpE1g4a_I1mcJ4qnqh1)Yj3T&F=N}ylLUkYsBwgC8v zm7`b5l(Qw3gDstMfE5pWs7od-UuO6PGr@wAMl_G&XA;C?&;I zilVX8hu#JHnW~UPQE*kLOrj&Uar&gWob3(lg3k>$GWfPmuur=PxP|GnA8Hv~&eKOV zKWaIL5}hei3mX{hInjW)m&$b4BcEz?bRQAHf+a#&(Sq;bi;lg2C`kK`ZCV*pX^~1~ zE!-n5(K(mzXI*yXNeI_u#eX45&7h8w~aav)r46^$y^Q4NaO7+D@XT2MVcx(nQeYB9>?TN%eQgBPJ6aN{{@ zVt%E@&DV*Yg_Oh`%=ZG|hRgr>xqa^)PTd`idCXQ|aHJ0pYco6RyqMaXS=V^jNl$)S zi^?r*pm!bOq07T7TxG?L2IQ*c%P%ksBbj{T4OX-&qx zAxDy2{OsY8kR=?+aig_y|EFpM;f&XwlTz6!AXsf$v-rS6i@9i82IY}M_A?ly16soo zTno~M0HGkBZmEHbmK~H@STbt%xjrH0!V#tnb_d+8)VwyRyZ%5Z(=^5fl3bDz>(!)9 zh5>Qqm}`$H{l5&WT49FF;0h}9rIljr_friL;E^Jk;ck!mh@$lqRQv00rgrF7WL@ku z{Swt^T6ItPP9KXjBoh%jP3vjAFakdw5mk*$`vKkd>v!Z7;|xqSDFS=-~CC6-(ITw9mhfj^Ms)*~NS9m&_vx&~qD zKu1@QJ>L8X>sBm%!DN!wy=8?y{JD!3-hP_}kf@w3&--(Gd^oUl`MH1o_<8xt3k?a4 zFZX?S_c$=NVMwCvE6b=ObY7^d%n2)@W(QK7uGd<%o| zO|v#<-yNuw2;xfO;Cbs*nG2=c;L07t`!Wz{?NNO4OLTKIZdholras>pvn*T;tgQeo z4f<~xFCJeIwZR1}!Y3ppidtp3#YxVI!H=Q@F&*33sh(u6f-Zaq$>!))h+PKfC8bV| z+ny0SOr-~8%sW86W^fG+Wa#;JCkKR|f`oTi$oZUhEo~)u6oJX6qZl}bh3;4N9SI+q zZuFfW_I18Z=j{(%qo?@@vM$`+q;_bqVd##s!nb1e{cCgz{D6&s%-b3%ILrc=m8>|# zNCo=5Sv+u5%{%T2w115EPOCUXeJ($Xe>k7-`{OM;^tD_Aeh4^hZZPJGtrzlyG`uFY zRm&OZ}PN%ynCi zA#d$ancPw)LkO?)SMUslrN7>O1s~ibwIbQ)uToF`$bsXH<_aiu*>{FT-WoZ>vKD{u z>-{P5srI^{cl#C=Pwg9eL@MxR*iHW#IpChAh5^UwC<8`~Yn<4Z{{I;gDY@?T7XOB- zC?NkcN7L2C(&m4UNo|$-?KT)-x=*MKq(8n*zNxRWYbHB^IGBFsq4maprRp?Hv@#+4H9MT-2kSaQjX&`UEN@!UI-i|8i)E zqf1+#LmWi33GdST``u%b>|6sH?|9e@?S{wj(8&Bm?>^StgZxchWBqwi6>Rjvc1r@T z@>Z_AkekGcHTZk4mOr)@N>_WXpMmW%5<#q1x`{!ZbnVbt-;QGx$k^igoH@=oMjxniDWRd~b~*4Ve^N12-5ajOw1o1XQNml7tl)Ga(x? zgSI&GC(}}*bVim4>cj@h_5E+Al+FGc41IeSBRh3*4!P7}#b>D+cuhoY;ZD;sa^jYd z;l<8==Az_wID_kbX^I7Z{|7B~Wy!#T@t2m0j|2cf_CEx^|NWPZ?d|MLjsL&kHb-6B z9-AGZ=RzIkGMHpQ_e8Y~At5-6D|T*>&8UPIWhiRBgoF&GgS11bwYP`a=TcY+s+r4z zl1*V1y}`N|(Pp@y#Cj$L!A&}#m#6C^AG zQYuxCtvi8~+AeN2F=2BkXokvcb1^gZ8Kh4`(&W~<%AqdVFu6T-5^t|{2zq*C{)vfr z-EzPz&?|tt)Iu&^@9ok_%Sn|3H_jk;> zyc1{D)ME}sshpK#AX)UQ!>JK)6Ru?njIJ=^pS6bbNH+6!QyN3*(jBSCoN_OG_eon} zs^3%di+PS@O;sV`_afn9w;Eu@1Ma$fr_PaXJy6+O4 z@3IZCBIk7FuxhKNW4i+CK)8EUR4C>uEQIm05#s~4_AAk6V2yChe=?C6r#u5Pz;W6% z$66e@{j!=wQ46Pl&}!AF#8d=;T88s9KrXe^f2`3l|M5`3RnvghFhFYS{z0XoJZ78h z$7{Q6?(;&beC#OSyLNPkP0hk(M>CW%gpTc14}h20>ceuYTOT9|?||6t3YdG-en57c7#o7TW32WV z7+Uy9CA3Y)S;{)RW%!7|4f0D1Gu^2XILjrFLDg2*nCl_|g2Aw^NK047&{C6LkrJil zF<^jY20Jqlo6e+7=-j_<_e8W9CR!tm_U=F*umD>t?g_SyZ3!rzA!t{vBY0(fT{K2? zevT2VqNs{Y(U?Sz7##!GekSecke=$(W`}~v1Bo3G&<)huWu}p$tl_`A6(Lga{-MWO zxoiEItB82S4JG#~amO4U;^;)TW5)bp%ynx%4egc7iYdSS$~zdN}D6h&l6RKf(qQxe(zV9wx+_vYyV>G$a z%c2)pS1Refw+Zl-$wGo&Tk-pV=WSiIOA>A7G;Ktb$W3Pxx0z);&acyAA`}EGHUQ^* z2yrZ8gPol*u{=!94ec)Oh%tzyZ!8OE?>&}(h;L)Z_X;$qs_$n-RgyMsUPx152pu;D z+~*Ek&+mE`uvzBgv9z7N^U5kbyiLzWK(#&3Bu$0vS&jTNo)|@J)_KTHN37ZWmcvuM zyaqrv@+)9QYFvjyhbKY4ADZ+w8lJ467RZrU z)nJn!TLs({fcNg`5UBSLUYXV3s}1oa)iFyrDCNYH5@IXpno4J2*kl%IuuB%l&8{i_ zEq>nZ9!O7&JB-XQyWRCd1v^V~-ob1?D+Rg;cB-^E2$|p#X=!pe5M1%@Mc6DQ81~8I!gXEmu!~K%doNURc9VuxBGqOB6-76XJBtn) z$o>|Nhxv0(*G+J-BvSi zhD%iwUtIzspm~;LeF6k1ihtl~Ww|)s%69X@^@OJqNlR6-4^$_$){2iG2RnLOR@au6 zeg$5-MV43fmc;fcz8ig^tgY?pa(lg8bBNr1NT+X^Hfgn3JSuwSO2b3v-SZ^e%*MLE zHWV-JRR-w58Y9}md5g4%Tal2g37?KH4u7h_T~B;mcyeZOgn9ka5mEkpTkb~L8FA!I zxx$wh_d83^$+bl=9G*_>n*~^=_mQHbj z9KL_x>-W6w@w=@X;_BsDVE1$kTJEj6v=^v@Ugf0nHF$5ngEuZJBtnJ13--ZFH0+=o z{UH(5IEW-xFjGH2Si9t$4*B_y8ucTMH^b+zv%UKbuL%EdPS?@Z)b+ng(zXgyQiBW# zJtvf4&-0*=T3zk+>hjbS-U#v~EJ>yeQ^h%ALuKreoz3Ne0- z#4q`-7M(B8K|n0hAw7P|T!w#7;#FBhV#-n0XjW$Ip9BTDxIM-|W>q7=XyPSJ5N6j^ zX#4PTr*EaUZ_6w=jF+XIuFl^D)3QrU;jBS3PmA&`z1ZdqnGY(a9%k`&@4lbqD3?0a zK;%q1ZdKRHC%pM*m@Ntj<&{ZKFJW1rbLGWc8u}bRWY-OZs=Bq1!3ykkh;ZJG|7PVQ zmT|nxs8}B_rG4EkjQ)_qt-+?Try&T@&u5ONk zX}#w>wCjoS*oor(Ta7HQA{8 zm+)1Nljg;)XsMA&l<@bS@16`_Bm!~2v%D>aNF#hupu(@?VJ%nd;$>%AvQs^xA)+iLDw zp}J_)>G$$!O??iQ+YPY)vkmonm;R*5c1O?$Cq=9wz(N@UD&)g|tp$(h!98KHC6Fr5dv57Tc)R;o%xziHC|8bBCW3~u{bse;!EwI@h_*9#LX`&~ zW73XHUziTsAC&lMm%w2IACU5|ATTh|ET7sfAccV2p7!+XJa^1vbNkEKed|BW@(86N)49u2MBO=@d;jM!J`}E=9(#y^tv|puRDtQPM-4 zpHj$jQ#u6H`VJSU=)uwv>p&t7EyZh3XGxcy)4V9-hB4QNIK9{ELSsFuVU-1}W0&)^ zJ(z(KkKrKDd{ma=)|b@#BHVpUBI9QuIGaKmE9|wx;+{BAnE!p)7CsO#eMw$Y+Ywps zH@V&<$ot*`ZFZ98*R9oeB>rQlbk5(u6qY+~l3TQwaTea8zm+*vLGc(j(RR{*g;n%Y>nr}Pfp(9U z#o8h#pqeGolE|Vd9 zoONkORMBvtuE|cDk*LHP4(FWhI(kGRG@E|0U2xt@KI9U^z7hhhf4Rnam5pNF$exKd zmWB+t^n-Zo0H*MCo!F68I zxSjMu9ICxdJlE1Euk8`w6M_Qv!jb5JqC&k}JnW9BFhLLcDkj|!M!ld~p_ieQbAvuL zsVa&nsal__-kOS%G3Lb9jwBkOFIsfy$G3*@UFn`iQH3I4FfV_8Koq;j&Mi9#RR2E( ztXt0c(IHb@2)c0Hs1SX<#f^o3CqIu8GGBu-ukw#B0CL@9?{BAs~^}%=t5zwsUbv`C*D4;)u=5 z(s{1ZCw3}62QU_n1l1wv>CB3skJ+EZoOx~2SEBE5B#$F%3`Zjc2}2C@5OY#UWkTH6 zmD$C~$@!}}i^_UIEO$sH1zpyQmJ-at^lRnSuAZLHz`w-XhE7dYl})IhWT4+|(LRF)y;f zhUANv0rkR4f!EPMEw%5ZoPn|yXZ8atH)0Jz`-&)y=qmWKFt&SG*&?(=P_8=|gF)0W^%Z4ovr;8O3{ntR5_cb+$Ju} z%d=HsZakAbB;9QBkVPjIpR)wYB+lo5yAmF8F#-CW4p}Cm?!Z_Ol%at^g0 z&jgmZp_f@j9BqGEYtKc&hfC{6ndTp2x=4iiKN;Ml7TkXWoM!=2`lgh)12CE&qm&!K z{vjH-2JGb{|Lq*^zJp=B!EM5XbsaK9Yw}^{3z4Oca3>FDk+D^AN_<`>5!PXmaSllC zda}77EvYp{4WAvk?dFod^>|K}VQ+^j&B8wWq{Y+o`Cxm2@HvA-qGkpY#_-I3MjJ6` z@_T>dyS$fLXHaB2L}B}sp2-nZyEQ;DB3$-%}wzE z@8$9TZl2yHKFic8Om?A5RGdJw_9WpZ)W3{mn~thMb&0}H?-$HTNOE0l{M?;?+W}dh zwZcjTzcur@g?^?FlVs8!lOBjceeNa$-gPN5Z?$&O)!%j-5RAV?(CwDhWCY9fKWNbC(F007``*Zcn(@;aHiIC=g)IW5}W&KtvsKl*w5Vs>Ex!u`pp@>p`K zDye50%H+=ylf}5~pz(u=BCtR-cwU1Ce$Us}-FFEGGL?6uBo1wD@jF-7SGjDa4d#wr zmgl7?j+66W1r*l9>Z*yXEfGgA#82&VFGBv)QCDnJZQ|I)^>mFg)fdg9)Ure;-ieD- zgvd@3TG5SkQIjy`Z{Cib(#*n&m!6qt^d%gB9ttHkYlixZaB&!4J1FjP&~yQmMU`hJ z8YxB|_rd+#Nzd=MJs(?X&Vkxp@N^+_T~72O&jF|*Pv%Vh2AWtrK@UKApjh?6d;DhF z{yC_YxQmO6=cBVNtVgyM`oZFhVh%D|k;DmOJVbQwvYM;vvRSL}Y@m=z_)v(F-eVm% zc#*H_E%Nj`4uR=?mm#X^_Cv>wS7cV3Sx$5KfJqh=QFHF9YAuO+!sBRsffN56Sxj!@ z0^jK-;>52xDx1CL2?WNM4CdWA>nwHIQ57phkcPCZcd;Xjv?^n@^}#4ec+GdmWRH_D3Wn{DAxp&$*sVk4F&?WqOt4U zG9#iKj>p4y6#vbl-#x70TMtbZYsrxtuGXD5?^nUNbpJI67l11C@9-IGlA=lT$3YiS za1`+F{Nn%wXD98)0RUW|Qwp+tcHdi1+34bW{F*!ZKqb9=m{DFyj1JV*ydRU8z4)97 zyimT%YA?YfyjZVrzi8y>wMz;fo)H{RW0fl#3x)QYax~>fDs_f>_|LW9BNep`Q9D4n z27}{Ii-brInu(QK-#O`JBUxS5sMVv^E>!+6ffFY=Hcz@C9J9|>Yp)grekc(>m)vF` zQT^5v27^2*ETM3c?gG&+-BvMx4Y@zjC^VXY^Hb;2@FTKIN`38XjBe}tkT29d3{4-I zRmeCgx)az2hapa)HHbwMk@>S!V$P^umav|JKM{4PK)ojt#SZumG(%k5X1=kq<>7K# z;dOw1ys(+Z!|N7jf^?0V?tazAmbJiI=m@?VQ6II$ zM-`U|UtG!~0I|EO1J}b_-d^ypzU6X&RdS;yz=DmNkn1*LCPIh4g#_Vn_nr$t9={uAr6qwt9Ws&-(u`>)m-XVSS*9&Vk4R!~% zw+H;9#GeJVO^)jB|t_YVOj^INV9i|D|P2gB=hvW z{OXh=7~yD~q-v9iNNc3tuokhxP*;Ty^`IQ|!r*v9ME(x*VqOMnK^bn6^@ND6mnW<; zAt?rgpdtf+ea+7n3YHrniV>6=C`%Acoc$s4cr^OH|14XHehq)yU&=zio2jEie^^Od ziN*tV01xC+(>z1qDK7<_YNO?Gb<-ntg>OgMwJzD$9c)3B7jfy42Xk;|cL76m||L z;>~x7&zPGbZ#XEJY|cs&nCt+ztCUhGcTgek2b4M?tAD=jGXEskpW&E# zuUGk)kYB2tOoCYMgEi4uYUwMMA4%3(h={QpWT}M!atwvkYxMRWedw5 zKd4`EMd#?n3ZjrFFGwPF49Ec9tke#*$$x;$kH6u({rv9Q*y;6$`Llm~A+WTF>9~TV zuK!A&3LArpBQ4)ODnCES84z(TJGd(wXDcxc!g}*kZ1oH&OJ!be~G*N>Y7r;F=je>)YGey#|>e0)l_xl@1zulFtPe1pbFaQri;@PFlqqeQ*1cV2v64>C*_282O><;`PniAwkzp`~-F|gXt@U z$}lWgT-inGtY;0oE|RiJCE~y;aP@2|5GPoBip>~P->fXDfzNB20j7#8 z<-7ck#ha>;lHZvc*oNky%_zx%92twqJiHaNK}*&S{kT}n#$P~X-lck=!TpnB}8bp}m2_i#eC*h-c>+j&`M*Jsa4T$A3kb3kT z9w7G&SSbc_bMEVadnt>3kRhe8srI~K@*k~mz1Bz=z_bXM?&fJ?^tN$(p5J7Kty!QT zJ!n5DxDFVeY<@ta`~zFc8yEd%`~xF~n{E_1`A!rr%I6%{elZ%$Uv7l<$!IZe!AX%< z0h_bA5-$&fW|@EE>;aE6p6YB_Sbjg{!V!g9?Me~~r_d!v9Z#2sTgmPMXU{^2ZFtOOJs1>+K2u7j-_4bQX23He?h`DgYWy_El_5>g~HR9+8{2!X@FjsrFur;#%GSOTvUi-6^K;mysPF3$a)n zeiWmOosn(nqq5K4KN0qXUJ;xwX1BUhQ&vTGt_J%wp2?_y|(tFdcYUoPm}Uy`&K`*+L=L1aU< z3zH*MdK~dM0)V=W5GdfjV%-LA{j+*Mgw&OcP*SunEZpQ;2Z`^<(FJJ5HnD8_0_bM;pOc?E~~J$Z{T86SkKZ3mcdn8NS!x zO?n|AQlMavqauLcl%BcWAez6}v*4^G_h82hGJa|~*@WuJ=Q7i;?;pAvPk-9aF#XAO z^Uf-95Kx5+M3xLF4bN3y8t64mB21BwTh~y&@rhpqC-bbg?I^vesG(Gm#fTfPb(-H) zyO{J`suW%(HxFakMp~oPg`{XB70nuPhMbp;b^`e74604uF=)0 zk3?v>{>&)iZ(>oE8$}A;umNl=)ZC^C|M~lTdI{Stl5i}Y;=fFf-biz;B*iLCf^|{9 zYAa%OInFv_TFfoVZSh((ZEcCDEhnT5jzug0+e`O?DvP;lJaDSO-Mk?!1ebb*GF6)! zz|q(8e84>IfY}$d`h7QQF%9kmOGr=YC54~76}tgG!1!3R{!RkQt+P{?mWqv><-h6G z*J2rPX>}6%LhMPPawEQNcUn&Sch_x_5`_vit!0k!Z7AjMFjZ+P6X1k0qMJgR+m;sA zrlhR^qOM7RO=Hd9G>pO1ErLIGhO0mYCoKfYjr! z1Mec`DvQOtgL3wNQLsFJYAXnh0)1jA9E4;3?i^h_G&*e!A-5%3Uf$tC=PI9cj@IZM z;u5c>xoWO5ZNbtjX9JlBf_bm0RvjI-+)U7I4Q1Cwh>E%z^^IawF}X-1H83F2c5e}}H623*Q8)83JM z!vO-=?zXTx(c5*m4F~HQt@1*+!a*F-1NE|jo<1(B=+|rs6An2`@04Vg`E*&@g1eo` zXX0CH%iCkREk8vZzT8nvzee!f@zgW&!p0!$WoFl1qS{OdQLBe?cB;}_9ycz%HyWU*Gb@5fE!R&~3 zt`p3v%s_BPeLulg=ImUT@(2M_CC}@t$6g%2C2jI5?8@RCEc&wJS>l`l!pi`5E1P8c zt1Vc8f}|Q6rEW=2(xs#iKf>M1DDP0pG1_>>WdFMSyXWs1rI$CkT0v@&C3`*X-ipDR6@!0D&F_`l zU)s6eyN9}+aY28%-c=yISw!Zahu-#9&Wfq$={jj=YqQLC5Clgu8B=vFTUAoIv8>`* zwHdb4(&ST9{_VDQ(_F=k3zXC*)eEbe^_E)v#yihF=GMEJJ^}|Jd+e?q)=M1nqgXlD z1#=N9_DC_r0p}S$l&ZB4R~UqMMUfA0Im)Jnzb_L@bj_oE&Z~efdf|0*S{@$){VhMX zk8dYyuQX%z64}W*B7UhfLjJf&O}IwOR$82okXCYY2ei~Q2BKpaEn=TKJodY}6zfik zi0{79UR&A4KN;1N_ruZqw=3dAUERL+@2}{i&&P8ebN_=DeCA@MO6+yITl&dG+e7q3 zTIQL=bAC{Gn#5o=slaN+ttIlta??uWHnmBtS&{EF}cVYUc4sA z#>f^2i+4WlrF)3>)UF-=YJ-qJvC0c?mw@4GOjq(>UjV|HBV8C6iVtVi;M}<;2LU(t z8yl{zW@+-HBuGNH79bf>aeb8{2P$kUk!=P{w|TvX@$REwf39-7x7Scju89~v19qjK zue}igto>kFGQM?aLHtc0fZTX43+zN!zVyxABI9CsJ*C^Z)$`yaa32`)z2H@FGxJt= zni-tMyi|YAH>Bp)`5L|BHZNcSXRiU~Cv#i}JKhe?*dD+fkC&dQo%5Vf@t^+~$A2W` zX!`!G7P&A301*7&8l?ZVBJo=+n$os)-WW~%p4Mk1SH&HpfgCHmI!sq8!N}yR7*BO6 z^wF-Zf#m=R+y9-H0m!E?YkJwZIrAI<2steN1Mk?e3^Kd$`_aq4OxE7p4E%Fwp?2?p z5GG^aprOaqN7HPi7A?=?K5iL(U}=K)&Mjl|rMZ0Y8X*4Y94)jjymV0;^rKYP6H(GS zw!X_AT{7%*t9Yw8Tkg^zcd{H~yXyp`UjB@IzZvR$3DZT0IFYcC&L{~j$(iAwy62ey zzvQA732E6R?b0!QI~J!s3YfC5<)0|*vws+O+PFW(_D6|RC(Pr{f#Z;CYDSqM?KEN6 zq~cOf@`NDs_#90Va;ZJp+gjP^T!WSPN_$v)ocOxj^K)YE?dm%C}0 zs?P=EFNSVh!ufRj>{HEJp1a+Pi!BSs)oT>lpwYk(geLvz-gLwOFvY1OL|Pn;hhJ~% zUoDoGon7u+cGs<-=7J|#_6j;qJ+{R7gL1}jOz8Ek2e1|*5PgoQmhZO*ID1Iv1<5k~)^n?^(-i3NR#uHY(|^@Tt) z{$(veJ~a4g`6FdwDrp zggQtE5dQg#?_@)P`z}D%`~`k*>T1fS@A}#v->$4JPl&`OL*L~ zhFc9qa+#H{ou?v(r?%(TwxJR4TAw$@TKL)3N$1DfFILCJ5(PcF82JQ&U&lB-8btr>ko~{tfKd7X%5T=ckZ_hrnWIiJZ>y-s1OAa&GY3k^^RlM4GpD3 z2^S+ma5k`$z=s04Nqf~b$TgN!{f}Oz1#Y`KE@0if2}%>3gEH{|oYHtr#_Bt%-Z2aD z#u4QH%PBc-p#OL9{_gYg)s326@U3JqBh12O)4`f!F-lIhNVh{@e&M{ca0^5NL7{Sf zq)0qO^9mX)*SoNOgW5ZJglO_m;fktd#YWv6mbx1fs1tT(o>f>6TEoz~gf`n1Omt1e zp_G`h6y7?_cR>jz<7W+_a|2PI8JWyQ#;RjT4#3Uv8eO~r!r?;}4S6t$W&1eM>&LC- zG*O3WJI!#8G7LtetEOG_-P)R-Us6BWN0kf`p2^$6T6X)yeE|Mj(&#`(j3@-ylj4Uj zfWIt)5im$Gvq>fYfIxH;snCo=mNN+hgbUe%1`qg!Q_^Bs9el+rn#~~Qj9^-T!_uN@HLUls35 zk{Dq`8&<)qV7E3KQT$dS{lqdsUjQz~GcNSGz$ZSPscAFi&o=&B%nEgy;QScBSuh$= zO)R-)aE7^ch+Mo?6E^(sm&c}Y(*@R%ooMH&LBE`D$9EuRED%4LEI_u(;Vmb%Nt}z4 z2#z-fOUwx*VLVZyKp<(v1q3lck`0?i73OHue#p2@pSQ=zJKQebAwEiHtoj-J?S`2o z%Yxz`hCFJ{8U_XfJpy^q9QdaAB>FtOe`ilyOP79d_?K~={dvq8&wff|J41Bcn6Q#Y z2FQQBIC?W<{9cw1g&uspSo?RPANIDc%IfUJPHrNgfX`J1kEVuhXwYxCuV&$2W9VDd zQ|o*^MV5q&Jv}eu^)#>~l*=0AUmhfl$sUIJzQM`6JINKjgP!j`PQIzv76$53MiK83 z6mRd3d~6K+`$6_81cRPm9~((K+Jal9=|iCdE+fggq5O)$c-6cT4d~9GEBH4P}Csg9@9ved2Kv9)Zl9xRj`%^xLC0a zfTjYBG&57A5JwycPRh}BwpO__E3q z#U9)Q&nZ5XhZ`2UIA*Vr>00S!~S_bUbBW@Y%fk9d6i*z^siI;$;FsMM<)8=?$OB>}1Xiny3 z`|NWuv)U8wg!NVx?x#Xcd?rwtq?SObuUnHVTDUTv-Yc$5mK(yuUj8>dh*-%Z+YaQL z_)9thDFl9Q0Od(^(++Kt7^dM6Sd2_0JD>q_nw%E#3ZsCeaTz`!A78(7P`?!~$X9^w zR0iU7E7G#+M_HXu+4%^l^mwR_(ZWM&sSpS3bDmp=#VTSLTn^)hUR99MSVa!^Csq7 zuH&bbC`hA=ju{X4skrU4v>Ts`fT5E-?zzWgeTOq49{Ht0*M~}c)_hxp3sgP8&rBO)E$|oda{^DQ{OdJJl?IdGFGd; zX3Rf(;~lnmTHMmK`0xr7S8~={E}(C|*c`KjGhPhL<_%_1yy*qBlmoL$%$M_df4q{k z%R!aNPy3F$YSu_^(re$1D9SzbGz*%EXM+~xkd|D7ylpLYW$AFb6;>&kBXP@}mUv+S zx9Ue*)WYg-WoU?LTH1+=aV-kJ@{e}|qBv9IMEGbb;4H$qbC89W-vXwpaUBEb{;n{L z1wHd}T@2FBSE=$7hLC_PQjlp51Zu(Tukb-;L#1MI!3IWC6(^b)oY)lxL|>XTiCe{d zZf-OC%xeFkM(h*3jU)d@9{tKo6FjsSEQSehrcJ@2YhLzb<0X(Vgk-E%D?xi>0OR2j z)$>1^{#x<^5wBV5IqZDf_1fZfVAu@+lFzAI_JVCxwbxk;z$umRa56v@fStIzcNx3a zfZ{s$ubB(ntx4kYE&0IXuF_%x}=I}UkZ+w?4hOGwL7tH$*}gf_ova{38VJ= ztG?fkqHNg1KXm6VPG8Pcu?8h25U{UBw-uEp@&m1<4OELWbx*IdffnFct9z=#s{xXK z+9^~|mz$ud4j&dd$Jzsv171URn#qkJ39A=F|G29( zXjtq7d~|709)|vj_@z1o1d5bGv`t(}K3)LKH*JiEE>`4FAeb7j#2B_l1UZzi%Lulo zF-UL3FhVANvjhc1ZbfmSN_?t7P@OH`JIY!N$rfQXPE_k~>q*gi9gOLeOI9Nx$RjNr z={0QBNK|OBfcn5*afw%>y&hmH#D^e~Yrt1u!GSqrqF_puTiBs0q^m|ki(;`CaNdQTEKF1o6_((i`DpSRd4XyC( zRJ%pKBRLDLuhnuGeYZ*f=(I4-NaTQ_?MvoN_GKV;v4!SPha!IE#E9b=Cox+IB7j+B zD%g1We|Zik>~W$lpnOydcSBD5-@ZPQIFuTc6+Qf%_wsc5*XuB2#m{5eTzPkE>WIs! z>|>)Cjh?;sE{9%Y87N!p^=#YVgZ6wYniF{{s7yXv(%QiykQbStC&AWzj>kNQl2hy} z&+$#M5L8@!Q*?LF%eUQ*y*7f$!`c*b(bhs=?UfE6yci_gax8TgKIvKh zDmW}22i66?+o|1tohe2i!_Jm|*ATNi!xh0#TRAP4GS8OpR|CaTb7a-S-@uuGezfEh zdwX%K)xf2|`EaaC{J0`oVKS9OQu8S|Lu-$8`nIu}r|@MV3{+R{^Aob;*_FF< ztBK1Uh@!5dw_1ws(v?J%d(EsN1EGcFql1v*Fee9MB@R8cv<)=h6#t7{d2i%2qKD}z zRwbKffzs+1Ycb}N_MUZ6fa@<=Z#x@Q&-lC0AQ+Xn5pqv^2MkB3PC>E9VYfs$bZ;Px zXLYsbQaCN32I*g1Txzm3LZs(jBt$5;A^5>4+p8zCg6MEqVj*RCe4uE?HRK%WPq%Z+o!lN4pJZj`9A1eaRE#LI2Tr%Mfi*MJOn0CRrG7P3sbxt)hXqa}Byu8Ok zVxx&c6UGawaB2ty^o)H_b`JjK{?H2ie1ztrXZQGrRz;za{Y&?+a?9pE`gh!tsd%Lq zOMVHBeY$?j*G2`n4!ozm^tXuMzPs5O@v~LWbS2AQk5+c2M2uKgp+26$Fui}oCT-Y@ zNf$0ZSFslU&ql}lF5|3*#)hDzJM0m%{AifFr4W1KsTYzdKJK5>R4Tzh9Xj_Ci`qGd zAMa%jD6w&^)cu4KN8657BE-`SI{K&N{>x)Gw};!UCb2nwwQMiqKWZWQY>TLC=Qbs< zq_3qhvr1;?gQyd(7OJr=HOJinZHBS@QYhUYK~FYUMJsZwAC92jG*K&ptsP#Qe3RUs ze0`KKzCnVN6ScZ_FHHm_RE2W~r=WIy6Z&FQFH!JVy6!#d&UDL!}DrZ4X75#Q8K z?RXkY+rBZ>Spn6Tq^pRXqy$~u5SysM!@D`DR4CQ@OU4xY;~;pWm*vo-_ItjcV0IGp zUyed;Uox|{wcW16Jcraov%q(a%PD)VWy&Kmub*>e-5_`B5-W8J_D3$-$f@I-__4?Z zMWp?F34u*3=CGZkg6DWH%IvHp-Ga$^A$-$uJ$<9)y7zi+_;~B>`kt?9HPE4F^8i=0 zhcdB(Pwd_g z-_`gPT&7cN!Kxxzo;&+NTqz5F$P#~wql{1d$QkSl9MVK}wB4k)Tr56D*GR9M?J7I) zzy1EJZ&5{Y2Hy!9008IL&i4P6?eV`9;?5Q}CU!3WQHU>VYW-@BP<&Tw*AhgD9KiyX z+H5tMFMgZgt4y+27?bBj?I37JEBL6xw8D+>U)MaRSD>9B5!+6DyY2WY zrLNZXWuA*}hV}Z6s}(c!Jqr~#G3sl#W@uNwRBM{bUA3@_6`#Z~OpavAc8n`l^`@1; zo0y9$j>FN04H}b)Sp8F}SS#dy>DTRGmK`X?RYl#V{><@bGnB|9h;D(@y1hOxr)YL) zwKu-r_xIOd2jA0jZnwNUdF`X(Pg6USPWSD|)d>~z-_PA9@BRM7ZaSqMOnYB}7W3%q z;h8*l9cX$;Zkp)5!zM);bmI6ipax9Y-VyH8!(Eaur zPAWBz%uIG&@TY;``;TJ)6lB;2YcaUsTW6T0z~Co`?Cm$Nid9}c4Xci-OH{rV)A zl^qw|u&WdE=AB-o8xz^AMPxy>sxZhWg2Jel`&(7ZJIJqCJ|9HeVY34SfUE3!r+;4r zWKYi*ZEr>xG&+L)JI~x(1e-Tem8t#1$`@DmuaURk#T>LN)$QPS1K!m2>HX%L(n#&q z$iat(_dy3bm1_Cs-O|>?Yqeh0dAAMAx@C95adIi>jI$jz(;L+)bXTF(qiU;mKhGm+ z%QNWn#FUrMz^r`!7+F~Jx4eWsbg>E9$JvD>;*9BU)Bdi)tk)h{V6k-Acz55*z~lSY zV#QI$R5u(VXb(IBL4>W1>O1nK5|C)t5&8X)Hs8&`;$$d|$}@fsLGueXw!*uQt<{!uVG!Nxe0m{snIX$37QhkN$ zR=m19^L^MN<#V_`*SE&aJI*23auABLNi{^(v-UfP8yg^Y7vent_@5!iX(WtEyCl+q^6<2fMBYPbQ@AlFi&EHe=u@RN9E*=oe z-A?=++dZ{L&}^mcla8jmS}KjG%iV2mtuNQFPx#p$ukVk`R!0|{GVP_=Jf5FL#{_Uk zbDc_9F#Mt#5D1$hL;)z~?KOMO`&_s2q|Y#gXO$T($VRlk0<@aR-3jo7k{)9ep!Q=n zBvsn@T=)>2Y`FDP2OG6$?lW9KGyWJH-MRLMG9+1(D?Z?aWaD9 z^Xk=-gnF_DlMyzdFeBqG^P}H@tj?Xlu?&+ej2}rz|4G~l(1Wz!S#zW(UczV7{88A| za>ya*{((%MZzPqqKm$5@%L#nA$(=#k6~wt|D>Bti?ph^8vbKkBO(?K&0MRf8M^*z5 zs%c^q9F&qNt-f2(J$%Z=a}Go$S(TrwuXX84XVoA7^@*wv>@C1G2&sZOK=VtnSRv%b zRq&yoZDRTLl~7|eBwm&E1*0$d>Q>=^#_~!%0VIx1`c@C(~d30p~c*60OrS|A<4=RC2Sp{230S zaed_D4V8AEcbLTrFSk=PYM=6rQI zCGMF`q-QJgHogMD``AmLKcNz5Ux1+y{cpUPS-2rz_xE=;+Kq1L9_Prec8@G@;_SVT zg%B~Hf&sUhsLqT8oeRGL68jtQr#X~B89qk9z{hyqv!cZxpkiMP05QfU_m3G7qQ7`r zI@I49)84(=CNpvbbz%ZWGnw8$IMUxMKr9deq&9U80eb2swX!gC0j?hm7o; zDyYVdT0>?5##70*UN|&}tF*%f(T|ee{G>xLDfTdY)7v=4`w8Wxl`Pl!HCc+&+X1xa z#dCK=2Sr_Ta>ACu?BjlpFIREAKhZz#{bS__NSi;y=UFTOA3=! z4-HaudKfl(*`tnUh%oYLkXS8A$w-w-iBF-dIG6rPgQX~CD1!C^F^-Y8Z^=lTp?ki+ zQ@4?cOpVs{*3L&su$9FS_%h+TP|?Tr;&YDJh;BPr0OA@?C6Z$qqqn6s2JqbAV7{sH z7dlolc|P)7cG+7=4e-o*LSnQAyn2^820Y7%!5YgEKkE3491!1~>i3TcLjFNKj?()z zA%+&f;8?T@Va{*kshv-ZptP=YJ53h;GhluBYPIvkxkw|X2eKB>M3W+Way%oo@e>B6 zz8lrK4bpzOci#hBKVJB1&=%$S^WEIn2i7jIqq3VkFN^Z?={WW4yE56Z-4E4ye1#sJ z!|mYSoz}1km0+HO6q&+GffJogP;l6gc9^zjaKU3y_EqD0^cvKi8%1~Sk72j=Lhlgn-Glmzk{l!- z-A*60s@8t&bmlSi6?iy~7~wT?<-z^!zbb7$`9ZXo5w!#SVD^sXv*FR=J}5C979N%9 z70X9vt|+OSZyqR!MJc2Qz zp{&y#cttNOvQ&4_Io;9#Hyo-q2OBY4vs^Kc9vla=wfwff#t-aMwqr373I^wqA~rYfgE>v?9Ei9%9%K-B@CHl)~UDJb#O)lZ>H zg={@m?%Cl$YMMkRArH9r8~(_re~9d0vBrc*zm0h7Wd!RP_@RT;W*tPLN|~B?3T}y9 zpP7KsDsnh_%^-wCd7eH$d+qQ4GAJXZmHkZT#34n7GpG`d-mOhUzueZd)zH9}^Cu#kh# zG=SvlT40AmAm5?y4w9W zKezVA!L1UZ%4Df=+^*rYCQC{ot`^1m`Juz^&YDcv4aOxHSG$kJey8cFDBd}MmOJYP zB#b)d%L7W6%Cik>w9w*7!R#Hf;JGgQF>dh2xe00~t&~GL+;Iorm&b)h8-jU*GV5$60`Q9kw(Fny~ z`uV@51PokZk@G3)4uDJbgdCz)FlKUo*eZ N3OlR1IUQL`u(x6tZG>cNB zN~^}O#@-h%SGX7=`o^gWtC|-J?-$kBh^akDCfC>`ql0F0qwPY^!-Vsm1uhPd*;cW$ ziDu24FJU(C&0tK*uB(_v#gqyEDg^DeLwndZINwPjzq7)g_%sb#9_tvrbs{!QRtx9T zzl7*@Drq{8n~h`}HM1hA-b(f5jn}K4u|}+(Cy$Ry$4@Ds-yP`>niD5arB|o`je4}b zA(lEskO^_JyqB8O6Ss=>u}(9+AMabE^z{7Pe`Z(hc(dtvd%uo9S085WO%ms=ZUK5| zaJi|lX^~sw?Uszunj}JZ^Us4Aa%RL}^1$J7UvKl;4_7i;@~;i3Y|;^95K(<6J-0oC zRZp*?P)H6@Rj~m7Wp3Lqdy>*w_E=sTem57$sPpfyW_QnrM{b7C$mpg;AIz{PKOsH} z3N#m+&{;}&gSH;jR~ba6$nN-ek~dL|QxBaVY->G#($V=&fZtG~s#=&On1v$;3R)Gb z8+4<#MhzFqyQ0Q$6t_*I7Ylh4PaY7Fh`fw(0nyQXy(&i->$JS)F^oMXP|@{w>RO%p z9j!PVQk(P>bB!ZezPtZZ3Prn0_(_<6YJtZvw3q8FQhHZKch9Q}$sY_Br?PUT?hSS1 zSuFqIjK^T=Yk^HoFk%XwlYJm^fFppLhYf&b;DI^C!NWV&@jtBTv5XG2ZM}X;N0vX4 ztCFuIE*Xn)8@nW->)Ccx+87O~(f8MuB-v(Frd?P*wTb1NC1*1sNKf1a`Ip$)B~`oR zL_RKYtaE}6I9M%2GDd{j9s7#rs4#$oqVgBbvHdSKD%w@6#tn2Le-45 z8lEO5)ENHy(;%Zh%z7crr{$1iYU1M=Y}04x`TMQ9#*Y8?xDPNNmMm4rpOy`Rwm-*h z9%xc!oHAypKb0I1owcKSa&&Eglvo{Plv`wUGG?t2TRvQ^>Oia4wX(vjbv1o3;saPWQiP^!5`aYCLll{i`ose^iR+6wefMG= zuuLr{%LAHR*ANq(?bak`X5@?h885r2yEuZ70+j^)fE*)zERXozK42$`L&JK$G7ZZb ztR1F87z~2SA*XPIbs(|dKxoQpYYAR|Ea6&&ah!T6xk)*|zk6L*Igk@IVAVL9mwHcO z@pNzA-O=P}9!X9n4tsX~7oN`#*iT(+RW56|x@`KFO>erN^jEHbL}N7z>kvByX19Qb zk;S>b!b2?ri`rF1^|pbidQc=(ooq_qu!EX1jn%Vg@Nelv#eYKSQ1Bg5*31J+KoY~( zHxA>`q9c&@Fs`G5IXWSp^SgypLrux)a@eVE;?+$C5V^g3|0Vn*G!xFCBt%4(>iu^CuP6RU+}XQ2X8Nc5$xK3uKsmlhc)ee}^)x*`-GK1d z@}c#)M9mkYZk4fbFWEFBm%w*T_XGAy^{3#yp|Dvwh_kFMNv=R^_=0D~xA=}Hl|&KO z7QHb-NPrp4T0f*zO-gW(6MH_XJsYQwhm;VBQ-K}In1Mb=Gb?t&PTdd756zf<^0+T% z=z_tH7Q0CSKXfdtiSUJ=t<;_*Tw|X5EJwHx<<8X4RmP$;TZO;6iIFrj>x-Rp+b3J! zz#ny3nk%dqK*XbK}2>2!! zY#SNllNkx@CCmI7-{+3mfNPX3o_t%iE&6^xLRz9fS>32OeKKFXHLiWiL8>Y4l6!mtYkrAR zat`1ZK_;RtjJ$26|m3t@2%>p}tR@6+xK zN3RpBCM{w%(}ZXpZ&b;#)+myhs?05quZ2#wjLtro5x8*A#MefxZ9vv1tsL#@nUM92 z&*wR~@?5)(I2C<35&+2m)qKZB9#kL~Wj2R=!H$|yaIB15uN(}ISqF!^Jy)TKhZiRa zm^)(^R8+gQ7~JcMs*dRQVS%{*kYnR>!Hh^%#M)Jpt68TgDX+9H<(}FD&vL;zDpvMI z=$zri$#Z6&G#e;Ti`sVXO#_c8mq0{#n}^OCzB$7hhnHJ1!i-*7(hU@?aKDtxX1|SO zA!WiuTDt}-Otx_k_^g^|SB3^)@Jft#SGSE;AHN;&9Kh5-0j*c8Avw~*hsx3Yd4ef* z?_h2CmB89&!WW6`jumNZ&T_7I;uXg2BjH@#?X14c0X8#j3O%D6skgB$FOqH1HTEtZ zm!Q4(R-jEpewFo}%Pp+v1)`G6@fWRdWMNZGe!k7MAg756h$X`6Y``V45HAAom2bd} zWaxmu$HirFnP13aDnRD&{Sx$e1cZTd_Gy`k-`wTndSA%!kX&6$>)@P}B+Md;ekNJ? za;rlgo}7(2KQe455`g|bx*dk0?bU5?_D}8;Z^PIMyhlfruzFmnI=7>lWs~0Cu%55~ z_>K4eH=LJkX^VZ&FU|`K<^M-G=VoB>zji*=wSFnJ|JnJ}KL(#HuWExug)UM+qlo{7 zOKu1ph~T0I@K0was87c?5|0`Ie%*iI=!z0)%#_$w$E&0L^X7hea8O>vyad&#oGxl8 zK~yP)wv)aNj^{B<1_!~1nf>j*}$%DG&dC&X# zJ)>!qhX|Qhj1?iPN~N({nW7%4SK4~gxV3v2_m2f}+sU99~V8V&=>`{zL~vgeXNAxnRqi1QTy?6aI(IoQ%xQ~ggR;x(`D|+;QQd~= ze&OFRQ)y7ja%n{AHF*-V;Q@thYbk?BkJ5Gnk|rN*QAGRtyT%8K+zAu8jj^*&ELVXb zR~A*QGc~he1unbdCfZf9Zdz@#SRGkWP=flU9zj)V+EqnyEMS5f?YEQ_%M+ZWc!J>O zp<+iQCAC;vS(X1avg>P_l}sxcg~OWwX5TQL!$=M|V39Z-4(r|ps$)K453go{uQLhFL|H zc{kRLn=$AdJx8EQbaLAT_bMN;+(_mo;vKBmz+iPvuouT8Fre*I9K(w!c5E059%_Z#*_^5KqqGaT0ni4I`? z=#O~9^^hO0c@}`m8;)eVRs&q!)EI6cXIp#&nWnos2hcs&(9Nn_f4ky(lzx^}jKZg-vu+g{aH*+c-y8V?Zb+qG3 z2Jvf?>z!dY>Vk3ehAJc_exSNHrP$zU?O;1tKIqJDfyQhpS}uOQJoq3gVpcMPyj6dU z3?t`Rz7f=35Zs9QcsiLRL4wV}jEUD0pK!`TeyWf!LulT*zdF}rhw`uK-Xf9WtZ0~NDy9Mi@D?+xSoAjUp~rF2Ne#d3+qiH+ltXU4ceG-9A}P>t{X6RM0cJ|l9#v?&~Yb)0GV(|Ct#{vb>(|s zzetTMG23)L=cgkTQt=!X3Zsq-uxg@k#tKL87B*mg}OE8 zf&tStfhG5NmACFez{?at4*OyQ3H|icF=AXaEE&g$4zmO+2CNc%A>n)N z0)!mlQ={_wy-n_4Cb^#3TZ$#@F`iR?Z$FsZzIVxw*uZ*%8i(?95rka5uR97Lonpnk zj2Az3h#2S2f(Y*M_qz8y6Wb!Z8{hA@uWKd`KhxW7x|e&#fgXlSzbFG1#^A!?km4A@ zgUutBkLGTN97!X!F(H_Y;K8^q$Wu-JVz?B=$jehDQH}Ar~8B9no~K6UG)1?IzOcxi8Yq5 zm2z;62NQ8#e-S68^b;brU&cE(y@KjI3Glq<=HC|lP%LSCXIsH@QkF<9Vgu=U95*<# zSKmK&k@VbZwp}*l$Yd0zbAPYMK;Mj#EIZ=enrylEUq{mL`IMCxOob$_wzDkVYt~dr!IOD*G_}_< z+LSOhy%BO__7%&8Xq}%qi1t+Dled90w|Na$YF@mVhRa5@3?k=RMLLCT&V+V))V`Jj z5BMQ17g{HxSn?8p;v~V%(S3H5Ph%?G4Joxl^5iXiav~l8I+n`CuO){_e*H zvZZtIe%PTufW0XXvqi!)vt9x|7UQ4yj}st5Yv6KT1?CdSGNDg}Tm6v7^N_RMd0eB+ z3WAgAF+DM_8EH?A!2o-W*fvo0sod{+^V_%^MCLPkyZx_?Pxm=I2gcvVrxL~g4R&!e zF*LC?vNN`@HTy5=8P}R$wwt0zKYDWYXodN~lF>=pUbKiI&@mLfIO zD@%%dv^1BIU>-5RH@dWPj!Yi{w0uWp<2drjD2d_+GgC7&pC?9Q>qH8uWS^AyA=zVEy-tfIXwf3@@4^z(u-eDiB~mMsX)w~1N$*&){m#XF*G_1dvL3`dH5dkP%CPt5+S{18*hlSU`19T}C&jT`5l zl$auxQQWs;2_)CD`FCVV0PJYVml*Z|kDIt2DxFAD##m4pY<0mLfsRIvPnJX`M9BZ| zZTlc&*Nj>zEkGkHdxl6vv& ze*D#Y;qu8ByEiktyA3~VX!E7_9?$*GI!?NQgeaR9gZ^$pojI&DgP4t3#?Z?ART}gU zug7qzbBHSH)NS|Y$8jSX+WzqU!#zmw&)=C#5<)B-Z10EdGyP=ufRAk~%gD|7MA1SB zn6yBL_>$*s`ToY>Noi_oK)aMkg5IfApVH4{=GDgW1y`%;;-n^EI^Lj?A)A$WQn>)d`6+pCJ3-ZyXL?bfZ~*rFn!9#lDz~4{;qpq z!bbqmFuK?H#joeaf;H==Imh+nDlzLZy}m`sQNik!eq#PDfe{~GshE#e=|r+8PN_mw ze?nYf9`(nM2-AD?Y=G+WYqeQOUg@Lm`CT3^sv2~O=LPZn1N+2**51a{-2r8z=N{f+ zfCz<2(eck5xw)=7h{GkDdryEMbn5x3qG}5ZiM-7F4EA&8&aQ{)_@Zb1xI6Ka8gJ=* zyC)h0M|ER@p!)GmVGDVs{P^J%2BJk*-R{~T*gk>(r45!;fq%Z4cX=Wm_R>KRrQD>D{G#)3xqfby=qcz@kpkuEKh}AYDhQ{OaXyHhONlcJBnPqul~3;}B~JT- z>BB>&6Zp^eKN22VTTUz9S>;x@vxp7m(BZ>Y@Th_9AkZg9pv2$<_I!K#`TcYj`0}yd zmY(25VkK)lz3um`sM!Dt>zsR&aJmM3~)5lWbg zhijz{2G2Gof@;rP0I62Agr1DqGSEEXBuZL+Yyg+qSx!-U7}iMuMORo8?)5R953;X%=CiP)VRPGk#!c`+>tWhcnJl=AEa*2|Ud4UT(r0 zq=xAj_+lH3A*Pmf9FBC1@Cxn@w?a}%p=_bBjY+{ew<6zOPo*Z4&e4Jr>$f5zlfR-Z zg`lduo=yxMa?k$DAw=41%MX;yXpLbE?kR2RW-}iaiYi!*hC94#Y3IWsy9giRklppN znNhGK2KuLRlTf>{0n^eakkJB^!Dz?^WY_CYOX;gC*uf?F5Sp%WphrJoNGQ9Rn!58p3t)3f2!V0o zPy@X>=NczDnl7qaq5wO_v<5kwf*h^v#mgASmWgRmn?29C$;&ad1Bia5n=rLBehoQ} zHbAUEp@Lun+bi5+T12J zv#Ki@>A}Q16+jes*+t~eR>nqH$U$|)FkE!}kiQo!jGKRk<9fg@njBc@Euu7E@noDdib0{L1%#-&|#_$cc_aJ3;xnHc-)pD@2TQ$nt z6m|pBfy+{WZwD^Wik3Y&D@dG1>5VzBg@7x!OgX?7DVkaka>{6JcFrsMK+O9qT0|{Y zRIQ$nY2SnAu`#LZwv$tyN3l@AYcHr;3r!{y{JT60tQF3RI44u#j*^4oSxk|zaRw^D z&hjr`&FI@lp~BW~TW4e5!k%HH&AU<0*&W=F7 zT_FdpO+a}V1G7_CsWApKqmrNe>vs!M4U*u2*b}F>3iCUSZq^z1UiBU|dUvfAnYER{BJS~LUI*x^iC%P3Ej;a*3)P{U>$)bBY)#|`hcjkeXE?667Eyt6 zWbrMgleG7A!lDczJ3qDi*hU%;ECX18fVuSss>^opH6%2d&fM%>QkYnXRXk9MIxjr+ zGt|5Qe5O*NXQXc5WX}Z-G*I#O6=8Ws;mp(t05;TPxQ+e{IFQjf3+0T z4;P@yFV}UfMrBN{F0x}8x{82Ul&ctVj@!be9U&8&&GpeN!(PMeWt2=ua5?GFlb~2W zrfI6pM^~!PQWqO8CEgpf-dr}z)S*iXY8fJ@x6l4+9yspQ%p12hm#8>mJrIt2;l_KGiaAjN)N+nfRshz5=}u_k+FllD?mJ zcuHi=RWqFHRdLmO4(#9g*Ky_;1%(o?iI=ggemohMxlNe9DI8nQ3e78%fWlnO7pFm* znBO2acUS`hdv{TT1K$Y$G!zQN%y63PID{+j=ulCCG-6qraF=tQyF+uZfeTH~+Mw6?g@n%)5Birl zV!*ueloGy@1=IG~@#Kw1{K%1*#+!4%E(-));5&_w&e$TBOrIW|Mh=PpE_|8~F*Qs% zo*IhT0R*QXUGib@j6&~BwPdEJMT=G7DfM@=Tgu^>uT+Sg{S*5Qt;2SsyWY6pe(rLtK+VlLRfN zOKO6 z&8lBjJhg3Yy)3k$bFGZa`P#=T-&AVw-u=YO#5b4zv)$Cpg61LzhBL4$$J=3)xvDVk z)}h5bU^dBI2RwJRNHAngr+w@H1N~oX?$K(9C{Qo}fIq)VL&E>oxco0Qx3z(xiM7*j z?=mJ+#;K7N!T%FkZNQPaEtxAskhsoLA;Zy zkAqkjSM`IW{_5!d{(e7TIS;-)MI-T6xrHuo(Vc3sA>}8GuNBKTZuZI-ymPy+B3lK# z94d8~?9Ka-Rl@h1dg)u=@dB08Dy}6hL0YM0P^4kwyF6s5t<`|v+DLm zD=cCxR?v#TsN!_6`T@kbfE`7B=G76nt#B7~XJ)_>xC92IV1lLqp*|hPJzA(XDXzo6 z{cv0GU1^lJk;NidI2YrkUYi9Tl(IY8GDunz@z?Sxv zY7+j8>;unHb*e3~_UChUB>dGb4De;*HRZTJ(sVI0*nsm+nLvf@x^DPiM}&-xbVb~R z^Z*(4s)bn8G%H04VeOZpY=V) z2|XhC*&*w8YY4h)g|v~u+i8x#w`zFG^h&ZJ6-)&;tbmGItss=nX6C}xZ~?1Bu>MX> zsdoUMGj)OgC?1o@nhiOK6Zjm2KCOokN#vSgW}bYU#6VQZ{S~r!Edq3D1YTu($HQ7L zT4=O}3>u;w75_s#p8UIeAaV8#vwMD{lW(e}u4yC;rKLrCM-`B-r4hg>XJ8SGKw-^O zf&bpY(#?6Z8q6kRXdjK-5-YO@X65+g%%eaMES9=mz~dIz4h7wIj7dOuBmWhX34$Mv zNueJ;xJ*u-349L?s{?i`>+rXMk`CSz8_ZyI8E8TvQfPzxX2J@Q?w?Y2Oikyc6fW2u zjmdpMgU+`@XE0;MECn?&*#CM+$&@X(RHmyXkwaHfvwe5@WBwMj0L2F|q;5w^x`>v1 zbS8cTFo+ERKo|s9U{B^5Nfe#!Qxr6--d!%vjW~k?Mg@2HMDtE=-0L}W^1BSd!Y>QS zmAqKiKU`I*q8}BcRw#e3*UUM_Fi($dDRtSdrgA9uc z&o*!YxfQcatio8II!G^E&?`NZo-Aee5M=*`Mpp%(lmW755d7KnF9dTB2E?`T2Z!+| zVui91*ebIslSAKI1bgiRU@tD1LxmZEfq(!8+VBTJ2QY*A&mE2b77!Tli(?@G0q^lu4%|y|%2`#SQj1>~hxlpB4)&Y0X00sk{3%oP!ht zA|VDKfWS|Sl?vr8zr*+b-v_N81|0 z?uQv=B!|-CNHEHhGbSWzPVm=!N|pg?9+7b1x!ILo@bHf6TvJ;T`0?!)++b->1lME_ z04$}ZHacSmSv{#lqKxwB~6^6o88uZ@oQ7<@#n-unc5@N z+rI=2pxkzhhIcwj5}j-;;m%7rC&e2v@Vnr6ek+>O5CnGEDSv~P{l-C%bwc7i2x8jh z5i5&IEUgW>6prLKqgeW2!3)5Oqyx?Ia99oUAWzkF#OTAaSb<&AVv=R~`67IyW}gME z^~vko9U$vdRNM5`d@4=^-X3XvF|S+9k_ml2-rWxV{MSW9-j4xK_%{#|+_WW zQm^b)MMM(&brN&RGpkQO#&~z=Z!4KZ z5I{`D3s6)ro|L;eh9b0QqmWHU{{t>iAT~BDw57gX@Sc@9;J2JbG6pWy5*+T~#S*$n zjUZG|@3Z;#&LJCV7i;Sm#KD=GPjs!LJGxiFdwYB z0F75fITwu(qLyMk$$ROL;D9S5mH13h6>YBzJPe4+ucMlgY>!cw`I1Dhu@ z7d#d@BacoiKrF1G#77cISBMK&^9Pql0!S#I2Ks&$JYQ!Z&R#aP6#MOIephm)32uBG z&vBkK7!@}SP> zrj90geJ4AMVh#PuN6`dg?(DR_j$n=Q8z02+>V#iht#_i=LcaL z-KBw8owOszE?Znq4o0`AKv&WHG(@rYGLLPy=TpV9;9WZzZ^RPU%3-hrX_{Y+ck(O6 zKZZg;q{Q&z~|49uT^h_p8p^0*#CJ#;msh)$zCZ=RDe=GfYwc1bP!#HS-?G#m8_W*x_c2+!yLs zjmd{L(k9OxI+rbJ#-R*G#0R=Tltj~|SOGPhFvW11Bn$bsyNAbNgC;j?Uk++`5lV5M+TGkih%gwBuq7T142U{Y!h)qrBo0Mf zX3vv^JAOUGUUHnt)J(KdGz>u3!)t0^`~Sl(KkJO0;w{~dy2BA5BNL}vitt?*dUWil zB=35oO*CgyXc9+Fh}XNrY3~OU#^?wqB7D9c1^0z66$5KuMc*IYjU;b#l{>|oot^)x zW^c5P0saeb#gXbnVv*%0S7_or+YwagCf2N~i0T#>w+q`D)U8i&!n^^`$kol=%g!HF zHziyY@Uq)W3pQLg&hLCk?#&Mv+EprFOeo6nCHf{bE9;3JT0DeSEL8&_iI(#zYFWd7-;}p9Y!C0J)}0({4LnB*>qni>oeS z30k6nV95|;@9vmUR0N}_nnpbz($kLwdv3y|vi_H}Kav0ps7!1B&LyU>@+D5rViRJ2+i0 z5ykpw43`gKnZ zcgsvhVJxi1i$<)8$faYVkqhuj=}n$|!_16MMc1a?4h?@cwXWE?{D9* zgL_B}(AD-WJ;cDoq~&KzA%!F!xihIxD-jW6oW)`@Sv~cG8=WZ^IB|S>ITf&5R=qyl-|BEkKFlz2Q_8T+?%LvlH}94A22u$Ryl`yw0rQ4Zxjxbxl2gK* zUj*&>N0}nJ3Ek__M}W73SRd#uFSmSHR~%2JiAtiS$S zB=siP=SuN!9>5|3008CxRDHPXxj30P>KXs$q}!Sp|3`+KX5+QVj2zl~surG{7+g#s zyUGd&J@*6(Wt8kfuTLkC8jBfp2(n&4L-%n_{;cp=q{DYbsCVN;Eyej#zg4+|WLdNL z=}4SfypF+|Ic-`TiVljzE z21*PVd{qr)8f!~Si#7u-V%VwKP2hyF!jjs?lT0_|d9)?usj8PkXa1D4NG4sXiCTQK zlUB5rh=r0$%hq+EU#hkY$L*Sul7*Qg!#)eEsoN?}Rx;yw*`F3?r=OS9u90e*%E~s9 z);(&q7TTmYqhY-OSBP!9iRP@t<3l6q8>9#o+b_#m!VaO_x2T#D*@dmCVf8%=KBu&eWz6>M`L^aa!`6;v`LD8(r_P1*Ws9_|P6p-DCwWX< zah}20Tii0P))gx2t%lMo&n@yxmL7DCLKjjXsyh!u<5)=7TIy z1sY)rWz0}1q6G`&%9tUNh4L22lre(E^Yp;|DK>uz^6!^qTUFc zvfdP?O)E7{ZF+VLe5btot{C0Yc}~crcd2(Nc1d@McJX&{b}@I+c9C}z5FeCIh)&Yq zFdm#v(58e=j7|_A(me*aO?<~cBRxhwGv8nzARn|&luq2HoK9Y*%%-4EoKE1U@G|Jq z`5636zX!a}@t&yQbeVSP$)@x&zOmngj^yI`c)zb+gPg{*8I?}#rgk$hoJJn)R%O+Bxz()%s&GlK8BAG^JJoV=>O9N@w@nA!Wq%L*xxu|ya-+-pZ{wB=}}^i zOdt=$=YP0BekXraI4hhJD~J=s3*m+G`M(C3-_0NA&kE{TjG$o4?(J>R5NvHB zPYdA9g_pax`|JDp{r)7|Ty;P{+*~@^Vtaoy?oAg%AFC&c3I}{IFt)YXO<@`R;kc)r z4*ZIcm1v`1$f5dEKQjZisBk;*k_`*43{1bkaxV}AVc)foiPt7xA(Um4U{Zky<}KX5 zVhmUqR#}%@b9FpCrdpm{3A_qEkE8#Hpw(Xu522|WvV;+3oHg8am@c0F;n0;F;OLRC z`IRBWL;39-tbcdUTkA>P6bRlIqkqoVje!1P434ur|E4fUvSh#HJlSBgq?Wy$`lsd6 zS}p#8a`JX1a$j^A(w~1xe%jt<4x*gr4++&0NxCU^DfLUz7YTbS` z`i@{m?15*0kJ^d1#eV*U=M?)+1y`(nL8F8%3>lI*OL$B%r5q>CmF&prk3q=p<+yV?QcJucSd4v5_H;(8S7BgdBMUHI(_)iEZb> zBFY8BC$Z)j_kb)?hE>QYx)S9VS_cYATmXfFB7qc1LhgldaJD!?+5;7|3ha+Hh}c;d z#am}uawAN;B#<9=u9)Bd5r6id`3pqI=EV0qccuShaR2|BzcM1q0>T2y0y(PxJNRry z&taGz2Ey7xVg>e3yo&~7mFOn3_yX)l^4x-kp-=**-qri=t@uPLwi&dxPXhmr)63TV z4I*FuA&Q&#I~gWb6XhN;m#JFUFc9Z_{q?{5*>#5Nt@oB=Q=LAYAp7nfUhtq|TP|hNk(~?FQXC(&Iri0c!dVK%m1?eB$eczeIe;X> zIWXlm;c_m*1v{DgV?iW7L1~MZ)eZCA^{SPQ)O19gXWis7YLQp^PNQ4mp#%|#D#T@dW{%YMe6t*^@id%pP7aRA@&_SH;BDiU<6<4G|jem3c2FC}LvgW(+F;AJ>dwja+ zO^e1FeRO8dtVwESrRy*23f_1xw@KeVnK%rnq^=v4LNE?FV0jxna9EhG&j*9*sR8Ce zqA-L68=Q?X{2J@|f0(}r^+eC>CNlx~_uIh4moLKuGZT`0TGVql#3HqV8w##@>CqM&mGjko;0?OIFGQP2sXu<8 z=&21cCaWr~e`|Gc9PJVNr>t@O@y`Jr9oy`#bH%oSpgvM{%(pCX!m_kNj#6Ecrziy8 zqRS-JUQh>u?vU@RiSbBc%+B5saMtZzV?+?Pi+CrZ9@!A9@oR)-@mn*Ay-uwtq-57> zORdmE!A`#YE-y%GrtV*n1}3Iui$;MU!9cv0#)2ur?8sa<-+kz(f{lif} zjLX8sM|1k)3&G_}FZ`?3a;^zpdurPN$Cr$ndro_s8osnI;?79G`6^Y&9LlS)&K26^ z%$mdA%Sgx-S_}S;>V*hnzHa_p2YM9prAB)1ZF4yeqU!ty6gEv;@eUuWLR!XV=7}a( zhtql9{XHQz!pkFX`Lf8?A0BnXMv>;mUA@Hq6&FsqaS9SMYf5vh7$Qys6ohz__& z$%zQ^Bb@Lay?>m#6tQ<)m>3FkT#crx>&cMcaN+#7=d++V-ry!Pv^lcc6(=CQ{|*3Lk_wuC`|$FTw~ygzv!bxAQX*=Hk?azoz`W$0fH4~|s6W}0AKwo@3A zp_iuXXRLTFDcw)U5XuPqNoka6l$Cvobz&Xi>j>kwbGj)+8hYuWe%XrGG%sGtZ6HX= z*1o3s$Tl`KFd{Q4H&`4HibF11_y2Q&z$ z6%f_K<%dUThexC$8RZ$i($Tz#+IZPVr&y*67Uy=H;!62R%r%rttv)oxl?2{!p2cl* zX5;st?Ilj?0RHU<2DsvX{_pp{d4z+t4amaS$=KrOZ_@VBEkpeOg#W42?!g23OLpKe zOF*gke-i$+n25q_(duUP_*}_p2Deu4a2Jk6?fqwhBu()#P#jRYE{uY$580VJLXIj$7nD#way{DAeKW_A}W$9-M2?561UjM|K%$5XcY+(QhFOXF5D}nJ?Cjqge|V zRp5vYnPp!uuzi?#usS?iV$$I2@%)jLRZ~4O+G06~k2vtGuCy&4g&&Q;;PU1bTWW`& zYq`!wM-hoBY&_Ie5RR+{uB)x5x39yGDG0$bok0{uQwYe@1g>#Gd-&0CrW%&0Dk zvWiM)DB*VNm>lB8Rcy}A2-r`4dHf1HlM=&wxQAic@^3G|$Vu7K0#=Akk=MaZC6;j> zkftZ366Ko(Oyuq%8jZ-`$5^R6L-xTU!q()UZAof~evP3DmaB{lJ|0J!T{0sC2c>Ua zr^GsKye7dIlP$4%@iAMXJM!BX(rX-VE7jgl6Z~KwP^&N?Ko0sF!GwN7G{-QwjQaEZ zwOma;7klTgZC|@%xEVF;KBJLm=s4CNb{H0oc;AnuR<_BffaoS6G|FS5CUJZM(Yx)k zC_Tk@WYaG2L3J=z`XGVUlTvh`O{-YSrx*OlYPd;6ABTGB=quIPQZ3wDNr+IU)S#Xh z4SF`p_~&l(90l}Ki)L);tYSKwq#!!0U~4iLe~UG&!18YjAZCsXGdI)Fxk`*@n*Pev zNP_!f4M?zrEsMwleEhnDo|`(UTgPpOw-(bi)+d|@gH$l=*T z3Ka^X%zT+sz8{`oCVaBP9pLKnxQ?=RIS_ZONqOE|Qi-#I$axY`Wb-;wO01z~NZ z-rUA&Q?0ZRso28mFL7`!t=4&9=A~|MAR2V_bA*HC2)_IHmLMg3nMlKv?E=O8FzGw5 z;~7#QNu1mCIm@llng=P9StA|zaz5&!h=;Cut>`3i)sK?t&6hHD#73@YCl^!$))#fY zH{&w_a+8V2X_(b(o{G65i#ay8ZwVY|-fj-&_CYb8eU#it$do3Bd<*B`#3|XrlSl2e zj9gyptL}CGPWFhIv(d)CZ;~r4|FyWxN4BF$d(}nCk?xlKU2p?6>^BpHP-{oj8Ud;k z9;`I6L0=r);<7jGEOUY+X8g#Dr*!+=slRmMq1MLPKQm~tNh7DqQE-3QNYZL0UVVU` zMQxgG{ALMTyZ4PpFINl3KsGN^FFa>3mMM8@muJSr)GgR&nOexZlee*gUPfGRjf?;x zsA9U3tQb5?2k!n$07D#aI+n&1Gnq4naFh8Ax;@UlEgn0n#Bni!i^q53BN6#GsTR@~ zEm4vk?|D!=et_eE!=xiFipW(r2c(^NITyDgSzP5=i?Re@V$Q%yl`LGZqHJmVX!%n@ z-5Tgl%`0)m3ZVoV)FwlChrjmDuH{6*VyrVx%>T|M)3y(;E^F6_?6pXH0Pp@WnQn1h zx@Bqm8MH038*EOWd&v##WjxhV1CP6Pq7cT3W8a0SGQ!EH_?44(Azjz51er+Xz#zxs zI{#0HyBEk;TQ1~@P(+aF2{s)rzR2ykCkj}LU;`6NU>hF5qTWSl9mlA?gx^tg+9Qhd z7x9QbWqD&OyNq+$UAQv4;i%1n^4A6lH#R442oTPNGM%rS)sA4fch;_scbA4Q$?d?l zT25%h1#$ee%HAnrAXf~H_c_h@MqH3Zh1gE+qu|^sQE_c3e zF^^36HIX(pK#Nr+9f|%8=BtBcqzJ_a z%P_C9@jB#kq|SN?lV*?bV(OGO_f6O!0zG*sX!h)hI)vTqM-mcZYac zi?y{4hJYy$J!SNIr_1cKaeu9AbaHRFm}aLS=O=Hx_5{S4!grH;pmYdZ{?P ziKQEvJPesMdAvk*FC~)M3ZEe>hrA=;!4X`v_DbpS?(#w|3Mj(0qE=2CSgq)L;W@7= z4o27c(oxrJE6Ojl!eu5UBb*1KV+mfRx_;;+H%;WikI;2t3~z|sl}&m4T17e%vWwrX zA=lk88 z&ey9DU&_SzQ9P*&yveEMK-X)V=X>SWx*IFC>$VsAP4Lm`CaBaG2Zy)=LrIb~*JdWZ zBs*UUY;ZZO!8>OfQ|=HShiQ!?K1eM)wJ^VYuKVn9D)*ZiI~*TlUc%lN2&mc0wyg1k zdb2y&36^3IVauo-ltm###G2z`CvqL<}^gdVRkd!aijgK>0@iQMO3*MA+Rh8s|nz3#^lG?SZ@(-6kT1Z-9Urb@%8K4+x zSu)x2!v)XDF+{c?(yNa8o4D~#g}hS@C+;V#sn5xZZLK$qR*-)4HZA-EoL7(F^!fV% zvdCoYL<}&buMi%wW5w#0yzb+>-o941E{1reGxedT55k@Ch1}C>|EN&uuTI`j9*ZcceCg*Fr?asN%(9QylE5VRJ@gMza+-I|lCH z2__>gJhSH)ShJA~1p*DnTgR|f7#xu~VMSuFxfGw$3f1_zQu$>*Jt4GOV%x3c;PRl|V zZhJf`t8D3h?wI6-W@E#th&t~VnS&IULVOOLZK_5_%#pWRAvK}*3E$u2LLDohd66L> zo5L~Rd4||_mL%5(DqZWvLBh+raVWm3ho?=QK+bUC0>`K|?p^0-yhY@`@OtAxn#nqT zK-_!(Ed?mOmCX|NmankV;@SBXle}^a4QUh?M$e~4`o|lorYv4h@2O{T_FPCc6m;%t--UvyDKBWd0g6zCwpG>J%VI!7!_MBbN9nD&sAVpzK|)~ zxf~Lcu{&+Z_HgX65v|Q_v}rU|pvlh>#W;{JPqqPT@<8&r`*dKdVy;W&+EK<^geXsiH`BT%V(T&zAv%~` z>ge8$nIG(6ZXuwBv4kOA#cSyT?&yN+7RLfhW<4@^F6l1SbU3TB=Y@L_C-FVp(gwxuAC#98851ceT z?+JopYvGCRj=JfYdw`H1po0T3y+BSSl>Q`4tV7gLzeS3Nt$?jS-ac>mrBa*#dv(|W zM$=*Z;W1=qrI$Cz9i;(=5C&pR{wQT1i{2KZvvB}l65 zP10=y>1e~{i#-!*y>^|RB`{AX%jmPcQwm`o3df;#ye%N%YU!MP2O-c{-j;ovj3`3AKLcpmk zV{GgJdef%{`+yISU(-J}>yq$y=t@Y9cM*zv70cWQ&ROXWdZSy7T_z)Jt3~)UQ^G>D z*tSd!gwr~Z-9nck-?C62!pfr5c0~y;Np*qR(#A8smz#ZUzg0c)_K&jn%k=*>g!lWB!T_pcp-Ex)X>9(?!06mLThc_W4V4TKTMGXlRwoDb{0J^X%^ zF|dFBvWDynUsbF=oS%UE;tO{n?ayDnF0&T(Quk&@ou9MoY}i#}*~P+z4P(+a)0TwW zjV3yhQk;E3xjf3HWgOFJ#Uv*Z^PPWwz>Sq#Azno2!c0=F?ubK~Y4<&s-`XS2ueCdb z+G1J2<59IhQfjTF=|X-^ay%}}qk`*I^h!>k&U%P+?}Cw-FsV$&*bqgFZ926{YIDOe zG~1x(P2D`+bFuL}e6Fx&cBdTDZGVxB4|2E57`k=L;v89$p3hnpx?Uc1ej2%(hLeJY zc&SSkNNDH2Vy;wnpy34*lItXM(o8FL*BM~IC@5tgOfpl5EFjy?cMx1!PO1W}vXQ!+ zyk@jZ%xV%%dU8%TscnN#t@RaiENH!>5q&x8F8&6T zCmQnO`#{JqN%K-z?8B5?1nuDsBDT-({Vw^YSkkGGFJoY&$`L#H0<&>Oi#@}xrk^Q@ z5Dp({YfcG=Sr>#EY){{dY1u7slsckb&FG1>XxtaU6o~pxJLIFZ_ZWDk+g*^}MqzQ# zstB$ii7hWFU0BzZoacUw4xUEraKpo3ZVq(3*LGe!TyYW$Foj7EAlSVH$o|F1^Q7YCks48aUmB(rcKZXB1Ljp-v|dnu0#8&*QAVCx1IyUSeB$8Hi37{9eaw;B}#WAh<@safU zuS9QrXkam=~PnRYBDbk@dLdv+O1q$v+aI6<+Xz znVEVsJ5yXSrakn$dM4CZtj4zL@0`&%oXh=b_mhdRiNvI;mdN_&jG)ZvNVIry$!_%2buM)%#3@8@|4y4*GgWoKF}}T?K7FIU}tp_ zL&0kdMVd6slAF;eDruwexiUEMRZR0NMR>~0Kyq5hL)9cC+5a zKux|U+DtZgqIdwQyAYLKez{t27T_leW|FQGHM+0zEg&bx81MNw;g42^s;(XU6|3HO zF$YEHZd&!mB^+ug5jC++MJv+Mr*CJ4BL1Q>Y~G5aSkuDPsO(r%C^)e|;bWz-wsjWe zK`-6)j25KI$9JoV-`DE3_O$RuCtqSzBT|11%IXQ=pD!0He}67DzD%sxT7CU0>+|t| zixSuJF(*itQ-b(TGcLy;>wK|r#ubB&c{4JtA+|O8&(|nsQIS)A2&QDx=+)xgkek{H7 z0d8<43{x~QqF_34W0Q=v^ghiZi+B8Cz0rZW?QJHN1W@o7)I=59FJ|lZ%T3KXo(&Eb zp&V?Rk@-SurTX4m@inc$XoOLE&Nmk@E{gOZ?d5VItMU2>=SW7E5V)Qqz_1i=^ARgA zRv70JUDKI2X{|rAnd4~3cBe}ggR5yZ)+DD&YkS&%wcannp7udDHjbK9^!w`KQ)l2velfxV=(PH%J{bb&|iY>d?AkTOSvpiE77z zyFHM^-Fsi$o-kwMS@C*qhWE#azpFh5_Zc0Vms)aJzT$40r2IjmQ=0n8v0l*k7Fr@M zbsEb|1%`br!rqiH^>?fZibF7R1~U@db(uxeKH{d61kmpV1Y;>0`AcUZN|qQ_Q@AAR zv?Sx4W6Oo?`;IjFy9J7+cmtNs8{ahABXF@+U^{9iER(!cXRUTUWrsftjM(o~Ovn3S zH-Ci}=!ta*!`n3FRkEX5@co|R;Jzj5!1z-+w397vdE`ttR5;TIPB+bc{Q7UOD7QlN zt1kvyi|uQu^FKm&=Oz@oI!%Q@Mf7i=q@g(}u24DUgi!4*r=f#~ zh^Q=#%iIb2zLAI?uRafr?Z3cvs{KOcS}(zS&w1Os&Xw+$b2ZYp#Qxc-$&ICS02&yn`GHutjx%uU+mXbBIxo zt&L9*7-k3z9Fg;OA}}k#}GSaNYFPFWe;COh}ItsA$(7F|O=Q@av0e zV}vGDie%%Od|E--C$@GK2a(RFIYpoZI!X-_`E!Td&MqF%P2^nA`BmyJuKXv*M9WNI z@wo%NN4=vRtkMGR`UFV4FiOV0W~A&o%rOM!_DRf)m5%GZRQ5LPI4>PrDUO57sJ|Z3 zE3tpeJWh#EdCniN-W205YuzDixFFM!a-Wzi%oOTT)4PSX^4-)pCGe1z=4Nr^Q0r*+ zZSU^>Wr1vG$!F~!Kem(t^eGxBuOscScRvM9AorYVlm1w%a|xyu6T*XS=<%lM5|oM`iZ21xp&xPIyHB$BUB_>^+T^=X@9d;dDmfYES6-%! z?5-lCUSZ!%V9(mPgO(vW%k!l~s8`1W@Gs@3!;RKc3%@G2kFADVf^Rp! zJu>xWF3z#Wau4VhueI{2^5*20c_;V@-+X-4%3 z{V|6gA>7rsL1BTpp0=PE93gSz_#!EFxNN98tsi{+lNhrz9D*l%8KT$K;DXgvf022i z|M>=(&IdlKojo-1ts1HikTc-UK_!fQYS0`G_U}hc`*~Md1GaMg+fFssQCCnmkvgvC zN580GM*BLw$5t{Dlwp5oFgO>vU`TV#_4c^{g4isvR!zhO9f-S9hak)qnd9!m`yR0- zZ3U7IY(H516p?J6=a0Uu$N~t^Xmk8VxTQV~c|}Q(;l;9LHqtMg-HqTFuWWN0?J-KH z={N5&3WJB>y+yFPQE3(knj|wKE)st58%+x$zwVE%7>aDN&m=&Iu1$C4k@LGE;4a{H zpL%<5cT4KUUI%g){%Rug*42RvBhU~gXtx1J;k`4`&MTPEu`Na?i_2?HD_$`1{*hrl zJoJ;>#aupD2_kGyJxQH@HF8Kb#+}WQ>Z=V|Gg6F!2)lGqtHpMx2aT6Y;R7P!Oe7lT zx3rK|@MOwT)UMGkjN2t0acZE#&4#V}DR=q0+$_waV0bm|w}B$bFToYx_&apKPgCSoIH_GZv^)`hlotbgT=f2vAp^RTkeD`{jZ`WG>T7UxcdLRUf; z{_eH7>+WT@k$cmf=9PgXZJ%Id^DAF2%d_dyo4VCj^r_Ei>4-=A4Gl7 zuT&TsaSOMXt?E$BnTf+#@s-)_eoF>AK`hgJ?dzE+Cxj6!;4iRo zMCXqPGP&X)Y&xtK<2%0;N54|^eZ^r7eRVSvOp#0XHO|)4AZdHE_LDQ(CH{?Pudiqr zWx@!5u6~3lOhV9U!%aK;r{hekad^T*Db;zKLJU@he>u7p$Kv)SEn|IxjPkAW}XhiDxM{XzZ_WrV~FGq-w5(-l=^vO?6gPCk;408ZIs!qARL=R$)40)Cx* zw^R!bwB;K$0geS*3;kJh;p9}r8)7V!j&n%v(xdG*6#DV<)=bnr+6adR1ffIY0n; zV>f7MH1{&~G(EcvVm*(3ddNES=Kd(=gQ*a{n>pA$jF+xc^3Bn}8RQ`GK{o9X%1e;F z7#-&52bz!Ca;GRgm0qH>@NMq|xu+G7kBKXb~YX=TwhdNjAu+u0%1q!!hy>wN(t?D>l29A>JvOspI9R9Uo&_)q%)VHVr z(#@?XlR9_eOHjL}PLXIWZNEoS1E@ zWefKuL<79chPC`0bKddal3gz7Vu>RzJx@6J3`3d(P-OAwL@)+i<+30kDaX*MHNI;G z84LwzZ*`tP2+(~mczjcURO5o1;h--g@o_&!eECdLlid2KF`VJ^3R-t+ z9h%4V9ku(_zWbxbvZbFyOIOZE;MGR98gf=8(Bk5QrMUTo()^KR{t`A#4; zVOXW60_O_`IV=I86Z4&jT%Pwbb9jDI=(!{z(TRP`2WOdEY`sgt~3K?CMN9Nun%pkvSBfL#5JLF{w=grW3zUE&9 zK|mEDj|L7b-BG_A^CR-y8n(rCD>dy`~FXlVC>dup0;g6F;bc6|IW^ia%)xQKwEWpEe0VyWIviI zwEC4wB{OxPbe?*(rFnevB@55j=F$f~J<%|e)+-_rWHiFlrYwIH$z=2n>*i?A^81~SkKrO|&M5G~1D5UBpe{qD7 zVtY&&ewZ>{=;X_ci9OSs_}m%eBtGuWZxLtWVx#(#S5Z?m@O&TO7Z~T#h`S82Zt?{lCS&h9UkUXLfD%GJMw5F+^pDmmtHtEAPZK#NOC%H;zZVQBnmZXDC3ONLUEWY z<{QquyL4Ge^~QH+{8 zYPt@J71-W8RE2p=>GXEQ`1r-QtYkwO`&zMoIGMVPN- z;vtE0Q>$j@^a6zI0!wQUA)0xEE9O7DQ`7ig(-uH$ncn6@^B7 z(XI{m(!DXmm?xI~SE6vV@O9wpKI!A-Y|wQV#D>L`OpCp_=Okknd;8g8R&M^DjI)VP+2&`qXl+1xlZ`4XHK zh3aD)Vu+Uuv04@nt#3%Y9?mKPmO>-E`kF(WxqE85jxY*gBkR9?$Qyana~KFVblZVi zBTD24e+N3d*u&GkP8d@%WolsXUFRgUp&N_bb8CPw@18X~Em?thk9pSwZuo8?84RKQ z(T=1Nge8!EPIWZ`e#wMTVEU=LbnicQI|A{9rTZV z+jX>7-dGK_OU$G+j}*COy4K4#4QP`UyTTYpX1K(ByzdHzomf`wRthmOkfc6#&p=ss z6p*)n33(RgAhG!BjRyn=Rj9r|*Q_;dQ`Y73vb_Of?Z78G>L&62cw4iL_NoXhFpWw9 z-`e@y++dq3XHJNRaN9fG&9p+{%d+-z1~u|8K@R9~#gx_DP$I&vmSgmWL?gzl;qmCB zJXfBfbVUMcEiWu75}hI?j6gfh`oyUw#NX^G>kgnC*_%7k8I>e$`vw>AbMK(9Jw7eJ zLS{IW7c4>7pWlwUG>eU5SV_OZMy)A!2>H|1z{P`x_layt;r4%e8Yj762l7O7$%oQ5(A>hgwLH>K?mpxnr=lw1R!we(i5=0Kl zr222Hyx>b) z)JU01^AI#kQ@klmzh)|%qKy2IbELM88z5Q~SZ$0o8)H9!b*?x$D}({x8kkc7A8yM2 zD5apFbDQ0EPsh_ggcH}RktB`A_k!Y^IB#%w5S6I98}6v`v4V~WU9xa2*LAbALazYW1F+?zwJVKr##r=!l zacHhfI6b>dgU&w95wDTqV3eWr8fp6(DxQ3(j(*j&h+d2ke!Lc-zWBD2Lojm8R4DK& z;l06>r^j8R!Nu%#_Gu7v#ez)j`0C%n}hW03;90n(gVFC^4;FxTyR|}Q#GZA*Zn2Ig%JIO87O9?d`JyT zckM`Z`ix;V2`|)4+`%8PB=*^gd>BgB3|$)Ak|&~zXbLalYzWXR&LCUQv^^plVb2L- zdc8XC_xx@ryluySaD8Yqcd16Q-_wkk7Q1uUtXS?r_%ZnmV}IogBimP1lHc|D1LW1^ zFuLBR^QSsON)!E5l|qVWb42?vs3rAb$*jx_-&yBZ%P&`=0%Ehe=6e_3pW9-3(+A~y zzBy&DM>+8_d>%JKJAM3`%(O;@su}ML6VVr;Q~dtKqiW@|$O-bzXperP5y%;-0l5)#GsX)~CuH3p%Xq1wPA4OTXD8qS9kUJID!)sJ7d~{^ ziirFedFLgB^-*dKN_Gd8TTI8kf^hpF+MV?k^-$0qON>V*SD#S(mC!g2B<5`DY9vEiYOH29E;OH-@rJ8VFs_WZ$pLC~>C;8@+yOgr* zozxjZ1g#ZRxU#K&rn%$TUvdu9#qS@idR>zp?np-B9&Q4w24eotWB(&Qx`2f zW_?hJea$XDh4tyO(Dtr;!4``Mdc~xvuH0ybTZ*e6{WM)-H>YquN16geN+?IVS$d*XQP?&xL}jt!R+_wq3;)7kCj=`-%z&6M$8*hlA}~Do@?3 zyQ)))=d!2Y^&Fp7M%FJzK{#37l07r+o_s%379(|L9ewlBS|!~BU*#5(z@t9OLjHEA zByjSTWs(v;HsLxCgl>(tV-D`4HvO<~iW0mnpA~Gp^;)ktQ>RH$tL|$R;`6USVd}BH z4N`H{BnD(BLC28NL&N#gSJVYuhb6C&?mar!VM(7`s!f9!!D3#QwJL7ILorP6q*}ay z@(#xvveBea*uD79>}ar1zRndG*mQ3E-O-{b`cjZ_QArm?8)p@Fxfin?xA})*zA!Zr zpL=1|$0pdx@W|o&qAU+#&w(DA8uj<%V7T8Xw@iwih;oy1zRAHY-0I^tb!I0bd5W>X zF6diJ{a6ZF`p$Gz*NSC4fm`69b-#V1xcp$l16$wBqUq7R=)v$wBqyLY4+{bn=P`iW zi;&*e++OgW*6tOs8+{fU#H+(is80&U$IMf&R=9KA@_I(%lz`fYU#KORB~&#akR$-U z0)+^!gsswnIbQuDXV9Erg5HGW&0DDfEHBc#jJUf%uFF~V$OfoXlY%~*)8RHB405TL zfd$adrdK|fM_XaRing3(-zv_Nj;4V;P6B?|dpp6AX+ZH`D%P+ShhvL=R>_4uV8Rnp zTZO^<%wuH0_`)M2tCsOwmd|5U6UbfR1pL?>WXRgK+%d-FAav5f!zLD0D5#r}<&Gvt zpM*9+7`7}R_}HTI_&H;nAwdrQ=yN< zN8Z>jAbTE?k48~e)%Lv-=Jm2g6qG59qQ;JAM70BQD)kaC=8?w}xrA|U{HyLSsz>b` z>&z;s&-e{>bW7*zApLpfVWvH$xYJ%7nsQeOK^u%G?ooJR$X$!r}Mg-xj)ETV5VPZo3;TFVMboOMhwl4%oGcE!C_-EH8)@%%8Af zgST|?3}aaSu4%>{v$N00<`Jbv$YRIO~s$>-a<=fV#X28CbUijHh1su8s9 zQyh?>dG3imfIlR6f+wu1_l4?89zB1Z&PW2W%z%Z|edhX_F3BVBxxI?rwJW%HZgf`8 z(xMcvbPt!s7h93O(1@|{Jbh+w_Sq)b$}ox=iW;f{LENzRMN*t&f42p8p(d-zs@2Yh zjXt#*Lr><)c%rvnsGK5_Heyu0gC2rBqzrB|^UWZyJII?K)wmvDC}g>fd-a4oCqgrs zV{p3oA>t#cP8;=kT%oW?1+q55*-Xd&EO$DkHy@1ZRWd5Ogznc8U3E}8+c*~ulIZn5 zPU-eiGKM1CP=H{L=RRKv)OBLfEJayl!CJ5$Fkac^d7AY3Kg*7xEb?{YRKK^I8Z$gB zFz~9g*x?Oqn#6h(dboQFeBK;HUrEpGG-0!^>3d@2DrLU$Uh&J;(0=|49vsbR;|7tO z+LS@;BjlaUT;{$n+WP&BWyyH~^*`(o-P)8caKzeV?yU&27n3MV?0GP*{XLu9rHt7q zXb_I1rO~b^2=l|!QTfLC?bbq6B$`JwcJ&uh`A+ua=4%bsCX$S?NV3Raw-#9k@|rDP zv+MSD$1P{0$z4vpDx2~18qFqAoSh6T)0cr>awGM&>D;o1S>dQOG;^J?Z=+0w;ATw8 zEv6F%>**4Us`ar;X1w&T*mBuE^B9bAY2-M<=e1yez-ZA~O~8E6osiZ{%+bt4J1T?a zHzmH2#3hN_$1mr@MLt~AnZ2H_E*m+yf^D#D;XRls%n9CaKP~GWzRj1|==G;nfsUa?EbRM%_gh(5-DI2Bpj4M4c0hMhFhk@^-H`MvqYMO1^jA~g(tPGl zB5NP61U?$ivx7cjB2*;m)+BnEXf85bWCxDCUd8>v2S-1?`U8H#v2y*HD{JTF_9On~ zi}`oCC_B?>o{+(;9NOTn@cnE$G|R9rmL|~qjS0n;!56XeLYCY!D6>YU4YDrpYP*}3 zccrvXhC4qdiI|alb@P1;RkBN*^}9%y=9n)I-d!xAc z;kgMx@<49R$f!>owlUfp8KWUhDwm>@FjaA#6IVkNSZ|g3Ex5kN{lR{YBU66OLJdLz z??S;TZ|01XP3^Ez#0_6}5><)1<*Q&Y- z=i+Fuom3*8wZ$EtSHjLC{NUfmr>9VY*X8j>bEXNqzvZejuk;MizdG^qAa$FNR$6U> zalWgFBU8Xrc4M#&2~`bRYv`OmB#g|+RB($wG99{W?m!71KlLPSCCapqEnS0MIDb>Y z5qV<8P zo1QY>ZVuuGpX*9=Cv6SS2*mD@RKf@T>N~mIMgH!`k(=8V&6vqnB03lP^7cTxCh)Uw z3BjLWu8nV7Q>3_hCCM$$@EjSgb`7?uz`b<1dmcew-mq7y_gpgik2+Nwp!?Keh!a$J z4RG$#HD#Ww9jQ8mIwYCoNok@9BxcqE$K1$1x^%WmP4v307a-lQD6Ly4EzHnTo;6Lw z2W7B}u;7^3V&zi~yw?)q164efAbTIR@(YWt)k@lp)Q3dq;`REYlODG;Oh6iN6C2TGpA|(O5B;|Jm;tPL!G!W1ACKzj%s`zubJYYzN3pQ1#KFwcU4cgML&i8eFiLRfA9JsKK`Pj)OBGuEKeRgTfppS3jhi=4!M_F~B7pTbn*5le|Z@$Dz{IMzhhW+L~=sr^3hso^i zbhCR}O8J-N9k)_5(o^ZLxjP~X#SnA_9LY#y1M%`PS&o<1N9EpxQS>gS7|5FJ`1A)o zCL$SuGgF~H`)}K5Q42QR5~sLwg@(3Dm9J|(1NKIFc9*tXi#CI$!8u${4o< zrZ=mnr79^hQXk=Y=8aeTq8CuJ{Y@`A)UBJfphW>}ROMUBjl^&-6XD3`ib-SIaAd-cVOI#EiKU)D&=$J4e}xn}$8UPmk`0(i90;tjJcQ!aCCl1t zfKhwP(&4MotwKn>t1IH#{2Zh9CU98l^85G4Q<+ySKylpA#c}Ezj(6Ed8DeAP-;wuq z0=aF|_jr3ZV6a6{#kzcy7vs8bePnCX7UF|aEfkbaDYu?<6| zkT)9qZ)O!)Bn0e~c{m$e;rg8S%gr9COc>ju%~B1jKBlQc?9VcNd6Ci;O>S#)TWoYu zCB$oBnR?iiaxgklht<0~DZW2&hl;`@<%W3TqPJU|`lj0f1j07XSBQOMNq|Cm*iJ)vCt= z%44wuJFkCA@K4M0Z2*w}`DI{xp|PEnzQx~Ukd;{^r36koTqgMMHp>5pfd!83`4wZ} zXl7vqGPZJhqAzKhpdSPPXB*fBj`a@&xaavA0d-t{%4Ob;l6hZPKr z=ody6(8J#t)>bBFrjB;{4rbO?Pq4ZdEl|a%!N6ofe^(FTi{DvB*3MQI*7`q7$oxJ; zLOz-kTY!c$fO@JwcSQcv@_bVif5#ZR7#iFB6z69#vfn}e%!Sd^j9_2{`M>L@Ui){D znU#^T%M%P@m2q_|1TZiRK$4$ZUjJ!%z8Dd|Gc2qP|D&3xWH~EguEPdKMH0~Subpa0 z{GDTCY{SO#%0b`sDUjfXr*#h;7?>b1JiiKrQ20L}R~tL)cgBW4PkH)XIW*~*JFKW+ zU^qO$^-r&Wd!8>`+3y@XV|!~0r>D#(aC2m<3sCV!_U|gTZU3F({MH!Q2K&E~3_I_# zy#;qv``gSq+GtDD1m;jD;2Qwz`M2fyK0kR1rSIrqZD?(2 zV`2OUlXl{AAEiVB15;)GZ$Z3&hM7G+m8`UE1_lmV=f7v1 z{y*F^IPl+R8_-olOC#$)nzzFXOUN`}^Kk<(S4jRL0rxy#XtJkZ|8Z+J`gTA8rzb{% zKmK4g7$AM1_}xGksh*zlfE|@)XG4LEpjA9#EQ*@l*EB3!>&5 z2Ap*%VDn_Z;51qP2lrpa|8ly??{@E5o8r6%c(DAuz7+-Auzs!0i2=7rSZEVe^UD+ z%ghR}XN#xYT%fbn?ROxO)BwZ!t7v!Tf5ce;1&N*z4H>L+Hw{pi3)=4kfad&1mc6mQ zo#9hT%ZY&zvj@DUFAxWQm2A)R&$PGJ&QC}-`%Sd>4ww<~z>N6S1E&W5k>zOhXSHd= zNhk&b!aV{}^Vj)09r{P$pF)j$Kg|OW@4y6ri{#(A_0wgh#r_Vn1RRpZUtP&0flAkV zz}PSWVPjz&!X0On<6ha9iN zsVV?S_p85b$^Q%Pj~>oYtP(dIP#d}M?~{V8>@PeUJ7XZqK4mKNir$AnB@r-QAp8Gy zSPwdW2ih6i{w-xHI0#RmMg#*3ru$uW@I6nV09&(nuyZtYu(o?DT-Wv!Ik^LQZrrQi zC9@uX3I|9BGBLAws*}rW!g_dsv-AWq36fvTgmV2)s6YFWS?%ToK|ozqfQS3ld_A8* z{FZwCRM}6#?2VstzA--p6CVK=$Mrwa?-JurBnLZvL-Qx|F6)=#gcpG071I3O*4S|W zMEje+{HdsaCfBe2@*T_XJVyt!zk9efr}$kOz?0Vi6XDm$@aYdQeH$AivnMShI687) z2vC_R;3|K$Sw#M)1^bzq>pwLDI2mMhO@K!O)~J4)pP|xEql}D!$@Jg1vnPU9z!oMo zGoZ8%fcdM=0u`R-{d17s6EI;x@U20>YAJm2Q;Y7L-pkM(#1)Sr*EzkEu_R}=Li#ggjSX*1zgZ{Ic^hAGA zXR8ypfcQBFtg`*u-w!!YLjhy80Rc1p2^c;k5wb2Yn~eWw9C|+f0p@D+v~9eC;|PiX zqRAN$O@Mcoe_Ng}sQ77=quCP@(PC%!ivwMQmigT>$eMn~I2rym(?Dr?6Z0PESQaoH zfsFLumgk#0`V`7Q-%VftDJ|{w7T@Lo3vbyhzpua8Og;rN{m)t5zrW4O@lCEM1LEKV zlkryvEwS+w#nRZ$(9zCJ|EXMYEAp$SAz-6hfCc<&1XDXtvFsfUoQ&=4pI!?**NF7R z1uTjINPB)R)c(`*e4Wnz59VZSWn^vlx7=h21j8l>0M2M88HPo$3AX?frYj}{zehC`ITbh`g3vR=@~)l-h?m$q%miJ$NW{VuIf;~bjQvZ zD0ufYc2T}a{^nYHXe13iY zKg-Vl_j>ZTk(N$#ErbAk1~L$zNPZ!P`u>dwERa1hU@ll0SRnxE5$N2nFQNVZf1&9c z0mn5xnWXg?G|2&rS74O?6Vu~D{{sBeqI+PX5jq-xs|9*Y_DgRe!~cf+Q$F;)CgOV# z;7j}fHwoCqzb(&KHR7+l|GYL@JlW;bZx49?UuS0?*VL88@!*P9MHI!Q)gXvU6$DqR zXt5yHeMM^>(l8r0{#*KhFifcPs+(jC-j#6=HRjOFG($-x;N8D>w)Q%wTR_**Q zl6<_+dtaD&e%^<_{JwL~J@=e*&t38y&AkC*qvK5Ll_E@%%OsgG9GTF?ZS@nkpkr=A zSX$7DSt3x43O>tX)hb!zYS)PRUgt4o4uU&w>uNeN#u4j9n5crn4QiPcDW7lG{_Pe} zYtTQm{ph!dAo=ZXzHe9O9stJTeV>wXNv;U6!hS@=~BM5eZiCz04`kNo+MqJiI9#P;2M0C4>GTW3Wl37Y64mBk!g! zhfu|M>0IG`@7k2FCIr$-rI9(^FFWBi>UY?pFM66**DE1NBR9vXtYWSr;c!}u_)N-3EB;p!*tBO>5% z4kD`1PUokQY@CwFNCLN3f!Qo`S#r)N0kh4>k&a*;r-M^K{B_s|OyEP2HLJ}=n~5)L zrhNRq+7iiQ)ST!b=ph%ya)}fE>@mOr?^x?CL91yw#Mi&(jujM@9t*tqO%6sMO__B= z^)al+03FctqW>6pSkA$p5?5=XkM$ob8PbZ6d@?x!mvG_G{bqfehx!mZpL zE_7CXuCsY+MOc^6FphZBHoaQd9pV*3Jb%jMuGaOW-Fu}YeU0PFSHHuVZOf3dHb7{k zfnyu6ff|*qY>gAn4nzIez)4yQr?s_G+D;k@SNFqUp%+OT!C{${ z1}kg&P^S6iS1GEB?ZSi(`5hG-rIQ=f3Y$(XN6u!bSeRk>xu5UHuBb+;Wc?+Q_EdkE zO?<2}#jMrov`QZJ)el=bOhQOngdG5MdYLzcPgP^FGl7R(7@yN@FOVZT3bSDKEI#se zU-Os;_m4>}!sNX(#H53qW|0WfW)RnD8?V!S%YkhHQRyHzV+9{;)yTCxLB9(-822-X z6OjkgA%53-5u(kUptWdt(BJnkOyZ;^Sv?JaK{?V-X&+zR@y^0ddLS>wwt{SwGpxMlXlXA@v?(P%3TJLXHn$Yc%+SYrJdUwry@2*SsnwZcZmH)q4R zD~WsFGsQd)fuAoB%5^e|jlwFAob2*rbmp3jDbItU23%{+iji8a&1yD}{nxE99_LRupNia)w|FF3o844TffeAfd~U zK4-(ou2!2_$z0$ZcKJl(JY>7CJ`^^yR;{{BomrG-t*PQSk%eU-!@8t)n}|1?Y>G$toe}`)mlmqJCl?B>4G%=%hUqq(c!ot+ih3_z1M|KJ@ zl>S)LzT;5%2id1WHAS9agZOc&(`?0o!f(+!_zAjNcBF*ON@A;N{gfdkSMvdyAq4$9 zvmUc`No+OcUoAYb9rpS23gLLZA6uUd;%ssDFIB%d2#HA1pU%!NPhpc}3akN}jAqeN z-j<9I)o~z?Ah{aIm3}5 zz;C-AhkfQsx6l*|){k)RAXpi%7LJJWjaR&HBOw~Cef_(&PO`&(Xm!=WZ*NJD>eu=s z#V4qXXgvf;;iJ9oxK_EDv!N+$^ShTw0L(zLBz204zYhB<-v*RDX{>r(H#bqx*1}M; zE#^Csk-`*H+JZ;ZYEUUm*0Y9k(;g3gpNR0#e)?N8ykv3rc)+66~MA<5lc%VmPj|@60M4H9#Wi z)89jopC=}ASQQ)Jj!_1o-5%w7;7 z%nL`n;s9L>S}fg_p4sBH9;W7pQAkhj26}mMOb<16l~@|4nRjK39lUIKA37QC+EARy z$)5totlGF9z~vYp0o3?->@5mJN&s0I{W55n;rM$PaiuUDDMh^8Sd?f=VbBNwu!@JC zDuy@Z(BKJ>5sNP2rRLUXh)tW4OsJ8pi8&vK-R_Pm*O@eO1ooSQ$ z=bUtb@LvuGot$`d#lIfAl$tr6m3}t_L zDlSWh5A?z`pBB03T{j=VwqsW6>T6pbbOVMk0TCGGEZ5_(r%T-sUmwDe>v(6f_InI3 zN7-a{yfD0PYv+b+L8@)#IK0oye|bGZkL6=LAggsf4*T6cZm>xjtyN{gJ~Gy*SRI}? zo~-O{fHBjH#_c0HT=;lZ<@N|sV;(uryTfQ;w?of#q%ZDQ6|`DquxMB_?^Nx^%qW1% z0H()YQgl_o7CEaDt-6pfcogQio-i_66CMLZs1@7j+zjhOMcJDl1N)$-&?eRlsS27i z?mX`VKfQorL3$gZ9xhI(3O3Hj3e{_;W|nn9a&{5bW7^VQ##M!itwt)ArL`D#XQvFs zwIFPMz%1MKIPA&BDsyEzcE*wuf6;Rp%wZ%(9zC7|ri#Fm$k=-eZ!wIlxx-z8r#feRbX>ngd}Fd3KEL2{wOH( zEm=u(wQ&Z~g5iS!g|}NE_FPA09kW~4wXFQ|w=v7UDmb;BDc8kPaV} z#l&z{-J4{dk9~~MSp*k_{%}1GdkgF!eY1d5(J;;?lB1owei{X@ad3@LJ^eQ`C5mhsZ)YUMeq8q0esMi~#RWgoX z)v8|{9ky5^SzN2SK(G%^GiaE*bnVVTJy_10No$f1$5Q%*D^J@O0OGtB~GGngnn^*>_e5cLVzuPuU<_BMBF;feES z=n#LZFYL)2q)8hm0{mfS+1@&Ec4_F{Kni#@XS>X5jIFu(Axb3Ov??g>rOPPD@; z9y3MnMwz$nj9qJoLC=RlV+!ng9QI9fXsF(zCN?P6*Y6cI{0AbE1XFVXOpC4TZ;nO2iB)T)dx4E;2s$aA2Z0B24ILtlbyIwO$K^vQ1pTmMtEKSxG61VS>}^ zdHBwTY$ebf{EF*w*o!yPFxPno=uNJ`Q3>Yl8mgAwQ9j_|WRak)*_-%0{!Jel#n+Dk zCx^92UBVI7J=)C0aTf{_7QVa03>w*1Opjp67B21eK{*==%?$Omc{s80LlOcZ94+6D zTpm#`=hf1ij9mSqVsg_+=nrn@@o3o6XVaQhdi*pxOThBk{m&Q?Z_;!^f6(9n4{0%} zl-S6~uJ_9$a#sBVom&PS(gmFSVjhrJz`5VWe0Lf$%U_Y5(Au+K;<5O{Y^X=|tTC{W z(RgXeBJK)kDpR-69%AFaz_cqh9?4@4+^8RT&c|Ut&SBxU8La$bA%fKl8z0n{e2CFM z7Y>gui(4KrMdO|Ekyfh_YlG%r!a32PKb|l_ywkDux5l2#fTyg6`V_6Kt@6MI4%fc}yz#>Tdgev~vP1mk!O7mvBHzqm5j`#IUxItC#ZXA{@lM1>3lk z1GC^{nt=&RE>J%p{sQ%KfsvH05WrHbM!oorP`#en^TBzEUZrOWsVkW*PL6Mk+3R0| zm=cRwD?OY(U&Z8b3(z?p7pEH`%}c0@mT2h)CJE&xR?+RZrnY0`t}Q!Ei#CM58<`xQ z!w>hlaC$l{Y8nz=x@osIF+oXYWRff^nDft~_?{5w4%QK*P`dMR*t2qJ5($uKmZ+s) z&H2~Zzkt{QW%)Z%`0KDY-N~g@Mj~b!G<#$C4>(6I8Gy#pqdRsN59qvgOvcmR%JAT* zdB{jR!eXVAlw0yRP-nT1F^(kO!RHk5@MtDhRj+%AUTuVnxQvFZrg!nkWlX^h4MmiEtd&-f}l5Ve}ach9>if)Rv1{czBkkV{Sh#W&B8JCbw>`(f-uRsoNi!V{O9D@gCDY} z0ID+shVW?OH)Y+P8=hiAcdo;LqRr#_C@zuQw*FMv4yn^hXC8bcA>7f&7*pt}{-uahTHS;#h+sAojZs(~u*~K-NL`?A>!b zlul(bGLwbQjpi5<;4O&-AWpTYaOnb;TCl5_Z0TaCVPlP~T%0VEJV8c9M}weG-LO%9W(`cz{Z13> z>9Pf4Vz(9IL|l7Bi7V!dcYZQ=>R9B_OQTSdrM?oW{2#xfz-CxnSHNmZnq|;@3%-&T zf<0u^SMHhr$FJy&Niv=4bLK^)3;&iiWjOG9yqG|_9*2Eb8v8TOY(Y##%f<~EKLB3# zON3E6Tn$ZkLuKE-K;&}vY?w<((zEBX+yI@M3Poo$+a}jfABqp;Vp!7r4r{B-*UJ-B zoNaJ_>VLh_7k(-i-{?ijU+}dXJ_e=?7v3o~G7Tb#L9Q2Fb;)jhebRPB%_x+F`cWT} zt@}Sdq$T&nl42?E{^OChYx^8%m=7`?dJvnxWq*(4OJcTjuIMvODBMD86lIW6xE_an zT&@UFG(CCPadPJuAl-+gel8+0pJO{kn3xIMSfMOZzUZ6>EF}ed9cc6R+%1CR2imi} zw257z!4}9BX)O-S7X@;ot#nw_{8Gdh4_F)B;vWx)5^;eF!&g7_>$x5CBZ;+(a2{~4 zPy|P8mq8md^0?H3jQu_IFRj0zTOu^8RkiRzxF4ZA`6`mNMm z(M*I$%4sYCFVuQ*b{$5?8B80Ih`AnzeS9ksT(ZoD{h_ir_+-Odmy{jDrTTXVKPpT^ z!^y?DQWuqYg&6+|Zl}=j;86S{XGA(_4e`d1!5@DVJ# ziD6T;+JPL}km%8oQIVq~g{b5qxBAI|FyN&Nk@g@CYV3gM=)rGtjzXmJ+b8yP1w(&yeNJqa2rFusL6q}6DuOg|V}JACxs&?lIK prl75FmeqE66!CZ?qdyupGHUoBG6s+vd4zkkkz;3#5~V)Le*p=*bJ+j@ literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/virtualenv/seed/wheels/embed/pip-20.1.1-py2.py3-none-any.whl b/venv/Lib/site-packages/virtualenv/seed/wheels/embed/pip-20.1.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..ea1d0f7c8604a4cad61409c8ec927d5cac5e5c0e GIT binary patch literal 1490666 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 z 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