From 3717170bb9e6bc0ae9ceacf1a9dd4e276697d59a Mon Sep 17 00:00:00 2001 From: Arnel Arnautovic Date: Wed, 20 Sep 2023 10:58:30 +0200 Subject: [PATCH] fixed regex --- config.ini | 4 + input/request_names.csv | 26 + main.py | 7 +- output/NIRA_Austria_2023.request_attribute.tf | 18 + output/NIRA_Belgium_2023.request_attribute.tf | 18 + ...A_Czech_Republic_2023.request_attribute.tf | 18 + output/NIRA_Denmark_2023.request_attribute.tf | 18 + output/NIRA_Estonia_2022.request_attribute.tf | 18 + output/NIRA_Finland_2023.request_attribute.tf | 18 + output/NIRA_France_2023.request_attribute.tf | 18 + output/NIRA_Germany_2023.request_attribute.tf | 18 + output/NIRA_Greece_2023.request_attribute.tf | 18 + output/NIRA_Hungary_2023.request_attribute.tf | 18 + output/NIRA_Iceland_2023.request_attribute.tf | 18 + output/NIRA_Ireland_2023.request_attribute.tf | 18 + output/NIRA_Italy_2023.request_attribute.tf | 18 + output/NIRA_Latvia_2022.request_attribute.tf | 18 + .../NIRA_Lithuania_2022.request_attribute.tf | 18 + .../NIRA_Luxembourg_2023.request_attribute.tf | 18 + ...NIRA_Netherlands_2023.request_attribute.tf | 18 + output/NIRA_Norway_2023.request_attribute.tf | 18 + output/NIRA_Poland_2023.request_attribute.tf | 18 + .../NIRA_Portugal_2023.request_attribute.tf | 18 + .../NIRA_Slovakia_2023.request_attribute.tf | 18 + output/NIRA_Spain_2023.request_attribute.tf | 18 + output/NIRA_Sweden_2023.request_attribute.tf | 18 + ...NIRA_Switzerland_2023.request_attribute.tf | 18 + ...A_United_Kingdom_2023.request_attribute.tf | 18 + venv/bin/Activate.ps1 | 247 + venv/bin/activate | 69 + venv/bin/activate.csh | 26 + venv/bin/activate.fish | 69 + venv/bin/pip | 8 + venv/bin/pip3 | 8 + venv/bin/pip3.10 | 8 + venv/bin/python | 1 + venv/bin/python3 | 1 + venv/bin/python3.10 | 1 + .../Jinja2-3.1.2.dist-info/INSTALLER | 1 + .../Jinja2-3.1.2.dist-info/LICENSE.rst | 28 + .../Jinja2-3.1.2.dist-info/METADATA | 113 + .../Jinja2-3.1.2.dist-info/RECORD | 59 + .../Jinja2-3.1.2.dist-info/REQUESTED | 0 .../Jinja2-3.1.2.dist-info/WHEEL | 5 + .../Jinja2-3.1.2.dist-info/entry_points.txt | 2 + .../Jinja2-3.1.2.dist-info/top_level.txt | 1 + .../MarkupSafe-2.1.3.dist-info/INSTALLER | 1 + .../MarkupSafe-2.1.3.dist-info/LICENSE.rst | 28 + .../MarkupSafe-2.1.3.dist-info/METADATA | 93 + .../MarkupSafe-2.1.3.dist-info/RECORD | 14 + .../MarkupSafe-2.1.3.dist-info/WHEEL | 6 + .../MarkupSafe-2.1.3.dist-info/top_level.txt | 1 + .../site-packages/_distutils_hack/__init__.py | 132 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5126 bytes .../__pycache__/override.cpython-310.pyc | Bin 0 -> 251 bytes .../site-packages/_distutils_hack/override.py | 1 + .../site-packages/distutils-precedence.pth | 1 + .../site-packages/jinja2/__init__.py | 37 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1619 bytes .../__pycache__/_identifier.cpython-310.pyc | Bin 0 -> 2094 bytes .../__pycache__/async_utils.cpython-310.pyc | Bin 0 -> 2731 bytes .../__pycache__/bccache.cpython-310.pyc | Bin 0 -> 13965 bytes .../__pycache__/compiler.cpython-310.pyc | Bin 0 -> 54568 bytes .../__pycache__/constants.cpython-310.pyc | Bin 0 -> 1555 bytes .../jinja2/__pycache__/debug.cpython-310.pyc | Bin 0 -> 4011 bytes .../__pycache__/defaults.cpython-310.pyc | Bin 0 -> 1355 bytes .../__pycache__/environment.cpython-310.pyc | Bin 0 -> 53405 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 5554 bytes .../jinja2/__pycache__/ext.cpython-310.pyc | Bin 0 -> 25716 bytes .../__pycache__/filters.cpython-310.pyc | Bin 0 -> 51204 bytes .../__pycache__/idtracking.cpython-310.pyc | Bin 0 -> 11106 bytes .../jinja2/__pycache__/lexer.cpython-310.pyc | Bin 0 -> 20456 bytes .../__pycache__/loaders.cpython-310.pyc | Bin 0 -> 20539 bytes .../jinja2/__pycache__/meta.cpython-310.pyc | Bin 0 -> 3835 bytes .../__pycache__/nativetypes.cpython-310.pyc | Bin 0 -> 5030 bytes .../jinja2/__pycache__/nodes.cpython-310.pyc | Bin 0 -> 40321 bytes .../__pycache__/optimizer.cpython-310.pyc | Bin 0 -> 1975 bytes .../jinja2/__pycache__/parser.cpython-310.pyc | Bin 0 -> 27702 bytes .../__pycache__/runtime.cpython-310.pyc | Bin 0 -> 32168 bytes .../__pycache__/sandbox.cpython-310.pyc | Bin 0 -> 11987 bytes .../jinja2/__pycache__/tests.cpython-310.pyc | Bin 0 -> 6709 bytes .../jinja2/__pycache__/utils.cpython-310.pyc | Bin 0 -> 24528 bytes .../__pycache__/visitor.cpython-310.pyc | Bin 0 -> 3994 bytes .../site-packages/jinja2/_identifier.py | 6 + .../site-packages/jinja2/async_utils.py | 84 + .../site-packages/jinja2/bccache.py | 406 + .../site-packages/jinja2/compiler.py | 1957 ++++ .../site-packages/jinja2/constants.py | 20 + .../python3.10/site-packages/jinja2/debug.py | 191 + .../site-packages/jinja2/defaults.py | 48 + .../site-packages/jinja2/environment.py | 1667 ++++ .../site-packages/jinja2/exceptions.py | 166 + .../python3.10/site-packages/jinja2/ext.py | 859 ++ .../site-packages/jinja2/filters.py | 1840 ++++ .../site-packages/jinja2/idtracking.py | 318 + .../python3.10/site-packages/jinja2/lexer.py | 866 ++ .../site-packages/jinja2/loaders.py | 661 ++ .../python3.10/site-packages/jinja2/meta.py | 111 + .../site-packages/jinja2/nativetypes.py | 130 + .../python3.10/site-packages/jinja2/nodes.py | 1204 +++ .../site-packages/jinja2/optimizer.py | 47 + .../python3.10/site-packages/jinja2/parser.py | 1032 ++ .../python3.10/site-packages/jinja2/py.typed | 0 .../site-packages/jinja2/runtime.py | 1053 ++ .../site-packages/jinja2/sandbox.py | 428 + .../python3.10/site-packages/jinja2/tests.py | 255 + .../python3.10/site-packages/jinja2/utils.py | 755 ++ .../site-packages/jinja2/visitor.py | 92 + .../site-packages/markupsafe/__init__.py | 304 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 11271 bytes .../__pycache__/_native.cpython-310.pyc | Bin 0 -> 2019 bytes .../site-packages/markupsafe/_native.py | 63 + .../site-packages/markupsafe/_speedups.c | 320 + .../_speedups.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 44240 bytes .../site-packages/markupsafe/_speedups.pyi | 9 + .../site-packages/markupsafe/py.typed | 0 .../pip-22.0.2.dist-info/INSTALLER | 1 + .../pip-22.0.2.dist-info/LICENSE.txt | 20 + .../pip-22.0.2.dist-info/METADATA | 92 + .../site-packages/pip-22.0.2.dist-info/RECORD | 1037 ++ .../pip-22.0.2.dist-info/REQUESTED | 0 .../site-packages/pip-22.0.2.dist-info/WHEEL | 5 + .../pip-22.0.2.dist-info/entry_points.txt | 5 + .../pip-22.0.2.dist-info/top_level.txt | 1 + .../python3.10/site-packages/pip/__init__.py | 13 + .../python3.10/site-packages/pip/__main__.py | 31 + .../pip/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 644 bytes .../pip/__pycache__/__main__.cpython-310.pyc | Bin 0 -> 606 bytes .../site-packages/pip/_internal/__init__.py | 19 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 765 bytes .../__pycache__/build_env.cpython-310.pyc | Bin 0 -> 9609 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 8392 bytes .../__pycache__/configuration.cpython-310.pyc | Bin 0 -> 11138 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 23135 bytes .../__pycache__/main.cpython-310.pyc | Bin 0 -> 630 bytes .../__pycache__/pyproject.cpython-310.pyc | Bin 0 -> 3549 bytes .../self_outdated_check.cpython-310.pyc | Bin 0 -> 4589 bytes .../__pycache__/wheel_builder.cpython-310.pyc | Bin 0 -> 9151 bytes .../site-packages/pip/_internal/build_env.py | 296 + .../site-packages/pip/_internal/cache.py | 264 + .../pip/_internal/cli/__init__.py | 4 + .../cli/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 285 bytes .../autocompletion.cpython-310.pyc | Bin 0 -> 5318 bytes .../__pycache__/base_command.cpython-310.pyc | Bin 0 -> 6261 bytes .../__pycache__/cmdoptions.cpython-310.pyc | Bin 0 -> 22560 bytes .../command_context.cpython-310.pyc | Bin 0 -> 1319 bytes .../cli/__pycache__/main.cpython-310.pyc | Bin 0 -> 1383 bytes .../__pycache__/main_parser.cpython-310.pyc | Bin 0 -> 2169 bytes .../cli/__pycache__/parser.cpython-310.pyc | Bin 0 -> 9956 bytes .../__pycache__/progress_bars.cpython-310.pyc | Bin 0 -> 9245 bytes .../__pycache__/req_command.cpython-310.pyc | Bin 0 -> 13546 bytes .../cli/__pycache__/spinners.cpython-310.pyc | Bin 0 -> 4959 bytes .../__pycache__/status_codes.cpython-310.pyc | Bin 0 -> 364 bytes .../pip/_internal/cli/autocompletion.py | 171 + .../pip/_internal/cli/base_command.py | 220 + .../pip/_internal/cli/cmdoptions.py | 1018 ++ .../pip/_internal/cli/command_context.py | 27 + .../site-packages/pip/_internal/cli/main.py | 70 + .../pip/_internal/cli/main_parser.py | 87 + .../site-packages/pip/_internal/cli/parser.py | 292 + .../pip/_internal/cli/progress_bars.py | 321 + .../pip/_internal/cli/req_command.py | 506 + .../pip/_internal/cli/spinners.py | 157 + .../pip/_internal/cli/status_codes.py | 6 + .../pip/_internal/commands/__init__.py | 127 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3148 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 6189 bytes .../__pycache__/check.cpython-310.pyc | Bin 0 -> 1582 bytes .../__pycache__/completion.cpython-310.pyc | Bin 0 -> 3149 bytes .../__pycache__/configuration.cpython-310.pyc | Bin 0 -> 8331 bytes .../__pycache__/debug.cpython-310.pyc | Bin 0 -> 6686 bytes .../__pycache__/download.cpython-310.pyc | Bin 0 -> 3996 bytes .../__pycache__/freeze.cpython-310.pyc | Bin 0 -> 2662 bytes .../commands/__pycache__/hash.cpython-310.pyc | Bin 0 -> 2161 bytes .../commands/__pycache__/help.cpython-310.pyc | Bin 0 -> 1322 bytes .../__pycache__/index.cpython-310.pyc | Bin 0 -> 4645 bytes .../__pycache__/install.cpython-310.pyc | Bin 0 -> 17804 bytes .../commands/__pycache__/list.cpython-310.pyc | Bin 0 -> 10371 bytes .../__pycache__/search.cpython-310.pyc | Bin 0 -> 5375 bytes .../commands/__pycache__/show.cpython-310.pyc | Bin 0 -> 6128 bytes .../__pycache__/uninstall.cpython-310.pyc | Bin 0 -> 3119 bytes .../__pycache__/wheel.cpython-310.pyc | Bin 0 -> 4851 bytes .../pip/_internal/commands/cache.py | 223 + .../pip/_internal/commands/check.py | 53 + .../pip/_internal/commands/completion.py | 96 + .../pip/_internal/commands/configuration.py | 266 + .../pip/_internal/commands/debug.py | 202 + .../pip/_internal/commands/download.py | 140 + .../pip/_internal/commands/freeze.py | 97 + .../pip/_internal/commands/hash.py | 59 + .../pip/_internal/commands/help.py | 41 + .../pip/_internal/commands/index.py | 139 + .../pip/_internal/commands/install.py | 771 ++ .../pip/_internal/commands/list.py | 363 + .../pip/_internal/commands/search.py | 174 + .../pip/_internal/commands/show.py | 178 + .../pip/_internal/commands/uninstall.py | 105 + .../pip/_internal/commands/wheel.py | 178 + .../pip/_internal/configuration.py | 366 + .../pip/_internal/distributions/__init__.py | 21 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 812 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 1869 bytes .../__pycache__/installed.cpython-310.pyc | Bin 0 -> 1246 bytes .../__pycache__/sdist.cpython-310.pyc | Bin 0 -> 4458 bytes .../__pycache__/wheel.cpython-310.pyc | Bin 0 -> 1613 bytes .../pip/_internal/distributions/base.py | 36 + .../pip/_internal/distributions/installed.py | 20 + .../pip/_internal/distributions/sdist.py | 127 + .../pip/_internal/distributions/wheel.py | 31 + .../site-packages/pip/_internal/exceptions.py | 658 ++ .../pip/_internal/index/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 239 bytes .../__pycache__/collector.cpython-310.pyc | Bin 0 -> 19318 bytes .../package_finder.cpython-310.pyc | Bin 0 -> 28127 bytes .../index/__pycache__/sources.cpython-310.pyc | Bin 0 -> 7132 bytes .../pip/_internal/index/collector.py | 648 ++ .../pip/_internal/index/package_finder.py | 1004 ++ .../pip/_internal/index/sources.py | 224 + .../pip/_internal/locations/__init__.py | 520 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 12399 bytes .../__pycache__/_distutils.cpython-310.pyc | Bin 0 -> 4667 bytes .../__pycache__/_sysconfig.cpython-310.pyc | Bin 0 -> 6250 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 1549 bytes .../pip/_internal/locations/_distutils.py | 169 + .../pip/_internal/locations/_sysconfig.py | 219 + .../pip/_internal/locations/base.py | 52 + .../site-packages/pip/_internal/main.py | 12 + .../pip/_internal/metadata/__init__.py | 62 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2305 bytes .../metadata/__pycache__/base.cpython-310.pyc | Bin 0 -> 20859 bytes .../__pycache__/pkg_resources.cpython-310.pyc | Bin 0 -> 9875 bytes .../pip/_internal/metadata/base.py | 546 ++ .../pip/_internal/metadata/pkg_resources.py | 256 + .../pip/_internal/models/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 273 bytes .../__pycache__/candidate.cpython-310.pyc | Bin 0 -> 1425 bytes .../__pycache__/direct_url.cpython-310.pyc | Bin 0 -> 7298 bytes .../format_control.cpython-310.pyc | Bin 0 -> 2750 bytes .../models/__pycache__/index.cpython-310.pyc | Bin 0 -> 1242 bytes .../models/__pycache__/link.cpython-310.pyc | Bin 0 -> 10174 bytes .../models/__pycache__/scheme.cpython-310.pyc | Bin 0 -> 1041 bytes .../__pycache__/search_scope.cpython-310.pyc | Bin 0 -> 3496 bytes .../selection_prefs.cpython-310.pyc | Bin 0 -> 1703 bytes .../__pycache__/target_python.cpython-310.pyc | Bin 0 -> 3454 bytes .../models/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 4370 bytes .../pip/_internal/models/candidate.py | 34 + .../pip/_internal/models/direct_url.py | 220 + .../pip/_internal/models/format_control.py | 80 + .../pip/_internal/models/index.py | 28 + .../pip/_internal/models/link.py | 288 + .../pip/_internal/models/scheme.py | 31 + .../pip/_internal/models/search_scope.py | 129 + .../pip/_internal/models/selection_prefs.py | 51 + .../pip/_internal/models/target_python.py | 110 + .../pip/_internal/models/wheel.py | 89 + .../pip/_internal/network/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 261 bytes .../network/__pycache__/auth.cpython-310.pyc | Bin 0 -> 7529 bytes .../network/__pycache__/cache.cpython-310.pyc | Bin 0 -> 2942 bytes .../__pycache__/download.cpython-310.pyc | Bin 0 -> 5508 bytes .../__pycache__/lazy_wheel.cpython-310.pyc | Bin 0 -> 8416 bytes .../__pycache__/session.cpython-310.pyc | Bin 0 -> 10737 bytes .../network/__pycache__/utils.cpython-310.pyc | Bin 0 -> 1457 bytes .../__pycache__/xmlrpc.cpython-310.pyc | Bin 0 -> 2074 bytes .../pip/_internal/network/auth.py | 323 + .../pip/_internal/network/cache.py | 69 + .../pip/_internal/network/download.py | 185 + .../pip/_internal/network/lazy_wheel.py | 210 + .../pip/_internal/network/session.py | 454 + .../pip/_internal/network/utils.py | 96 + .../pip/_internal/network/xmlrpc.py | 60 + .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 209 bytes .../__pycache__/check.cpython-310.pyc | Bin 0 -> 4022 bytes .../__pycache__/freeze.cpython-310.pyc | Bin 0 -> 6207 bytes .../__pycache__/prepare.cpython-310.pyc | Bin 0 -> 14905 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 215 bytes .../__pycache__/metadata.cpython-310.pyc | Bin 0 -> 1442 bytes .../metadata_editable.cpython-310.pyc | Bin 0 -> 1476 bytes .../metadata_legacy.cpython-310.pyc | Bin 0 -> 2387 bytes .../build/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 1232 bytes .../wheel_editable.cpython-310.pyc | Bin 0 -> 1456 bytes .../__pycache__/wheel_legacy.cpython-310.pyc | Bin 0 -> 2772 bytes .../_internal/operations/build/metadata.py | 39 + .../operations/build/metadata_editable.py | 41 + .../operations/build/metadata_legacy.py | 74 + .../pip/_internal/operations/build/wheel.py | 37 + .../operations/build/wheel_editable.py | 46 + .../operations/build/wheel_legacy.py | 102 + .../pip/_internal/operations/check.py | 149 + .../pip/_internal/operations/freeze.py | 254 + .../_internal/operations/install/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 273 bytes .../editable_legacy.cpython-310.pyc | Bin 0 -> 1560 bytes .../__pycache__/legacy.cpython-310.pyc | Bin 0 -> 3344 bytes .../install/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 21102 bytes .../operations/install/editable_legacy.py | 47 + .../_internal/operations/install/legacy.py | 120 + .../pip/_internal/operations/install/wheel.py | 738 ++ .../pip/_internal/operations/prepare.py | 642 ++ .../site-packages/pip/_internal/pyproject.py | 168 + .../pip/_internal/req/__init__.py | 94 + .../req/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2609 bytes .../__pycache__/constructors.cpython-310.pyc | Bin 0 -> 12172 bytes .../req/__pycache__/req_file.cpython-310.pyc | Bin 0 -> 13500 bytes .../__pycache__/req_install.cpython-310.pyc | Bin 0 -> 22189 bytes .../req/__pycache__/req_set.cpython-310.pyc | Bin 0 -> 5849 bytes .../__pycache__/req_tracker.cpython-310.pyc | Bin 0 -> 4317 bytes .../__pycache__/req_uninstall.cpython-310.pyc | Bin 0 -> 18955 bytes .../pip/_internal/req/constructors.py | 490 + .../pip/_internal/req/req_file.py | 536 ++ .../pip/_internal/req/req_install.py | 858 ++ .../pip/_internal/req/req_set.py | 189 + .../pip/_internal/req/req_tracker.py | 124 + .../pip/_internal/req/req_uninstall.py | 633 ++ .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 209 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 1061 bytes .../pip/_internal/resolution/base.py | 20 + .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 216 bytes .../__pycache__/resolver.cpython-310.pyc | Bin 0 -> 12303 bytes .../_internal/resolution/legacy/resolver.py | 467 + .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 220 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 6463 bytes .../__pycache__/candidates.cpython-310.pyc | Bin 0 -> 18370 bytes .../__pycache__/factory.cpython-310.pyc | Bin 0 -> 19228 bytes .../found_candidates.cpython-310.pyc | Bin 0 -> 4880 bytes .../__pycache__/provider.cpython-310.pyc | Bin 0 -> 7722 bytes .../__pycache__/reporter.cpython-310.pyc | Bin 0 -> 3189 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 7478 bytes .../__pycache__/resolver.cpython-310.pyc | Bin 0 -> 8115 bytes .../_internal/resolution/resolvelib/base.py | 141 + .../resolution/resolvelib/candidates.py | 547 ++ .../resolution/resolvelib/factory.py | 739 ++ .../resolution/resolvelib/found_candidates.py | 155 + .../resolution/resolvelib/provider.py | 248 + .../resolution/resolvelib/reporter.py | 68 + .../resolution/resolvelib/requirements.py | 166 + .../resolution/resolvelib/resolver.py | 292 + .../pip/_internal/self_outdated_check.py | 189 + .../pip/_internal/utils/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 204 bytes .../utils/__pycache__/_log.cpython-310.pyc | Bin 0 -> 1532 bytes .../utils/__pycache__/appdirs.cpython-310.pyc | Bin 0 -> 1630 bytes .../utils/__pycache__/compat.cpython-310.pyc | Bin 0 -> 1520 bytes .../compatibility_tags.cpython-310.pyc | Bin 0 -> 4089 bytes .../__pycache__/datetime.cpython-310.pyc | Bin 0 -> 527 bytes .../__pycache__/deprecation.cpython-310.pyc | Bin 0 -> 3325 bytes .../direct_url_helpers.cpython-310.pyc | Bin 0 -> 2095 bytes .../distutils_args.cpython-310.pyc | Bin 0 -> 1111 bytes .../__pycache__/egg_link.cpython-310.pyc | Bin 0 -> 2160 bytes .../__pycache__/encoding.cpython-310.pyc | Bin 0 -> 1317 bytes .../__pycache__/entrypoints.cpython-310.pyc | Bin 0 -> 1314 bytes .../__pycache__/filesystem.cpython-310.pyc | Bin 0 -> 5172 bytes .../__pycache__/filetypes.cpython-310.pyc | Bin 0 -> 954 bytes .../utils/__pycache__/glibc.cpython-310.pyc | Bin 0 -> 1683 bytes .../utils/__pycache__/hashes.cpython-310.pyc | Bin 0 -> 5206 bytes .../inject_securetransport.cpython-310.pyc | Bin 0 -> 999 bytes .../utils/__pycache__/logging.cpython-310.pyc | Bin 0 -> 9643 bytes .../utils/__pycache__/misc.cpython-310.pyc | Bin 0 -> 19409 bytes .../utils/__pycache__/models.cpython-310.pyc | Bin 0 -> 2000 bytes .../__pycache__/packaging.cpython-310.pyc | Bin 0 -> 2092 bytes .../setuptools_build.cpython-310.pyc | Bin 0 -> 4607 bytes .../__pycache__/subprocess.cpython-310.pyc | Bin 0 -> 5786 bytes .../__pycache__/temp_dir.cpython-310.pyc | Bin 0 -> 7309 bytes .../__pycache__/unpacking.cpython-310.pyc | Bin 0 -> 6664 bytes .../utils/__pycache__/urls.cpython-310.pyc | Bin 0 -> 1597 bytes .../__pycache__/virtualenv.cpython-310.pyc | Bin 0 -> 3300 bytes .../utils/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 4425 bytes .../site-packages/pip/_internal/utils/_log.py | 38 + .../pip/_internal/utils/appdirs.py | 52 + .../pip/_internal/utils/compat.py | 63 + .../pip/_internal/utils/compatibility_tags.py | 165 + .../pip/_internal/utils/datetime.py | 11 + .../pip/_internal/utils/deprecation.py | 120 + .../pip/_internal/utils/direct_url_helpers.py | 87 + .../pip/_internal/utils/distutils_args.py | 42 + .../pip/_internal/utils/egg_link.py | 75 + .../pip/_internal/utils/encoding.py | 36 + .../pip/_internal/utils/entrypoints.py | 27 + .../pip/_internal/utils/filesystem.py | 182 + .../pip/_internal/utils/filetypes.py | 27 + .../pip/_internal/utils/glibc.py | 88 + .../pip/_internal/utils/hashes.py | 144 + .../_internal/utils/inject_securetransport.py | 35 + .../pip/_internal/utils/logging.py | 343 + .../site-packages/pip/_internal/utils/misc.py | 653 ++ .../pip/_internal/utils/models.py | 39 + .../pip/_internal/utils/packaging.py | 57 + .../pip/_internal/utils/setuptools_build.py | 195 + .../pip/_internal/utils/subprocess.py | 260 + .../pip/_internal/utils/temp_dir.py | 246 + .../pip/_internal/utils/unpacking.py | 258 + .../site-packages/pip/_internal/utils/urls.py | 62 + .../pip/_internal/utils/virtualenv.py | 104 + .../pip/_internal/utils/wheel.py | 136 + .../pip/_internal/vcs/__init__.py | 15 + .../vcs/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 527 bytes .../vcs/__pycache__/bazaar.cpython-310.pyc | Bin 0 -> 3354 bytes .../vcs/__pycache__/git.cpython-310.pyc | Bin 0 -> 12557 bytes .../vcs/__pycache__/mercurial.cpython-310.pyc | Bin 0 -> 5073 bytes .../__pycache__/subversion.cpython-310.pyc | Bin 0 -> 8461 bytes .../versioncontrol.cpython-310.pyc | Bin 0 -> 21156 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 101 + .../site-packages/pip/_internal/vcs/git.py | 526 + .../pip/_internal/vcs/mercurial.py | 163 + .../pip/_internal/vcs/subversion.py | 324 + .../pip/_internal/vcs/versioncontrol.py | 705 ++ .../pip/_internal/wheel_builder.py | 377 + .../site-packages/pip/_vendor/__init__.py | 111 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2927 bytes .../__pycache__/distro.cpython-310.pyc | Bin 0 -> 38245 bytes .../_vendor/__pycache__/six.cpython-310.pyc | Bin 0 -> 27594 bytes .../typing_extensions.cpython-310.pyc | Bin 0 -> 66590 bytes .../pip/_vendor/cachecontrol/__init__.py | 18 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 655 bytes .../__pycache__/_cmd.cpython-310.pyc | Bin 0 -> 1593 bytes .../__pycache__/adapter.cpython-310.pyc | Bin 0 -> 3169 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 1859 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 769 bytes .../__pycache__/controller.cpython-310.pyc | Bin 0 -> 8223 bytes .../__pycache__/filewrapper.cpython-310.pyc | Bin 0 -> 2805 bytes .../__pycache__/heuristics.cpython-310.pyc | Bin 0 -> 4729 bytes .../__pycache__/serialize.cpython-310.pyc | Bin 0 -> 4264 bytes .../__pycache__/wrapper.cpython-310.pyc | Bin 0 -> 700 bytes .../pip/_vendor/cachecontrol/_cmd.py | 61 + .../pip/_vendor/cachecontrol/adapter.py | 137 + .../pip/_vendor/cachecontrol/cache.py | 43 + .../_vendor/cachecontrol/caches/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 306 bytes .../__pycache__/file_cache.cpython-310.pyc | Bin 0 -> 3380 bytes .../__pycache__/redis_cache.cpython-310.pyc | Bin 0 -> 1586 bytes .../_vendor/cachecontrol/caches/file_cache.py | 150 + .../cachecontrol/caches/redis_cache.py | 37 + .../pip/_vendor/cachecontrol/compat.py | 32 + .../pip/_vendor/cachecontrol/controller.py | 415 + .../pip/_vendor/cachecontrol/filewrapper.py | 111 + .../pip/_vendor/cachecontrol/heuristics.py | 139 + .../pip/_vendor/cachecontrol/serialize.py | 186 + .../pip/_vendor/cachecontrol/wrapper.py | 33 + .../pip/_vendor/certifi/__init__.py | 3 + .../pip/_vendor/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 288 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 467 bytes .../certifi/__pycache__/core.cpython-310.pyc | Bin 0 -> 1526 bytes .../pip/_vendor/certifi/cacert.pem | 4362 +++++++++ .../site-packages/pip/_vendor/certifi/core.py | 76 + .../pip/_vendor/chardet/__init__.py | 83 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1912 bytes .../__pycache__/big5freq.cpython-310.pyc | Bin 0 -> 27191 bytes .../__pycache__/big5prober.cpython-310.pyc | Bin 0 -> 1142 bytes .../chardistribution.cpython-310.pyc | Bin 0 -> 5752 bytes .../charsetgroupprober.cpython-310.pyc | Bin 0 -> 2241 bytes .../__pycache__/charsetprober.cpython-310.pyc | Bin 0 -> 3495 bytes .../codingstatemachine.cpython-310.pyc | Bin 0 -> 2914 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 413 bytes .../__pycache__/cp949prober.cpython-310.pyc | Bin 0 -> 1149 bytes .../chardet/__pycache__/enums.cpython-310.pyc | Bin 0 -> 2596 bytes .../__pycache__/escprober.cpython-310.pyc | Bin 0 -> 2643 bytes .../chardet/__pycache__/escsm.cpython-310.pyc | Bin 0 -> 8390 bytes .../__pycache__/eucjpprober.cpython-310.pyc | Bin 0 -> 2445 bytes .../__pycache__/euckrfreq.cpython-310.pyc | Bin 0 -> 12075 bytes .../__pycache__/euckrprober.cpython-310.pyc | Bin 0 -> 1150 bytes .../__pycache__/euctwfreq.cpython-310.pyc | Bin 0 -> 27195 bytes .../__pycache__/euctwprober.cpython-310.pyc | Bin 0 -> 1150 bytes .../__pycache__/gb2312freq.cpython-310.pyc | Bin 0 -> 19119 bytes .../__pycache__/gb2312prober.cpython-310.pyc | Bin 0 -> 1158 bytes .../__pycache__/hebrewprober.cpython-310.pyc | Bin 0 -> 3031 bytes .../__pycache__/jisfreq.cpython-310.pyc | Bin 0 -> 22147 bytes .../__pycache__/jpcntx.cpython-310.pyc | Bin 0 -> 37654 bytes .../langbulgarianmodel.cpython-310.pyc | Bin 0 -> 47935 bytes .../langgreekmodel.cpython-310.pyc | Bin 0 -> 46125 bytes .../langhebrewmodel.cpython-310.pyc | Bin 0 -> 44574 bytes .../langhungarianmodel.cpython-310.pyc | Bin 0 -> 47895 bytes .../langrussianmodel.cpython-310.pyc | Bin 0 -> 61028 bytes .../__pycache__/langthaimodel.cpython-310.pyc | Bin 0 -> 44750 bytes .../langturkishmodel.cpython-310.pyc | Bin 0 -> 44591 bytes .../__pycache__/latin1prober.cpython-310.pyc | Bin 0 -> 4441 bytes .../mbcharsetprober.cpython-310.pyc | Bin 0 -> 2260 bytes .../mbcsgroupprober.cpython-310.pyc | Bin 0 -> 1145 bytes .../__pycache__/mbcssm.cpython-310.pyc | Bin 0 -> 18772 bytes .../sbcharsetprober.cpython-310.pyc | Bin 0 -> 3091 bytes .../sbcsgroupprober.cpython-310.pyc | Bin 0 -> 1714 bytes .../__pycache__/sjisprober.cpython-310.pyc | Bin 0 -> 2483 bytes .../universaldetector.cpython-310.pyc | Bin 0 -> 5837 bytes .../__pycache__/utf8prober.cpython-310.pyc | Bin 0 -> 1994 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 451 bytes .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 233 + .../pip/_vendor/chardet/charsetgroupprober.py | 107 + .../pip/_vendor/chardet/charsetprober.py | 145 + .../pip/_vendor/chardet/cli/__init__.py | 1 + .../cli/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 208 bytes .../__pycache__/chardetect.cpython-310.pyc | Bin 0 -> 2707 bytes .../pip/_vendor/chardet/cli/chardetect.py | 84 + .../pip/_vendor/chardet/codingstatemachine.py | 88 + .../pip/_vendor/chardet/compat.py | 36 + .../pip/_vendor/chardet/cp949prober.py | 49 + .../pip/_vendor/chardet/enums.py | 76 + .../pip/_vendor/chardet/escprober.py | 101 + .../pip/_vendor/chardet/escsm.py | 246 + .../pip/_vendor/chardet/eucjpprober.py | 92 + .../pip/_vendor/chardet/euckrfreq.py | 195 + .../pip/_vendor/chardet/euckrprober.py | 47 + .../pip/_vendor/chardet/euctwfreq.py | 387 + .../pip/_vendor/chardet/euctwprober.py | 46 + .../pip/_vendor/chardet/gb2312freq.py | 283 + .../pip/_vendor/chardet/gb2312prober.py | 46 + .../pip/_vendor/chardet/hebrewprober.py | 292 + .../pip/_vendor/chardet/jisfreq.py | 325 + .../pip/_vendor/chardet/jpcntx.py | 233 + .../pip/_vendor/chardet/langbulgarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langgreekmodel.py | 4398 +++++++++ .../pip/_vendor/chardet/langhebrewmodel.py | 4383 +++++++++ .../pip/_vendor/chardet/langhungarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langrussianmodel.py | 5718 +++++++++++ .../pip/_vendor/chardet/langthaimodel.py | 4383 +++++++++ .../pip/_vendor/chardet/langturkishmodel.py | 4383 +++++++++ .../pip/_vendor/chardet/latin1prober.py | 145 + .../pip/_vendor/chardet/mbcharsetprober.py | 91 + .../pip/_vendor/chardet/mbcsgroupprober.py | 54 + .../pip/_vendor/chardet/mbcssm.py | 572 ++ .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 213 bytes .../__pycache__/languages.cpython-310.pyc | Bin 0 -> 7975 bytes .../pip/_vendor/chardet/metadata/languages.py | 310 + .../pip/_vendor/chardet/sbcharsetprober.py | 145 + .../pip/_vendor/chardet/sbcsgroupprober.py | 83 + .../pip/_vendor/chardet/sjisprober.py | 92 + .../pip/_vendor/chardet/universaldetector.py | 286 + .../pip/_vendor/chardet/utf8prober.py | 82 + .../pip/_vendor/chardet/version.py | 9 + .../pip/_vendor/colorama/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 456 bytes .../colorama/__pycache__/ansi.cpython-310.pyc | Bin 0 -> 3017 bytes .../__pycache__/ansitowin32.cpython-310.pyc | Bin 0 -> 7915 bytes .../__pycache__/initialise.cpython-310.pyc | Bin 0 -> 1703 bytes .../__pycache__/win32.cpython-310.pyc | Bin 0 -> 3963 bytes .../__pycache__/winterm.cpython-310.pyc | Bin 0 -> 4580 bytes .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 258 + .../pip/_vendor/colorama/initialise.py | 80 + .../pip/_vendor/colorama/win32.py | 152 + .../pip/_vendor/colorama/winterm.py | 169 + .../pip/_vendor/distlib/__init__.py | 23 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1075 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 31421 bytes .../__pycache__/database.cpython-310.pyc | Bin 0 -> 42876 bytes .../distlib/__pycache__/index.cpython-310.pyc | Bin 0 -> 17330 bytes .../__pycache__/locators.cpython-310.pyc | Bin 0 -> 38389 bytes .../__pycache__/manifest.cpython-310.pyc | Bin 0 -> 10243 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 5047 bytes .../__pycache__/metadata.cpython-310.pyc | Bin 0 -> 26575 bytes .../__pycache__/resources.cpython-310.pyc | Bin 0 -> 11049 bytes .../__pycache__/scripts.cpython-310.pyc | Bin 0 -> 11265 bytes .../distlib/__pycache__/util.cpython-310.pyc | Bin 0 -> 51708 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 20162 bytes .../distlib/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 27322 bytes .../pip/_vendor/distlib/compat.py | 1116 +++ .../pip/_vendor/distlib/database.py | 1345 +++ .../pip/_vendor/distlib/index.py | 509 + .../pip/_vendor/distlib/locators.py | 1300 +++ .../pip/_vendor/distlib/manifest.py | 393 + .../pip/_vendor/distlib/markers.py | 152 + .../pip/_vendor/distlib/metadata.py | 1058 ++ .../pip/_vendor/distlib/resources.py | 358 + .../pip/_vendor/distlib/scripts.py | 429 + .../site-packages/pip/_vendor/distlib/util.py | 1932 ++++ .../pip/_vendor/distlib/version.py | 739 ++ .../pip/_vendor/distlib/wheel.py | 1053 ++ .../site-packages/pip/_vendor/distro.py | 1386 +++ .../pip/_vendor/html5lib/__init__.py | 35 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1315 bytes .../__pycache__/_ihatexml.cpython-310.pyc | Bin 0 -> 13870 bytes .../__pycache__/_inputstream.cpython-310.pyc | Bin 0 -> 21687 bytes .../__pycache__/_tokenizer.cpython-310.pyc | Bin 0 -> 37333 bytes .../__pycache__/_utils.cpython-310.pyc | Bin 0 -> 4809 bytes .../__pycache__/constants.cpython-310.pyc | Bin 0 -> 161274 bytes .../__pycache__/html5parser.cpython-310.pyc | Bin 0 -> 88484 bytes .../__pycache__/serializer.cpython-310.pyc | Bin 0 -> 10750 bytes .../pip/_vendor/html5lib/_ihatexml.py | 289 + .../pip/_vendor/html5lib/_inputstream.py | 918 ++ .../pip/_vendor/html5lib/_tokenizer.py | 1735 ++++ .../pip/_vendor/html5lib/_trie/__init__.py | 5 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 365 bytes .../_trie/__pycache__/_base.cpython-310.pyc | Bin 0 -> 1617 bytes .../_trie/__pycache__/py.cpython-310.pyc | Bin 0 -> 2280 bytes .../pip/_vendor/html5lib/_trie/_base.py | 40 + .../pip/_vendor/html5lib/_trie/py.py | 67 + .../pip/_vendor/html5lib/_utils.py | 159 + .../pip/_vendor/html5lib/constants.py | 2946 ++++++ .../pip/_vendor/html5lib/filters/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 213 bytes .../alphabeticalattributes.cpython-310.pyc | Bin 0 -> 1343 bytes .../filters/__pycache__/base.cpython-310.pyc | Bin 0 -> 883 bytes .../inject_meta_charset.cpython-310.pyc | Bin 0 -> 1881 bytes .../filters/__pycache__/lint.cpython-310.pyc | Bin 0 -> 2589 bytes .../__pycache__/optionaltags.cpython-310.pyc | Bin 0 -> 2740 bytes .../__pycache__/sanitizer.cpython-310.pyc | Bin 0 -> 20037 bytes .../__pycache__/whitespace.cpython-310.pyc | Bin 0 -> 1387 bytes .../filters/alphabeticalattributes.py | 29 + .../pip/_vendor/html5lib/filters/base.py | 12 + .../html5lib/filters/inject_meta_charset.py | 73 + .../pip/_vendor/html5lib/filters/lint.py | 93 + .../_vendor/html5lib/filters/optionaltags.py | 207 + .../pip/_vendor/html5lib/filters/sanitizer.py | 916 ++ .../_vendor/html5lib/filters/whitespace.py | 38 + .../pip/_vendor/html5lib/html5parser.py | 2795 ++++++ .../pip/_vendor/html5lib/serializer.py | 409 + .../_vendor/html5lib/treeadapters/__init__.py | 30 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 954 bytes .../__pycache__/genshi.cpython-310.pyc | Bin 0 -> 1566 bytes .../__pycache__/sax.cpython-310.pyc | Bin 0 -> 1473 bytes .../_vendor/html5lib/treeadapters/genshi.py | 54 + .../pip/_vendor/html5lib/treeadapters/sax.py | 50 + .../_vendor/html5lib/treebuilders/__init__.py | 88 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3345 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 11336 bytes .../__pycache__/dom.cpython-310.pyc | Bin 0 -> 9423 bytes .../__pycache__/etree.cpython-310.pyc | Bin 0 -> 11725 bytes .../__pycache__/etree_lxml.cpython-310.pyc | Bin 0 -> 13040 bytes .../pip/_vendor/html5lib/treebuilders/base.py | 417 + .../pip/_vendor/html5lib/treebuilders/dom.py | 239 + .../_vendor/html5lib/treebuilders/etree.py | 343 + .../html5lib/treebuilders/etree_lxml.py | 392 + .../_vendor/html5lib/treewalkers/__init__.py | 154 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3995 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 6956 bytes .../__pycache__/dom.cpython-310.pyc | Bin 0 -> 1727 bytes .../__pycache__/etree.cpython-310.pyc | Bin 0 -> 3485 bytes .../__pycache__/etree_lxml.cpython-310.pyc | Bin 0 -> 6572 bytes .../__pycache__/genshi.cpython-310.pyc | Bin 0 -> 1933 bytes .../pip/_vendor/html5lib/treewalkers/base.py | 252 + .../pip/_vendor/html5lib/treewalkers/dom.py | 43 + .../pip/_vendor/html5lib/treewalkers/etree.py | 131 + .../html5lib/treewalkers/etree_lxml.py | 215 + .../_vendor/html5lib/treewalkers/genshi.py | 69 + .../pip/_vendor/idna/__init__.py | 44 + .../idna/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 860 bytes .../idna/__pycache__/codec.cpython-310.pyc | Bin 0 -> 2831 bytes .../idna/__pycache__/compat.cpython-310.pyc | Bin 0 -> 760 bytes .../idna/__pycache__/core.cpython-310.pyc | Bin 0 -> 9575 bytes .../idna/__pycache__/idnadata.cpython-310.pyc | Bin 0 -> 38238 bytes .../__pycache__/intranges.cpython-310.pyc | Bin 0 -> 1997 bytes .../__pycache__/package_data.cpython-310.pyc | Bin 0 -> 224 bytes .../__pycache__/uts46data.cpython-310.pyc | Bin 0 -> 150959 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 + .../site-packages/pip/_vendor/idna/compat.py | 13 + .../site-packages/pip/_vendor/idna/core.py | 397 + .../pip/_vendor/idna/idnadata.py | 2137 +++++ .../pip/_vendor/idna/intranges.py | 54 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 8512 +++++++++++++++++ .../pip/_vendor/msgpack/__init__.py | 54 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1440 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 231 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 1821 bytes .../msgpack/__pycache__/ext.cpython-310.pyc | Bin 0 -> 6329 bytes .../__pycache__/fallback.cpython-310.pyc | Bin 0 -> 25458 bytes .../pip/_vendor/msgpack/_version.py | 1 + .../pip/_vendor/msgpack/exceptions.py | 48 + .../site-packages/pip/_vendor/msgpack/ext.py | 193 + .../pip/_vendor/msgpack/fallback.py | 1012 ++ .../pip/_vendor/packaging/__about__.py | 26 + .../pip/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-310.pyc | Bin 0 -> 603 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 459 bytes .../__pycache__/_manylinux.cpython-310.pyc | Bin 0 -> 7313 bytes .../__pycache__/_musllinux.cpython-310.pyc | Bin 0 -> 4625 bytes .../__pycache__/_structures.cpython-310.pyc | Bin 0 -> 2718 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 9300 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 3988 bytes .../__pycache__/specifiers.cpython-310.pyc | Bin 0 -> 21540 bytes .../__pycache__/tags.cpython-310.pyc | Bin 0 -> 12203 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3588 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 12938 bytes .../pip/_vendor/packaging/_manylinux.py | 301 + .../pip/_vendor/packaging/_musllinux.py | 136 + .../pip/_vendor/packaging/_structures.py | 61 + .../pip/_vendor/packaging/markers.py | 304 + .../pip/_vendor/packaging/requirements.py | 146 + .../pip/_vendor/packaging/specifiers.py | 802 ++ .../pip/_vendor/packaging/tags.py | 487 + .../pip/_vendor/packaging/utils.py | 136 + .../pip/_vendor/packaging/version.py | 504 + .../pip/_vendor/pep517/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 326 bytes .../pep517/__pycache__/build.cpython-310.pyc | Bin 0 -> 3609 bytes .../pep517/__pycache__/check.cpython-310.pyc | Bin 0 -> 4573 bytes .../__pycache__/colorlog.cpython-310.pyc | Bin 0 -> 2977 bytes .../pep517/__pycache__/compat.cpython-310.pyc | Bin 0 -> 1550 bytes .../__pycache__/dirtools.cpython-310.pyc | Bin 0 -> 1368 bytes .../__pycache__/envbuild.cpython-310.pyc | Bin 0 -> 4391 bytes .../pep517/__pycache__/meta.cpython-310.pyc | Bin 0 -> 2973 bytes .../__pycache__/wrappers.cpython-310.pyc | Bin 0 -> 12319 bytes .../site-packages/pip/_vendor/pep517/build.py | 127 + .../site-packages/pip/_vendor/pep517/check.py | 207 + .../pip/_vendor/pep517/colorlog.py | 115 + .../pip/_vendor/pep517/compat.py | 51 + .../pip/_vendor/pep517/dirtools.py | 44 + .../pip/_vendor/pep517/envbuild.py | 171 + .../pip/_vendor/pep517/in_process/__init__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 934 bytes .../__pycache__/_in_process.cpython-310.pyc | Bin 0 -> 10081 bytes .../_vendor/pep517/in_process/_in_process.py | 363 + .../site-packages/pip/_vendor/pep517/meta.py | 92 + .../pip/_vendor/pep517/wrappers.py | 375 + .../pip/_vendor/pkg_resources/__init__.py | 3296 +++++++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 99889 bytes .../__pycache__/py31compat.cpython-310.pyc | Bin 0 -> 673 bytes .../pip/_vendor/pkg_resources/py31compat.py | 23 + .../pip/_vendor/platformdirs/__init__.py | 331 + .../pip/_vendor/platformdirs/__main__.py | 46 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 10489 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 1249 bytes .../__pycache__/android.cpython-310.pyc | Bin 0 -> 4281 bytes .../__pycache__/api.cpython-310.pyc | Bin 0 -> 5215 bytes .../__pycache__/macos.cpython-310.pyc | Bin 0 -> 3203 bytes .../__pycache__/unix.cpython-310.pyc | Bin 0 -> 6904 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 308 bytes .../__pycache__/windows.cpython-310.pyc | Bin 0 -> 6447 bytes .../pip/_vendor/platformdirs/android.py | 119 + .../pip/_vendor/platformdirs/api.py | 156 + .../pip/_vendor/platformdirs/macos.py | 64 + .../pip/_vendor/platformdirs/unix.py | 181 + .../pip/_vendor/platformdirs/version.py | 4 + .../pip/_vendor/platformdirs/windows.py | 182 + .../pip/_vendor/progress/__init__.py | 189 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5743 bytes .../progress/__pycache__/bar.cpython-310.pyc | Bin 0 -> 2708 bytes .../__pycache__/colors.cpython-310.pyc | Bin 0 -> 1501 bytes .../__pycache__/counter.cpython-310.pyc | Bin 0 -> 1572 bytes .../__pycache__/spinner.cpython-310.pyc | Bin 0 -> 1402 bytes .../site-packages/pip/_vendor/progress/bar.py | 93 + .../pip/_vendor/progress/colors.py | 79 + .../pip/_vendor/progress/counter.py | 47 + .../pip/_vendor/progress/spinner.py | 45 + .../pip/_vendor/pygments/__init__.py | 83 + .../pip/_vendor/pygments/__main__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3005 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 601 bytes .../__pycache__/cmdline.cpython-310.pyc | Bin 0 -> 15464 bytes .../__pycache__/console.cpython-310.pyc | Bin 0 -> 1896 bytes .../__pycache__/filter.cpython-310.pyc | Bin 0 -> 2667 bytes .../__pycache__/formatter.cpython-310.pyc | Bin 0 -> 3023 bytes .../__pycache__/lexer.cpython-310.pyc | Bin 0 -> 24377 bytes .../__pycache__/modeline.cpython-310.pyc | Bin 0 -> 1205 bytes .../__pycache__/plugin.cpython-310.pyc | Bin 0 -> 2057 bytes .../__pycache__/regexopt.cpython-310.pyc | Bin 0 -> 2969 bytes .../__pycache__/scanner.cpython-310.pyc | Bin 0 -> 3570 bytes .../__pycache__/sphinxext.cpython-310.pyc | Bin 0 -> 4555 bytes .../__pycache__/style.cpython-310.pyc | Bin 0 -> 4592 bytes .../__pycache__/token.cpython-310.pyc | Bin 0 -> 4664 bytes .../__pycache__/unistring.cpython-310.pyc | Bin 0 -> 31218 bytes .../pygments/__pycache__/util.cpython-310.pyc | Bin 0 -> 9175 bytes .../pip/_vendor/pygments/cmdline.py | 663 ++ .../pip/_vendor/pygments/console.py | 70 + .../pip/_vendor/pygments/filter.py | 71 + .../pip/_vendor/pygments/filters/__init__.py | 937 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 29526 bytes .../pip/_vendor/pygments/formatter.py | 94 + .../_vendor/pygments/formatters/__init__.py | 153 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 4681 bytes .../__pycache__/_mapping.cpython-310.pyc | Bin 0 -> 5548 bytes .../__pycache__/bbcode.cpython-310.pyc | Bin 0 -> 3098 bytes .../__pycache__/groff.cpython-310.pyc | Bin 0 -> 4371 bytes .../__pycache__/html.cpython-310.pyc | Bin 0 -> 29082 bytes .../__pycache__/img.cpython-310.pyc | Bin 0 -> 17510 bytes .../__pycache__/irc.cpython-310.pyc | Bin 0 -> 4601 bytes .../__pycache__/latex.cpython-310.pyc | Bin 0 -> 13507 bytes .../__pycache__/other.cpython-310.pyc | Bin 0 -> 4817 bytes .../__pycache__/pangomarkup.cpython-310.pyc | Bin 0 -> 2117 bytes .../__pycache__/rtf.cpython-310.pyc | Bin 0 -> 4147 bytes .../__pycache__/svg.cpython-310.pyc | Bin 0 -> 6345 bytes .../__pycache__/terminal.cpython-310.pyc | Bin 0 -> 4012 bytes .../__pycache__/terminal256.cpython-310.pyc | Bin 0 -> 9262 bytes .../_vendor/pygments/formatters/_mapping.py | 84 + .../pip/_vendor/pygments/formatters/bbcode.py | 108 + .../pip/_vendor/pygments/formatters/groff.py | 168 + .../pip/_vendor/pygments/formatters/html.py | 983 ++ .../pip/_vendor/pygments/formatters/img.py | 641 ++ .../pip/_vendor/pygments/formatters/irc.py | 179 + .../pip/_vendor/pygments/formatters/latex.py | 511 + .../pip/_vendor/pygments/formatters/other.py | 161 + .../pygments/formatters/pangomarkup.py | 83 + .../pip/_vendor/pygments/formatters/rtf.py | 146 + .../pip/_vendor/pygments/formatters/svg.py | 188 + .../_vendor/pygments/formatters/terminal.py | 127 + .../pygments/formatters/terminal256.py | 338 + .../pip/_vendor/pygments/lexer.py | 879 ++ .../pip/_vendor/pygments/lexers/__init__.py | 341 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 9197 bytes .../__pycache__/_mapping.cpython-310.pyc | Bin 0 -> 58135 bytes .../lexers/__pycache__/python.cpython-310.pyc | Bin 0 -> 29396 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 580 ++ .../pip/_vendor/pygments/lexers/python.py | 1188 +++ .../pip/_vendor/pygments/modeline.py | 43 + .../pip/_vendor/pygments/plugin.py | 69 + .../pip/_vendor/pygments/regexopt.py | 91 + .../pip/_vendor/pygments/scanner.py | 104 + .../pip/_vendor/pygments/sphinxext.py | 155 + .../pip/_vendor/pygments/style.py | 197 + .../pip/_vendor/pygments/styles/__init__.py | 93 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3233 bytes .../pip/_vendor/pygments/token.py | 212 + .../pip/_vendor/pygments/unistring.py | 153 + .../pip/_vendor/pygments/util.py | 308 + .../pip/_vendor/pyparsing/__init__.py | 328 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 7138 bytes .../__pycache__/actions.cpython-310.pyc | Bin 0 -> 7195 bytes .../__pycache__/common.cpython-310.pyc | Bin 0 -> 10118 bytes .../__pycache__/core.cpython-310.pyc | Bin 0 -> 175248 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 9085 bytes .../__pycache__/helpers.cpython-310.pyc | Bin 0 -> 34780 bytes .../__pycache__/results.cpython-310.pyc | Bin 0 -> 24792 bytes .../__pycache__/testing.cpython-310.pyc | Bin 0 -> 12113 bytes .../__pycache__/unicode.cpython-310.pyc | Bin 0 -> 9827 bytes .../__pycache__/util.cpython-310.pyc | Bin 0 -> 8618 bytes .../pip/_vendor/pyparsing/actions.py | 207 + .../pip/_vendor/pyparsing/common.py | 424 + .../pip/_vendor/pyparsing/core.py | 5789 +++++++++++ .../pip/_vendor/pyparsing/diagram/__init__.py | 593 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 15658 bytes .../pip/_vendor/pyparsing/exceptions.py | 267 + .../pip/_vendor/pyparsing/helpers.py | 1069 +++ .../pip/_vendor/pyparsing/results.py | 760 ++ .../pip/_vendor/pyparsing/testing.py | 331 + .../pip/_vendor/pyparsing/unicode.py | 332 + .../pip/_vendor/pyparsing/util.py | 235 + .../pip/_vendor/requests/__init__.py | 154 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 4051 bytes .../__pycache__/__version__.cpython-310.pyc | Bin 0 -> 568 bytes .../_internal_utils.cpython-310.pyc | Bin 0 -> 1320 bytes .../__pycache__/adapters.cpython-310.pyc | Bin 0 -> 17056 bytes .../requests/__pycache__/api.cpython-310.pyc | Bin 0 -> 6667 bytes .../requests/__pycache__/auth.cpython-310.pyc | Bin 0 -> 8110 bytes .../__pycache__/certs.cpython-310.pyc | Bin 0 -> 652 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 1687 bytes .../__pycache__/cookies.cpython-310.pyc | Bin 0 -> 18700 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 5261 bytes .../requests/__pycache__/help.cpython-310.pyc | Bin 0 -> 2920 bytes .../__pycache__/hooks.cpython-310.pyc | Bin 0 -> 1007 bytes .../__pycache__/models.cpython-310.pyc | Bin 0 -> 24326 bytes .../__pycache__/packages.cpython-310.pyc | Bin 0 -> 521 bytes .../__pycache__/sessions.cpython-310.pyc | Bin 0 -> 19634 bytes .../__pycache__/status_codes.cpython-310.pyc | Bin 0 -> 4684 bytes .../__pycache__/structures.cpython-310.pyc | Bin 0 -> 4466 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 24409 bytes .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 42 + .../pip/_vendor/requests/adapters.py | 538 ++ .../site-packages/pip/_vendor/requests/api.py | 159 + .../pip/_vendor/requests/auth.py | 305 + .../pip/_vendor/requests/certs.py | 18 + .../pip/_vendor/requests/compat.py | 77 + .../pip/_vendor/requests/cookies.py | 549 ++ .../pip/_vendor/requests/exceptions.py | 133 + .../pip/_vendor/requests/help.py | 132 + .../pip/_vendor/requests/hooks.py | 34 + .../pip/_vendor/requests/models.py | 973 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 771 ++ .../pip/_vendor/requests/status_codes.py | 123 + .../pip/_vendor/requests/structures.py | 105 + .../pip/_vendor/requests/utils.py | 1060 ++ .../pip/_vendor/resolvelib/__init__.py | 26 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 619 bytes .../__pycache__/providers.cpython-310.pyc | Bin 0 -> 6670 bytes .../__pycache__/reporters.cpython-310.pyc | Bin 0 -> 2590 bytes .../__pycache__/resolvers.cpython-310.pyc | Bin 0 -> 15143 bytes .../__pycache__/structs.cpython-310.pyc | Bin 0 -> 7176 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 214 bytes .../collections_abc.cpython-310.pyc | Bin 0 -> 390 bytes .../resolvelib/compat/collections_abc.py | 6 + .../pip/_vendor/resolvelib/providers.py | 133 + .../pip/_vendor/resolvelib/reporters.py | 43 + .../pip/_vendor/resolvelib/resolvers.py | 482 + .../pip/_vendor/resolvelib/structs.py | 165 + .../pip/_vendor/rich/__init__.py | 172 + .../pip/_vendor/rich/__main__.py | 280 + .../rich/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5904 bytes .../rich/__pycache__/__main__.cpython-310.pyc | Bin 0 -> 7338 bytes .../__pycache__/_cell_widths.cpython-310.pyc | Bin 0 -> 7827 bytes .../__pycache__/_emoji_codes.cpython-310.pyc | Bin 0 -> 360067 bytes .../_emoji_replace.cpython-310.pyc | Bin 0 -> 1207 bytes .../__pycache__/_extension.cpython-310.pyc | Bin 0 -> 508 bytes .../rich/__pycache__/_inspect.cpython-310.pyc | Bin 0 -> 6625 bytes .../__pycache__/_log_render.cpython-310.pyc | Bin 0 -> 2653 bytes .../rich/__pycache__/_loop.cpython-310.pyc | Bin 0 -> 1305 bytes .../__pycache__/_lru_cache.cpython-310.pyc | Bin 0 -> 1588 bytes .../__pycache__/_palettes.cpython-310.pyc | Bin 0 -> 5110 bytes .../rich/__pycache__/_pick.cpython-310.pyc | Bin 0 -> 653 bytes .../rich/__pycache__/_ratio.cpython-310.pyc | Bin 0 -> 5170 bytes .../__pycache__/_spinners.cpython-310.pyc | Bin 0 -> 15226 bytes .../rich/__pycache__/_stack.cpython-310.pyc | Bin 0 -> 851 bytes .../rich/__pycache__/_timer.cpython-310.pyc | Bin 0 -> 700 bytes .../rich/__pycache__/_windows.cpython-310.pyc | Bin 0 -> 1891 bytes .../rich/__pycache__/_wrap.cpython-310.pyc | Bin 0 -> 1529 bytes .../rich/__pycache__/abc.cpython-310.pyc | Bin 0 -> 1327 bytes .../rich/__pycache__/align.cpython-310.pyc | Bin 0 -> 7981 bytes .../rich/__pycache__/ansi.cpython-310.pyc | Bin 0 -> 6030 bytes .../rich/__pycache__/bar.cpython-310.pyc | Bin 0 -> 2996 bytes .../rich/__pycache__/box.cpython-310.pyc | Bin 0 -> 7770 bytes .../rich/__pycache__/cells.cpython-310.pyc | Bin 0 -> 3512 bytes .../rich/__pycache__/color.cpython-310.pyc | Bin 0 -> 16768 bytes .../__pycache__/color_triplet.cpython-310.pyc | Bin 0 -> 1450 bytes .../rich/__pycache__/columns.cpython-310.pyc | Bin 0 -> 6210 bytes .../rich/__pycache__/console.cpython-310.pyc | Bin 0 -> 70455 bytes .../__pycache__/constrain.cpython-310.pyc | Bin 0 -> 1767 bytes .../__pycache__/containers.cpython-310.pyc | Bin 0 -> 6499 bytes .../rich/__pycache__/control.cpython-310.pyc | Bin 0 -> 6842 bytes .../default_styles.cpython-310.pyc | Bin 0 -> 6042 bytes .../rich/__pycache__/diagnose.cpython-310.pyc | Bin 0 -> 368 bytes .../rich/__pycache__/emoji.cpython-310.pyc | Bin 0 -> 3280 bytes .../rich/__pycache__/errors.cpython-310.pyc | Bin 0 -> 1540 bytes .../__pycache__/file_proxy.cpython-310.pyc | Bin 0 -> 2277 bytes .../rich/__pycache__/filesize.cpython-310.pyc | Bin 0 -> 2629 bytes .../__pycache__/highlighter.cpython-310.pyc | Bin 0 -> 5356 bytes .../rich/__pycache__/json.cpython-310.pyc | Bin 0 -> 4760 bytes .../rich/__pycache__/jupyter.cpython-310.pyc | Bin 0 -> 3839 bytes .../rich/__pycache__/layout.cpython-310.pyc | Bin 0 -> 14691 bytes .../rich/__pycache__/live.cpython-310.pyc | Bin 0 -> 11581 bytes .../__pycache__/live_render.cpython-310.pyc | Bin 0 -> 3415 bytes .../rich/__pycache__/logging.cpython-310.pyc | Bin 0 -> 9307 bytes .../rich/__pycache__/markup.cpython-310.pyc | Bin 0 -> 5926 bytes .../rich/__pycache__/measure.cpython-310.pyc | Bin 0 -> 5071 bytes .../rich/__pycache__/padding.cpython-310.pyc | Bin 0 -> 4495 bytes .../rich/__pycache__/pager.cpython-310.pyc | Bin 0 -> 1508 bytes .../rich/__pycache__/palette.cpython-310.pyc | Bin 0 -> 3721 bytes .../rich/__pycache__/panel.cpython-310.pyc | Bin 0 -> 6404 bytes .../rich/__pycache__/pretty.cpython-310.pyc | Bin 0 -> 25116 bytes .../rich/__pycache__/progress.cpython-310.pyc | Bin 0 -> 33344 bytes .../__pycache__/progress_bar.cpython-310.pyc | Bin 0 -> 6720 bytes .../rich/__pycache__/prompt.cpython-310.pyc | Bin 0 -> 11312 bytes .../rich/__pycache__/protocol.cpython-310.pyc | Bin 0 -> 1384 bytes .../rich/__pycache__/region.cpython-310.pyc | Bin 0 -> 540 bytes .../rich/__pycache__/repr.cpython-310.pyc | Bin 0 -> 4053 bytes .../rich/__pycache__/rule.cpython-310.pyc | Bin 0 -> 3750 bytes .../rich/__pycache__/scope.cpython-310.pyc | Bin 0 -> 3001 bytes .../rich/__pycache__/screen.cpython-310.pyc | Bin 0 -> 1892 bytes .../rich/__pycache__/segment.cpython-310.pyc | Bin 0 -> 20582 bytes .../rich/__pycache__/spinner.cpython-310.pyc | Bin 0 -> 4412 bytes .../rich/__pycache__/status.cpython-310.pyc | Bin 0 -> 4606 bytes .../rich/__pycache__/style.cpython-310.pyc | Bin 0 -> 20535 bytes .../rich/__pycache__/styled.cpython-310.pyc | Bin 0 -> 1776 bytes .../rich/__pycache__/syntax.cpython-310.pyc | Bin 0 -> 19049 bytes .../rich/__pycache__/table.cpython-310.pyc | Bin 0 -> 26987 bytes .../rich/__pycache__/tabulate.cpython-310.pyc | Bin 0 -> 1769 bytes .../terminal_theme.cpython-310.pyc | Bin 0 -> 1733 bytes .../rich/__pycache__/text.cpython-310.pyc | Bin 0 -> 39297 bytes .../rich/__pycache__/theme.cpython-310.pyc | Bin 0 -> 4713 bytes .../rich/__pycache__/themes.cpython-310.pyc | Bin 0 -> 306 bytes .../__pycache__/traceback.cpython-310.pyc | Bin 0 -> 19550 bytes .../rich/__pycache__/tree.cpython-310.pyc | Bin 0 -> 7330 bytes .../pip/_vendor/rich/_cell_widths.py | 451 + .../pip/_vendor/rich/_emoji_codes.py | 3610 +++++++ .../pip/_vendor/rich/_emoji_replace.py | 32 + .../pip/_vendor/rich/_extension.py | 10 + .../pip/_vendor/rich/_inspect.py | 210 + .../pip/_vendor/rich/_log_render.py | 94 + .../site-packages/pip/_vendor/rich/_loop.py | 43 + .../pip/_vendor/rich/_lru_cache.py | 34 + .../pip/_vendor/rich/_palettes.py | 309 + .../site-packages/pip/_vendor/rich/_pick.py | 17 + .../site-packages/pip/_vendor/rich/_ratio.py | 160 + .../pip/_vendor/rich/_spinners.py | 848 ++ .../site-packages/pip/_vendor/rich/_stack.py | 16 + .../site-packages/pip/_vendor/rich/_timer.py | 19 + .../pip/_vendor/rich/_windows.py | 72 + .../site-packages/pip/_vendor/rich/_wrap.py | 55 + .../site-packages/pip/_vendor/rich/abc.py | 33 + .../site-packages/pip/_vendor/rich/align.py | 312 + .../site-packages/pip/_vendor/rich/ansi.py | 228 + .../site-packages/pip/_vendor/rich/bar.py | 94 + .../site-packages/pip/_vendor/rich/box.py | 483 + .../site-packages/pip/_vendor/rich/cells.py | 147 + .../site-packages/pip/_vendor/rich/color.py | 581 ++ .../pip/_vendor/rich/color_triplet.py | 38 + .../site-packages/pip/_vendor/rich/columns.py | 187 + .../site-packages/pip/_vendor/rich/console.py | 2211 +++++ .../pip/_vendor/rich/constrain.py | 37 + .../pip/_vendor/rich/containers.py | 167 + .../site-packages/pip/_vendor/rich/control.py | 175 + .../pip/_vendor/rich/default_styles.py | 183 + .../pip/_vendor/rich/diagnose.py | 6 + .../site-packages/pip/_vendor/rich/emoji.py | 96 + .../site-packages/pip/_vendor/rich/errors.py | 34 + .../pip/_vendor/rich/file_proxy.py | 54 + .../pip/_vendor/rich/filesize.py | 89 + .../pip/_vendor/rich/highlighter.py | 147 + .../site-packages/pip/_vendor/rich/json.py | 140 + .../site-packages/pip/_vendor/rich/jupyter.py | 92 + .../site-packages/pip/_vendor/rich/layout.py | 444 + .../site-packages/pip/_vendor/rich/live.py | 365 + .../pip/_vendor/rich/live_render.py | 113 + .../site-packages/pip/_vendor/rich/logging.py | 268 + .../site-packages/pip/_vendor/rich/markup.py | 244 + .../site-packages/pip/_vendor/rich/measure.py | 149 + .../site-packages/pip/_vendor/rich/padding.py | 141 + .../site-packages/pip/_vendor/rich/pager.py | 34 + .../site-packages/pip/_vendor/rich/palette.py | 100 + .../site-packages/pip/_vendor/rich/panel.py | 250 + .../site-packages/pip/_vendor/rich/pretty.py | 903 ++ .../pip/_vendor/rich/progress.py | 1036 ++ .../pip/_vendor/rich/progress_bar.py | 216 + .../site-packages/pip/_vendor/rich/prompt.py | 376 + .../pip/_vendor/rich/protocol.py | 42 + .../site-packages/pip/_vendor/rich/region.py | 10 + .../site-packages/pip/_vendor/rich/repr.py | 151 + .../site-packages/pip/_vendor/rich/rule.py | 115 + .../site-packages/pip/_vendor/rich/scope.py | 86 + .../site-packages/pip/_vendor/rich/screen.py | 54 + .../site-packages/pip/_vendor/rich/segment.py | 720 ++ .../site-packages/pip/_vendor/rich/spinner.py | 134 + .../site-packages/pip/_vendor/rich/status.py | 132 + .../site-packages/pip/_vendor/rich/style.py | 785 ++ .../site-packages/pip/_vendor/rich/styled.py | 42 + .../site-packages/pip/_vendor/rich/syntax.py | 735 ++ .../site-packages/pip/_vendor/rich/table.py | 968 ++ .../pip/_vendor/rich/tabulate.py | 51 + .../pip/_vendor/rich/terminal_theme.py | 55 + .../site-packages/pip/_vendor/rich/text.py | 1282 +++ .../site-packages/pip/_vendor/rich/theme.py | 112 + .../site-packages/pip/_vendor/rich/themes.py | 5 + .../pip/_vendor/rich/traceback.py | 678 ++ .../site-packages/pip/_vendor/rich/tree.py | 249 + .../site-packages/pip/_vendor/six.py | 998 ++ .../pip/_vendor/tenacity/__init__.py | 517 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 16387 bytes .../__pycache__/_asyncio.cpython-310.pyc | Bin 0 -> 2627 bytes .../__pycache__/_utils.cpython-310.pyc | Bin 0 -> 1240 bytes .../__pycache__/after.cpython-310.pyc | Bin 0 -> 1244 bytes .../__pycache__/before.cpython-310.pyc | Bin 0 -> 1122 bytes .../__pycache__/before_sleep.cpython-310.pyc | Bin 0 -> 1424 bytes .../tenacity/__pycache__/nap.cpython-310.pyc | Bin 0 -> 1212 bytes .../__pycache__/retry.cpython-310.pyc | Bin 0 -> 8442 bytes .../tenacity/__pycache__/stop.cpython-310.pyc | Bin 0 -> 4030 bytes .../__pycache__/tornadoweb.cpython-310.pyc | Bin 0 -> 1777 bytes .../tenacity/__pycache__/wait.cpython-310.pyc | Bin 0 -> 7974 bytes .../pip/_vendor/tenacity/_asyncio.py | 92 + .../pip/_vendor/tenacity/_utils.py | 68 + .../pip/_vendor/tenacity/after.py | 46 + .../pip/_vendor/tenacity/before.py | 41 + .../pip/_vendor/tenacity/before_sleep.py | 58 + .../site-packages/pip/_vendor/tenacity/nap.py | 43 + .../pip/_vendor/tenacity/retry.py | 213 + .../pip/_vendor/tenacity/stop.py | 96 + .../pip/_vendor/tenacity/tornadoweb.py | 59 + .../pip/_vendor/tenacity/wait.py | 191 + .../pip/_vendor/tomli/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 392 bytes .../tomli/__pycache__/_parser.cpython-310.pyc | Bin 0 -> 16346 bytes .../tomli/__pycache__/_re.cpython-310.pyc | Bin 0 -> 2436 bytes .../pip/_vendor/tomli/_parser.py | 703 ++ .../site-packages/pip/_vendor/tomli/_re.py | 83 + .../pip/_vendor/typing_extensions.py | 2296 +++++ .../pip/_vendor/urllib3/__init__.py | 85 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2202 bytes .../__pycache__/_collections.cpython-310.pyc | Bin 0 -> 10876 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 226 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 13649 bytes .../connectionpool.cpython-310.pyc | Bin 0 -> 25387 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 11007 bytes .../__pycache__/fields.cpython-310.pyc | Bin 0 -> 8196 bytes .../__pycache__/filepost.cpython-310.pyc | Bin 0 -> 2763 bytes .../__pycache__/poolmanager.cpython-310.pyc | Bin 0 -> 15215 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 5639 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 20930 bytes .../pip/_vendor/urllib3/_collections.py | 337 + .../pip/_vendor/urllib3/_version.py | 2 + .../pip/_vendor/urllib3/connection.py | 569 ++ .../pip/_vendor/urllib3/connectionpool.py | 1108 +++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 212 bytes .../_appengine_environ.cpython-310.pyc | Bin 0 -> 1392 bytes .../__pycache__/appengine.cpython-310.pyc | Bin 0 -> 8208 bytes .../__pycache__/ntlmpool.cpython-310.pyc | Bin 0 -> 3647 bytes .../__pycache__/pyopenssl.cpython-310.pyc | Bin 0 -> 15549 bytes .../securetransport.cpython-310.pyc | Bin 0 -> 21954 bytes .../contrib/__pycache__/socks.cpython-310.pyc | Bin 0 -> 5614 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 229 bytes .../__pycache__/bindings.cpython-310.pyc | Bin 0 -> 10725 bytes .../__pycache__/low_level.cpython-310.pyc | Bin 0 -> 9112 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 397 + .../pip/_vendor/urllib3/contrib/appengine.py | 314 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 511 + .../urllib3/contrib/securetransport.py | 922 ++ .../pip/_vendor/urllib3/contrib/socks.py | 216 + .../pip/_vendor/urllib3/exceptions.py | 323 + .../pip/_vendor/urllib3/fields.py | 274 + .../pip/_vendor/urllib3/filepost.py | 98 + .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 213 bytes .../packages/__pycache__/six.cpython-310.pyc | Bin 0 -> 27667 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 223 bytes .../__pycache__/makefile.cpython-310.pyc | Bin 0 -> 1323 bytes .../urllib3/packages/backports/makefile.py | 51 + .../pip/_vendor/urllib3/packages/six.py | 1077 +++ .../pip/_vendor/urllib3/poolmanager.py | 536 ++ .../pip/_vendor/urllib3/request.py | 170 + .../pip/_vendor/urllib3/response.py | 821 ++ .../pip/_vendor/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1122 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 3450 bytes .../util/__pycache__/proxy.cpython-310.pyc | Bin 0 -> 1355 bytes .../util/__pycache__/queue.cpython-310.pyc | Bin 0 -> 1077 bytes .../util/__pycache__/request.cpython-310.pyc | Bin 0 -> 3485 bytes .../util/__pycache__/response.cpython-310.pyc | Bin 0 -> 2370 bytes .../util/__pycache__/retry.cpython-310.pyc | Bin 0 -> 16155 bytes .../util/__pycache__/ssl_.cpython-310.pyc | Bin 0 -> 11322 bytes .../ssl_match_hostname.cpython-310.pyc | Bin 0 -> 3294 bytes .../__pycache__/ssltransport.cpython-310.pyc | Bin 0 -> 7412 bytes .../util/__pycache__/timeout.cpython-310.pyc | Bin 0 -> 8946 bytes .../util/__pycache__/url.cpython-310.pyc | Bin 0 -> 10691 bytes .../util/__pycache__/wait.cpython-310.pyc | Bin 0 -> 3106 bytes .../pip/_vendor/urllib3/util/connection.py | 149 + .../pip/_vendor/urllib3/util/proxy.py | 57 + .../pip/_vendor/urllib3/util/queue.py | 22 + .../pip/_vendor/urllib3/util/request.py | 143 + .../pip/_vendor/urllib3/util/response.py | 107 + .../pip/_vendor/urllib3/util/retry.py | 620 ++ .../pip/_vendor/urllib3/util/ssl_.py | 495 + .../urllib3/util/ssl_match_hostname.py | 161 + .../pip/_vendor/urllib3/util/ssltransport.py | 221 + .../pip/_vendor/urllib3/util/timeout.py | 268 + .../pip/_vendor/urllib3/util/url.py | 432 + .../pip/_vendor/urllib3/util/wait.py | 153 + .../site-packages/pip/_vendor/vendor.txt | 25 + .../pip/_vendor/webencodings/__init__.py | 342 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 9759 bytes .../__pycache__/labels.cpython-310.pyc | Bin 0 -> 5249 bytes .../__pycache__/mklabels.cpython-310.pyc | Bin 0 -> 1954 bytes .../__pycache__/tests.cpython-310.pyc | Bin 0 -> 5056 bytes .../x_user_defined.cpython-310.pyc | Bin 0 -> 2605 bytes .../pip/_vendor/webencodings/labels.py | 231 + .../pip/_vendor/webencodings/mklabels.py | 59 + .../pip/_vendor/webencodings/tests.py | 153 + .../_vendor/webencodings/x_user_defined.py | 325 + .../lib/python3.10/site-packages/pip/py.typed | 4 + .../site-packages/pkg_resources/__init__.py | 3303 +++++++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 100614 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 206 bytes .../__pycache__/appdirs.cpython-310.pyc | Bin 0 -> 20267 bytes .../__pycache__/pyparsing.cpython-310.pyc | Bin 0 -> 198759 bytes .../pkg_resources/_vendor/appdirs.py | 608 ++ .../_vendor/packaging/__about__.py | 26 + .../_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-310.pyc | Bin 0 -> 613 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 469 bytes .../__pycache__/_manylinux.cpython-310.pyc | Bin 0 -> 7323 bytes .../__pycache__/_musllinux.cpython-310.pyc | Bin 0 -> 4635 bytes .../__pycache__/_structures.cpython-310.pyc | Bin 0 -> 2993 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 9319 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 4007 bytes .../__pycache__/specifiers.cpython-310.pyc | Bin 0 -> 22211 bytes .../__pycache__/tags.cpython-310.pyc | Bin 0 -> 12237 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3598 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 12948 bytes .../_vendor/packaging/_manylinux.py | 301 + .../_vendor/packaging/_musllinux.py | 136 + .../_vendor/packaging/_structures.py | 67 + .../_vendor/packaging/markers.py | 304 + .../_vendor/packaging/requirements.py | 146 + .../_vendor/packaging/specifiers.py | 828 ++ .../pkg_resources/_vendor/packaging/tags.py | 484 + .../pkg_resources/_vendor/packaging/utils.py | 136 + .../_vendor/packaging/version.py | 504 + .../pkg_resources/_vendor/pyparsing.py | 5742 +++++++++++ .../pkg_resources/extern/__init__.py | 73 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2914 bytes .../__pycache__/setup.cpython-310.pyc | Bin 0 -> 334 bytes .../data/my-test-package-source/setup.py | 6 + .../setuptools-59.6.0.dist-info/INSTALLER | 1 + .../setuptools-59.6.0.dist-info/LICENSE | 19 + .../setuptools-59.6.0.dist-info/METADATA | 124 + .../setuptools-59.6.0.dist-info/RECORD | 298 + .../setuptools-59.6.0.dist-info/REQUESTED | 0 .../setuptools-59.6.0.dist-info/WHEEL | 5 + .../entry_points.txt | 56 + .../setuptools-59.6.0.dist-info/top_level.txt | 4 + .../site-packages/setuptools/__init__.py | 242 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 8610 bytes .../_deprecation_warning.cpython-310.pyc | Bin 0 -> 567 bytes .../__pycache__/_imp.cpython-310.pyc | Bin 0 -> 2093 bytes .../__pycache__/archive_util.cpython-310.pyc | Bin 0 -> 5863 bytes .../__pycache__/build_meta.cpython-310.pyc | Bin 0 -> 9477 bytes .../__pycache__/config.cpython-310.pyc | Bin 0 -> 20946 bytes .../__pycache__/dep_util.cpython-310.pyc | Bin 0 -> 874 bytes .../__pycache__/depends.cpython-310.pyc | Bin 0 -> 5313 bytes .../__pycache__/dist.cpython-310.pyc | Bin 0 -> 36354 bytes .../__pycache__/errors.cpython-310.pyc | Bin 0 -> 1519 bytes .../__pycache__/extension.cpython-310.pyc | Bin 0 -> 1963 bytes .../__pycache__/glob.cpython-310.pyc | Bin 0 -> 3752 bytes .../__pycache__/installer.cpython-310.pyc | Bin 0 -> 2998 bytes .../__pycache__/launch.cpython-310.pyc | Bin 0 -> 924 bytes .../__pycache__/monkey.cpython-310.pyc | Bin 0 -> 4652 bytes .../__pycache__/msvc.cpython-310.pyc | Bin 0 -> 42656 bytes .../__pycache__/namespaces.cpython-310.pyc | Bin 0 -> 3635 bytes .../__pycache__/package_index.cpython-310.pyc | Bin 0 -> 32748 bytes .../__pycache__/py34compat.cpython-310.pyc | Bin 0 -> 499 bytes .../__pycache__/sandbox.cpython-310.pyc | Bin 0 -> 15775 bytes .../__pycache__/unicode_utils.cpython-310.pyc | Bin 0 -> 1129 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 341 bytes .../__pycache__/wheel.cpython-310.pyc | Bin 0 -> 7367 bytes .../windows_support.cpython-310.pyc | Bin 0 -> 1042 bytes .../setuptools/_deprecation_warning.py | 7 + .../setuptools/_distutils/__init__.py | 24 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 575 bytes .../__pycache__/_msvccompiler.cpython-310.pyc | Bin 0 -> 13852 bytes .../__pycache__/archive_util.cpython-310.pyc | Bin 0 -> 6580 bytes .../__pycache__/bcppcompiler.cpython-310.pyc | Bin 0 -> 6567 bytes .../__pycache__/ccompiler.cpython-310.pyc | Bin 0 -> 33324 bytes .../__pycache__/cmd.cpython-310.pyc | Bin 0 -> 13967 bytes .../__pycache__/config.cpython-310.pyc | Bin 0 -> 3606 bytes .../__pycache__/core.cpython-310.pyc | Bin 0 -> 7107 bytes .../cygwinccompiler.cpython-310.pyc | Bin 0 -> 9014 bytes .../__pycache__/debug.cpython-310.pyc | Bin 0 -> 269 bytes .../__pycache__/dep_util.cpython-310.pyc | Bin 0 -> 2790 bytes .../__pycache__/dir_util.cpython-310.pyc | Bin 0 -> 5901 bytes .../__pycache__/dist.cpython-310.pyc | Bin 0 -> 34066 bytes .../__pycache__/errors.cpython-310.pyc | Bin 0 -> 5011 bytes .../__pycache__/extension.cpython-310.pyc | Bin 0 -> 7025 bytes .../__pycache__/fancy_getopt.cpython-310.pyc | Bin 0 -> 10649 bytes .../__pycache__/file_util.cpython-310.pyc | Bin 0 -> 5995 bytes .../__pycache__/filelist.cpython-310.pyc | Bin 0 -> 10841 bytes .../__pycache__/log.cpython-310.pyc | Bin 0 -> 2326 bytes .../__pycache__/msvc9compiler.cpython-310.pyc | Bin 0 -> 17581 bytes .../__pycache__/msvccompiler.cpython-310.pyc | Bin 0 -> 14800 bytes .../__pycache__/py35compat.cpython-310.pyc | Bin 0 -> 645 bytes .../__pycache__/py38compat.cpython-310.pyc | Bin 0 -> 442 bytes .../__pycache__/spawn.cpython-310.pyc | Bin 0 -> 2912 bytes .../__pycache__/sysconfig.cpython-310.pyc | Bin 0 -> 12893 bytes .../__pycache__/text_file.cpython-310.pyc | Bin 0 -> 8488 bytes .../__pycache__/unixccompiler.cpython-310.pyc | Bin 0 -> 6820 bytes .../__pycache__/util.cpython-310.pyc | Bin 0 -> 14761 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 7862 bytes .../versionpredicate.cpython-310.pyc | Bin 0 -> 5355 bytes .../setuptools/_distutils/_msvccompiler.py | 561 ++ .../setuptools/_distutils/archive_util.py | 256 + .../setuptools/_distutils/bcppcompiler.py | 393 + .../setuptools/_distutils/ccompiler.py | 1123 +++ .../setuptools/_distutils/cmd.py | 403 + .../setuptools/_distutils/command/__init__.py | 31 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 548 bytes .../command/__pycache__/bdist.cpython-310.pyc | Bin 0 -> 3682 bytes .../__pycache__/bdist_dumb.cpython-310.pyc | Bin 0 -> 3661 bytes .../__pycache__/bdist_msi.cpython-310.pyc | Bin 0 -> 19737 bytes .../__pycache__/bdist_rpm.cpython-310.pyc | Bin 0 -> 12305 bytes .../__pycache__/bdist_wininst.cpython-310.pyc | Bin 0 -> 8648 bytes .../command/__pycache__/build.cpython-310.pyc | Bin 0 -> 3910 bytes .../__pycache__/build_clib.cpython-310.pyc | Bin 0 -> 4887 bytes .../__pycache__/build_ext.cpython-310.pyc | Bin 0 -> 16235 bytes .../__pycache__/build_py.cpython-310.pyc | Bin 0 -> 9906 bytes .../__pycache__/build_scripts.cpython-310.pyc | Bin 0 -> 4029 bytes .../command/__pycache__/check.cpython-310.pyc | Bin 0 -> 5026 bytes .../command/__pycache__/clean.cpython-310.pyc | Bin 0 -> 2165 bytes .../__pycache__/config.cpython-310.pyc | Bin 0 -> 10347 bytes .../__pycache__/install.cpython-310.pyc | Bin 0 -> 15285 bytes .../__pycache__/install_data.cpython-310.pyc | Bin 0 -> 2364 bytes .../install_egg_info.cpython-310.pyc | Bin 0 -> 3329 bytes .../install_headers.cpython-310.pyc | Bin 0 -> 1787 bytes .../__pycache__/install_lib.cpython-310.pyc | Bin 0 -> 5189 bytes .../install_scripts.cpython-310.pyc | Bin 0 -> 2216 bytes .../__pycache__/py37compat.cpython-310.pyc | Bin 0 -> 1057 bytes .../__pycache__/register.cpython-310.pyc | Bin 0 -> 8700 bytes .../command/__pycache__/sdist.cpython-310.pyc | Bin 0 -> 14516 bytes .../__pycache__/upload.cpython-310.pyc | Bin 0 -> 5392 bytes .../setuptools/_distutils/command/bdist.py | 143 + .../_distutils/command/bdist_dumb.py | 123 + .../_distutils/command/bdist_msi.py | 749 ++ .../_distutils/command/bdist_rpm.py | 579 ++ .../_distutils/command/bdist_wininst.py | 377 + .../setuptools/_distutils/command/build.py | 157 + .../_distutils/command/build_clib.py | 209 + .../_distutils/command/build_ext.py | 755 ++ .../setuptools/_distutils/command/build_py.py | 392 + .../_distutils/command/build_scripts.py | 152 + .../setuptools/_distutils/command/check.py | 148 + .../setuptools/_distutils/command/clean.py | 76 + .../setuptools/_distutils/command/config.py | 344 + .../setuptools/_distutils/command/install.py | 721 ++ .../_distutils/command/install_data.py | 79 + .../_distutils/command/install_egg_info.py | 84 + .../_distutils/command/install_headers.py | 47 + .../_distutils/command/install_lib.py | 217 + .../_distutils/command/install_scripts.py | 60 + .../_distutils/command/py37compat.py | 30 + .../setuptools/_distutils/command/register.py | 304 + .../setuptools/_distutils/command/sdist.py | 494 + .../setuptools/_distutils/command/upload.py | 214 + .../setuptools/_distutils/config.py | 130 + .../setuptools/_distutils/core.py | 249 + .../setuptools/_distutils/cygwinccompiler.py | 425 + .../setuptools/_distutils/debug.py | 5 + .../setuptools/_distutils/dep_util.py | 92 + .../setuptools/_distutils/dir_util.py | 210 + .../setuptools/_distutils/dist.py | 1257 +++ .../setuptools/_distutils/errors.py | 97 + .../setuptools/_distutils/extension.py | 240 + .../setuptools/_distutils/fancy_getopt.py | 457 + .../setuptools/_distutils/file_util.py | 238 + .../setuptools/_distutils/filelist.py | 355 + .../setuptools/_distutils/log.py | 77 + .../setuptools/_distutils/msvc9compiler.py | 788 ++ .../setuptools/_distutils/msvccompiler.py | 643 ++ .../setuptools/_distutils/py35compat.py | 19 + .../setuptools/_distutils/py38compat.py | 7 + .../setuptools/_distutils/spawn.py | 106 + .../setuptools/_distutils/sysconfig.py | 601 ++ .../setuptools/_distutils/text_file.py | 286 + .../setuptools/_distutils/unixccompiler.py | 325 + .../setuptools/_distutils/util.py | 548 ++ .../setuptools/_distutils/version.py | 363 + .../setuptools/_distutils/versionpredicate.py | 169 + .../site-packages/setuptools/_imp.py | 82 + .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 203 bytes .../__pycache__/ordered_set.cpython-310.pyc | Bin 0 -> 16339 bytes .../__pycache__/pyparsing.cpython-310.pyc | Bin 0 -> 198756 bytes .../_vendor/more_itertools/__init__.py | 4 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 284 bytes .../__pycache__/more.cpython-310.pyc | Bin 0 -> 110002 bytes .../__pycache__/recipes.cpython-310.pyc | Bin 0 -> 17984 bytes .../setuptools/_vendor/more_itertools/more.py | 3825 ++++++++ .../_vendor/more_itertools/recipes.py | 620 ++ .../setuptools/_vendor/ordered_set.py | 488 + .../setuptools/_vendor/packaging/__about__.py | 26 + .../setuptools/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-310.pyc | Bin 0 -> 610 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 466 bytes .../__pycache__/_manylinux.cpython-310.pyc | Bin 0 -> 7320 bytes .../__pycache__/_musllinux.cpython-310.pyc | Bin 0 -> 4632 bytes .../__pycache__/_structures.cpython-310.pyc | Bin 0 -> 2990 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 9313 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 4001 bytes .../__pycache__/specifiers.cpython-310.pyc | Bin 0 -> 22208 bytes .../__pycache__/tags.cpython-310.pyc | Bin 0 -> 12234 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3595 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 12945 bytes .../_vendor/packaging/_manylinux.py | 301 + .../_vendor/packaging/_musllinux.py | 136 + .../_vendor/packaging/_structures.py | 67 + .../setuptools/_vendor/packaging/markers.py | 304 + .../_vendor/packaging/requirements.py | 146 + .../_vendor/packaging/specifiers.py | 828 ++ .../setuptools/_vendor/packaging/tags.py | 484 + .../setuptools/_vendor/packaging/utils.py | 136 + .../setuptools/_vendor/packaging/version.py | 504 + .../setuptools/_vendor/pyparsing.py | 5742 +++++++++++ .../site-packages/setuptools/archive_util.py | 205 + .../site-packages/setuptools/build_meta.py | 290 + .../site-packages/setuptools/cli-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/cli-64.exe | Bin 0 -> 74752 bytes .../site-packages/setuptools/cli-arm64.exe | Bin 0 -> 137216 bytes .../site-packages/setuptools/cli.exe | Bin 0 -> 65536 bytes .../setuptools/command/__init__.py | 8 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 392 bytes .../command/__pycache__/alias.cpython-310.pyc | Bin 0 -> 2394 bytes .../__pycache__/bdist_egg.cpython-310.pyc | Bin 0 -> 13120 bytes .../__pycache__/bdist_rpm.cpython-310.pyc | Bin 0 -> 1607 bytes .../__pycache__/build_clib.cpython-310.pyc | Bin 0 -> 2481 bytes .../__pycache__/build_ext.cpython-310.pyc | Bin 0 -> 9910 bytes .../__pycache__/build_py.cpython-310.pyc | Bin 0 -> 8283 bytes .../__pycache__/develop.cpython-310.pyc | Bin 0 -> 6170 bytes .../__pycache__/dist_info.cpython-310.pyc | Bin 0 -> 1412 bytes .../__pycache__/easy_install.cpython-310.pyc | Bin 0 -> 65189 bytes .../__pycache__/egg_info.cpython-310.pyc | Bin 0 -> 22768 bytes .../__pycache__/install.cpython-310.pyc | Bin 0 -> 4218 bytes .../install_egg_info.cpython-310.pyc | Bin 0 -> 2943 bytes .../__pycache__/install_lib.cpython-310.pyc | Bin 0 -> 5158 bytes .../install_scripts.cpython-310.pyc | Bin 0 -> 2447 bytes .../__pycache__/py36compat.cpython-310.pyc | Bin 0 -> 4554 bytes .../__pycache__/register.cpython-310.pyc | Bin 0 -> 858 bytes .../__pycache__/rotate.cpython-310.pyc | Bin 0 -> 2525 bytes .../__pycache__/saveopts.cpython-310.pyc | Bin 0 -> 944 bytes .../command/__pycache__/sdist.cpython-310.pyc | Bin 0 -> 6973 bytes .../__pycache__/setopt.cpython-310.pyc | Bin 0 -> 4706 bytes .../command/__pycache__/test.cpython-310.pyc | Bin 0 -> 8150 bytes .../__pycache__/upload.cpython-310.pyc | Bin 0 -> 831 bytes .../__pycache__/upload_docs.cpython-310.pyc | Bin 0 -> 6200 bytes .../site-packages/setuptools/command/alias.py | 78 + .../setuptools/command/bdist_egg.py | 456 + .../setuptools/command/bdist_rpm.py | 40 + .../setuptools/command/build_clib.py | 101 + .../setuptools/command/build_ext.py | 328 + .../setuptools/command/build_py.py | 242 + .../setuptools/command/develop.py | 193 + .../setuptools/command/dist_info.py | 36 + .../setuptools/command/easy_install.py | 2354 +++++ .../setuptools/command/egg_info.py | 755 ++ .../setuptools/command/install.py | 132 + .../setuptools/command/install_egg_info.py | 82 + .../setuptools/command/install_lib.py | 148 + .../setuptools/command/install_scripts.py | 69 + .../setuptools/command/launcher manifest.xml | 15 + .../setuptools/command/py36compat.py | 134 + .../setuptools/command/register.py | 18 + .../setuptools/command/rotate.py | 64 + .../setuptools/command/saveopts.py | 22 + .../site-packages/setuptools/command/sdist.py | 196 + .../setuptools/command/setopt.py | 149 + .../site-packages/setuptools/command/test.py | 252 + .../setuptools/command/upload.py | 17 + .../setuptools/command/upload_docs.py | 202 + .../site-packages/setuptools/config.py | 751 ++ .../site-packages/setuptools/dep_util.py | 25 + .../site-packages/setuptools/depends.py | 176 + .../site-packages/setuptools/dist.py | 1156 +++ .../site-packages/setuptools/errors.py | 40 + .../site-packages/setuptools/extension.py | 55 + .../setuptools/extern/__init__.py | 73 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2953 bytes .../site-packages/setuptools/glob.py | 167 + .../site-packages/setuptools/gui-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/gui-64.exe | Bin 0 -> 75264 bytes .../site-packages/setuptools/gui-arm64.exe | Bin 0 -> 137728 bytes .../site-packages/setuptools/gui.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/installer.py | 104 + .../site-packages/setuptools/launch.py | 36 + .../site-packages/setuptools/monkey.py | 177 + .../site-packages/setuptools/msvc.py | 1805 ++++ .../site-packages/setuptools/namespaces.py | 107 + .../site-packages/setuptools/package_index.py | 1127 +++ .../site-packages/setuptools/py34compat.py | 13 + .../site-packages/setuptools/sandbox.py | 530 + .../setuptools/script (dev).tmpl | 6 + .../site-packages/setuptools/script.tmpl | 3 + .../site-packages/setuptools/unicode_utils.py | 42 + .../site-packages/setuptools/version.py | 6 + .../site-packages/setuptools/wheel.py | 213 + .../setuptools/windows_support.py | 29 + venv/lib64 | 1 + venv/pyvenv.cfg | 3 + 1444 files changed, 262514 insertions(+), 3 deletions(-) create mode 100644 config.ini create mode 100644 input/request_names.csv create mode 100644 output/NIRA_Austria_2023.request_attribute.tf create mode 100644 output/NIRA_Belgium_2023.request_attribute.tf create mode 100644 output/NIRA_Czech_Republic_2023.request_attribute.tf create mode 100644 output/NIRA_Denmark_2023.request_attribute.tf create mode 100644 output/NIRA_Estonia_2022.request_attribute.tf create mode 100644 output/NIRA_Finland_2023.request_attribute.tf create mode 100644 output/NIRA_France_2023.request_attribute.tf create mode 100644 output/NIRA_Germany_2023.request_attribute.tf create mode 100644 output/NIRA_Greece_2023.request_attribute.tf create mode 100644 output/NIRA_Hungary_2023.request_attribute.tf create mode 100644 output/NIRA_Iceland_2023.request_attribute.tf create mode 100644 output/NIRA_Ireland_2023.request_attribute.tf create mode 100644 output/NIRA_Italy_2023.request_attribute.tf create mode 100644 output/NIRA_Latvia_2022.request_attribute.tf create mode 100644 output/NIRA_Lithuania_2022.request_attribute.tf create mode 100644 output/NIRA_Luxembourg_2023.request_attribute.tf create mode 100644 output/NIRA_Netherlands_2023.request_attribute.tf create mode 100644 output/NIRA_Norway_2023.request_attribute.tf create mode 100644 output/NIRA_Poland_2023.request_attribute.tf create mode 100644 output/NIRA_Portugal_2023.request_attribute.tf create mode 100644 output/NIRA_Slovakia_2023.request_attribute.tf create mode 100644 output/NIRA_Spain_2023.request_attribute.tf create mode 100644 output/NIRA_Sweden_2023.request_attribute.tf create mode 100644 output/NIRA_Switzerland_2023.request_attribute.tf create mode 100644 output/NIRA_United_Kingdom_2023.request_attribute.tf create mode 100644 venv/bin/Activate.ps1 create mode 100644 venv/bin/activate create mode 100644 venv/bin/activate.csh create mode 100644 venv/bin/activate.fish create mode 100755 venv/bin/pip create mode 100755 venv/bin/pip3 create mode 100755 venv/bin/pip3.10 create mode 120000 venv/bin/python create mode 120000 venv/bin/python3 create mode 120000 venv/bin/python3.10 create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/LICENSE.rst create mode 100644 venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/__init__.py create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/override.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/override.py create mode 100644 venv/lib/python3.10/site-packages/distutils-precedence.pth create mode 100644 venv/lib/python3.10/site-packages/jinja2/__init__.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/_identifier.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/async_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/bccache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/compiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/constants.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/debug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/defaults.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/environment.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/filters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/idtracking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/lexer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/loaders.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/meta.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/nativetypes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/nodes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/optimizer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/runtime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/sandbox.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/tests.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/visitor.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/_identifier.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/async_utils.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/bccache.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/compiler.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/constants.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/debug.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/defaults.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/environment.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/ext.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/filters.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/idtracking.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/lexer.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/loaders.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/meta.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/nativetypes.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/nodes.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/optimizer.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/parser.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/py.typed create mode 100644 venv/lib/python3.10/site-packages/jinja2/runtime.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/sandbox.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/tests.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/utils.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/visitor.py create mode 100644 venv/lib/python3.10/site-packages/markupsafe/__init__.py create mode 100644 venv/lib/python3.10/site-packages/markupsafe/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/markupsafe/__pycache__/_native.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/markupsafe/_native.py create mode 100644 venv/lib/python3.10/site-packages/markupsafe/_speedups.c create mode 100755 venv/lib/python3.10/site-packages/markupsafe/_speedups.cpython-310-x86_64-linux-gnu.so create mode 100644 venv/lib/python3.10/site-packages/markupsafe/_speedups.pyi create mode 100644 venv/lib/python3.10/site-packages/markupsafe/py.typed create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/pip/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/build_env.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/configuration.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/main.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/pyproject.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/build_env.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/main.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/autocompletion.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/base_command.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/cmdoptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/command_context.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/main.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/main_parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/progress_bars.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/req_command.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/spinners.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/status_codes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/completion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/debug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/download.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/hash.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/help.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/list.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/search.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/show.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/completion.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/configuration.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/debug.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/download.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/freeze.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/hash.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/help.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/index.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/install.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/list.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/search.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/show.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/uninstall.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/configuration.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/installed.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/sdist.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/collector.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/sources.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/collector.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/package_finder.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/sources.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/_distutils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/_sysconfig.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/main.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/pkg_resources.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/candidate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/format_control.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/link.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/scheme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/target_python.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/candidate.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/direct_url.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/format_control.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/index.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/link.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/scheme.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/search_scope.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/selection_prefs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/target_python.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/auth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/download.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/session.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/auth.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/download.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/lazy_wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/session.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/xmlrpc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/metadata.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/metadata_editable.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/metadata_legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/wheel_editable.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/wheel_legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/freeze.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/editable_legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/prepare.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/pyproject.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/constructors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_file.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_set.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/constructors.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_file.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_install.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_set.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_tracker.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_uninstall.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/resolver.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/provider.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/reporter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/requirements.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/self_outdated_check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/_log.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/logging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/misc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/models.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/urls.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/_log.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/appdirs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/compatibility_tags.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/datetime.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/deprecation.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/direct_url_helpers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/distutils_args.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/egg_link.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/encoding.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/entrypoints.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/filesystem.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/filetypes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/glibc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/hashes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/inject_securetransport.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/logging.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/misc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/models.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/packaging.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/setuptools_build.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/subprocess.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/temp_dir.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/unpacking.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/urls.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/virtualenv.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/git.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/bazaar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/git.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/mercurial.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/subversion.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/versioncontrol.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/wheel_builder.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/distro.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/six.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/_cmd.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/adapter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/controller.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/heuristics.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/serialize.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/wrapper.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/cacert.pem create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/core.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/big5freq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/big5prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/chardistribution.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/charsetprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/chardetect.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/codingstatemachine.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cp949prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/enums.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/escprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/escsm.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/eucjpprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euckrfreq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euckrprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euctwfreq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euctwprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/gb2312freq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/gb2312prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/hebrewprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/jisfreq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/jpcntx.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langgreekmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langrussianmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langthaimodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langturkishmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/latin1prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/mbcssm.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/languages.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/sjisprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/universaldetector.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/utf8prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/ansi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/ansitowin32.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/initialise.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/win32.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/winterm.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/database.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/index.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/locators.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/manifest.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/markers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/metadata.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/resources.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/scripts.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/util.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distro.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_ihatexml.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_inputstream.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_tokenizer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/_base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/py.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/constants.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/lint.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/optionaltags.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/sanitizer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/whitespace.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/html5parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/serializer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/sax.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/dom.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/etree.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/dom.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/etree.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/codec.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/core.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/idnadata.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/intranges.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/package_data.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/uts46data.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/_version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/ext.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/fallback.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/build.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/colorlog.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/dirtools.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/envbuild.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/meta.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/wrappers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/py31compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/android.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/api.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/macos.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/unix.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/windows.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/colors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/bar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/colors.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/counter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/spinner.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/cmdline.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/console.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/filter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/filters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/_mapping.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/bbcode.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/groff.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/html.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/img.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/irc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/latex.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/other.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/rtf.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/svg.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/terminal.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/terminal256.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/_mapping.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/python.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/modeline.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/plugin.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/regexopt.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/scanner.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/sphinxext.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/style.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/styles/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/token.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/unistring.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/util.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/actions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/common.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/core.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/diagram/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/helpers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/results.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/testing.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/unicode.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/util.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/help.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/models.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__version__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/_internal_utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/adapters.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/api.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/auth.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/certs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/cookies.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/help.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/hooks.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/models.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/packages.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/sessions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/status_codes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/structures.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/providers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/reporters.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/structs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_lru_cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/align.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/box.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/color.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/console.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/control.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/json.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/live.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/region.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/status.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/style.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/table.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/tabulate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/text.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_cell_widths.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_emoji_codes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_emoji_replace.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_extension.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_inspect.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_log_render.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_loop.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_lru_cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_palettes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_pick.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_ratio.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_spinners.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_stack.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_timer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_windows.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_wrap.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/abc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/align.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/ansi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/bar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/box.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/cells.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/color.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/color_triplet.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/columns.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/console.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/constrain.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/containers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/control.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/default_styles.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/diagnose.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/emoji.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/errors.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/file_proxy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/filesize.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/highlighter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/json.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/jupyter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/layout.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/live.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/live_render.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/logging.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/markup.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/measure.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/padding.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/pager.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/palette.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/panel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/pretty.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/progress.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/progress_bar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/prompt.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/protocol.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/region.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/repr.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/rule.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/scope.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/screen.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/segment.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/spinner.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/status.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/style.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/styled.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/syntax.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/table.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/tabulate.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/terminal_theme.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/text.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/theme.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/themes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/traceback.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/tree.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/six.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/_asyncio.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/_utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/after.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/before.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/before_sleep.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/nap.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/retry.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/stop.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/tornadoweb.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/wait.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/_parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/_re.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/typing_extensions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/_collections.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/_version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/connection.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/connectionpool.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/socks.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/fields.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/filepost.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/six.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/poolmanager.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/request.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/connection.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/proxy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/queue.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/request.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/response.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/retry.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/ssl_.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/ssltransport.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/timeout.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/url.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/wait.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/vendor.txt create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/labels.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/mklabels.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/tests.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/x_user_defined.py create mode 100644 venv/lib/python3.10/site-packages/pip/py.typed create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/appdirs.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/_manylinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/_musllinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/version.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/pyparsing.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/extern/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/setuptools/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/_imp.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/archive_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/build_meta.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/dep_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/depends.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/dist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/glob.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/installer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/launch.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/monkey.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/msvc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/namespaces.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/package_index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/py34compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/sandbox.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/unicode_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/windows_support.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_deprecation_warning.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/debug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/dist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/log.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/_msvccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/archive_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/bcppcompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/ccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/cmd.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_dumb.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_msi.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_rpm.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_wininst.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_clib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_ext.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_py.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_scripts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/check.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/clean.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/config.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_data.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_egg_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_headers.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_lib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_scripts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/py37compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/register.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/upload.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/config.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/core.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/cygwinccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/debug.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/dep_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/dir_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/errors.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/extension.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/fancy_getopt.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/file_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/filelist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/log.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/msvc9compiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/msvccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/py35compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/py38compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/spawn.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/sysconfig.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/text_file.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/unixccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/version.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/versionpredicate.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_imp.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/more.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/recipes.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/ordered_set.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/_manylinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/_musllinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/version.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/pyparsing.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/archive_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/build_meta.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli-32.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli-64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli-arm64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/alias.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/build_clib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/build_ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/build_py.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/develop.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/dist_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/easy_install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/egg_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install_lib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install_scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/py36compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/register.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/rotate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/saveopts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/sdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/setopt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/upload.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/upload_docs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/alias.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/bdist_egg.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/bdist_rpm.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/build_clib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/build_ext.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/build_py.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/develop.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/dist_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/easy_install.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/egg_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install_egg_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install_lib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install_scripts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/launcher manifest.xml create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/py36compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/register.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/rotate.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/saveopts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/sdist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/setopt.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/test.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/upload.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/upload_docs.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/config.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/dep_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/depends.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/dist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/errors.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/extension.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/extern/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/extern/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/glob.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui-32.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui-64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui-arm64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/installer.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/launch.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/monkey.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/msvc.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/namespaces.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/package_index.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/py34compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/sandbox.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/script (dev).tmpl create mode 100644 venv/lib/python3.10/site-packages/setuptools/script.tmpl create mode 100644 venv/lib/python3.10/site-packages/setuptools/unicode_utils.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/version.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/wheel.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/windows_support.py create mode 120000 venv/lib64 create mode 100644 venv/pyvenv.cfg diff --git a/config.ini b/config.ini new file mode 100644 index 0000000..3d9528d --- /dev/null +++ b/config.ini @@ -0,0 +1,4 @@ +[PATHS] +Input=./input/ +Output=./output/ +Templates=./templates/ diff --git a/input/request_names.csv b/input/request_names.csv new file mode 100644 index 0000000..fcef22b --- /dev/null +++ b/input/request_names.csv @@ -0,0 +1,26 @@ +name +NIRA_Denmark_2023 +NIRA_France_2023 +NIRA_Slovakia_2023 +NIRA_Poland_2023 +NIRA_Czech_Republic_2023 +NIRA_Germany_2023 +NIRA_Netherlands_2023 +NIRA_Lithuania_2022 +NIRA_Portugal_2023 +NIRA_Latvia_2022 +NIRA_Estonia_2022 +NIRA_Switzerland_2023 +NIRA_Spain_2023 +NIRA_United_Kingdom_2023 +NIRA_Norway_2023 +NIRA_Finland_2023 +NIRA_Sweden_2023 +NIRA_Belgium_2023 +NIRA_Austria_2023 +NIRA_Ireland_2023 +NIRA_Luxembourg_2023 +NIRA_Italy_2023 +NIRA_Iceland_2023 +NIRA_Hungary_2023 +NIRA_Greece_2023 diff --git a/main.py b/main.py index 84d5bb6..6a7c8b9 100644 --- a/main.py +++ b/main.py @@ -40,7 +40,7 @@ DEFAULT_OUTPUT_PATH = pathlib.Path(config['PATHS']['Output']).absolute() DEFAULT_TEMPLATES_PATH = pathlib.Path(config['PATHS']['Templates']).absolute() env = jinja2.Environment(loader=jinja2.FileSystemLoader(DEFAULT_TEMPLATES_PATH)) -template = env.get_template("template.request_attribute.tf") +template = env.get_template("template.request_naming.tf") def checkDirectories(DEFAULT_INPUT_PATH, DEFAULT_OUTPUT_PATH, DEFAULT_TEMPLATES_PATH): for dir in [DEFAULT_INPUT_PATH, DEFAULT_OUTPUT_PATH, DEFAULT_TEMPLATES_PATH]: @@ -56,9 +56,10 @@ def renderFile(file, DEFAULT_OUTPUT_PATH): with open(file, newline='') as csvfile: data = csv.DictReader(csvfile, delimiter=';') - for row in data: + for row in data: + requestName = re.search("\_(.*)\_", str(row["name"])).group(1).replace('_',' ') content = template.render(CampaignName = row["name"], - RequestName = re.search("", str(row["name"]))) #ToDo + RequestName = requestName) filename = pathlib.PurePath.joinpath(DEFAULT_OUTPUT_PATH, str(row["name"]) + ".request_attribute.tf") with open(filename, mode='w+', encoding="utf-8") as output: diff --git a/output/NIRA_Austria_2023.request_attribute.tf b/output/NIRA_Austria_2023.request_attribute.tf new file mode 100644 index 0000000..de569c9 --- /dev/null +++ b/output/NIRA_Austria_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Austria_2023" { + enabled = true + naming_pattern = "Austria" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Austria_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Belgium_2023.request_attribute.tf b/output/NIRA_Belgium_2023.request_attribute.tf new file mode 100644 index 0000000..4aaff35 --- /dev/null +++ b/output/NIRA_Belgium_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Belgium_2023" { + enabled = true + naming_pattern = "Belgium" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Belgium_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Czech_Republic_2023.request_attribute.tf b/output/NIRA_Czech_Republic_2023.request_attribute.tf new file mode 100644 index 0000000..2f17aae --- /dev/null +++ b/output/NIRA_Czech_Republic_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Czech_Republic_2023" { + enabled = true + naming_pattern = "Czech Republic" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Czech_Republic_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Denmark_2023.request_attribute.tf b/output/NIRA_Denmark_2023.request_attribute.tf new file mode 100644 index 0000000..920b56f --- /dev/null +++ b/output/NIRA_Denmark_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Denmark_2023" { + enabled = true + naming_pattern = "Denmark" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Denmark_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Estonia_2022.request_attribute.tf b/output/NIRA_Estonia_2022.request_attribute.tf new file mode 100644 index 0000000..95547ab --- /dev/null +++ b/output/NIRA_Estonia_2022.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Estonia_2022" { + enabled = true + naming_pattern = "Estonia" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Estonia_2022" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Finland_2023.request_attribute.tf b/output/NIRA_Finland_2023.request_attribute.tf new file mode 100644 index 0000000..d386a9a --- /dev/null +++ b/output/NIRA_Finland_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Finland_2023" { + enabled = true + naming_pattern = "Finland" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Finland_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_France_2023.request_attribute.tf b/output/NIRA_France_2023.request_attribute.tf new file mode 100644 index 0000000..c0039aa --- /dev/null +++ b/output/NIRA_France_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_France_2023" { + enabled = true + naming_pattern = "France" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_France_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Germany_2023.request_attribute.tf b/output/NIRA_Germany_2023.request_attribute.tf new file mode 100644 index 0000000..42d3eb0 --- /dev/null +++ b/output/NIRA_Germany_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Germany_2023" { + enabled = true + naming_pattern = "Germany" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Germany_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Greece_2023.request_attribute.tf b/output/NIRA_Greece_2023.request_attribute.tf new file mode 100644 index 0000000..bc8dc00 --- /dev/null +++ b/output/NIRA_Greece_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Greece_2023" { + enabled = true + naming_pattern = "Greece" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Greece_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Hungary_2023.request_attribute.tf b/output/NIRA_Hungary_2023.request_attribute.tf new file mode 100644 index 0000000..3a3c266 --- /dev/null +++ b/output/NIRA_Hungary_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Hungary_2023" { + enabled = true + naming_pattern = "Hungary" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Hungary_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Iceland_2023.request_attribute.tf b/output/NIRA_Iceland_2023.request_attribute.tf new file mode 100644 index 0000000..a958d4f --- /dev/null +++ b/output/NIRA_Iceland_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Iceland_2023" { + enabled = true + naming_pattern = "Iceland" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Iceland_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Ireland_2023.request_attribute.tf b/output/NIRA_Ireland_2023.request_attribute.tf new file mode 100644 index 0000000..a4b1bcf --- /dev/null +++ b/output/NIRA_Ireland_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Ireland_2023" { + enabled = true + naming_pattern = "Ireland" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Ireland_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Italy_2023.request_attribute.tf b/output/NIRA_Italy_2023.request_attribute.tf new file mode 100644 index 0000000..9da8bda --- /dev/null +++ b/output/NIRA_Italy_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Italy_2023" { + enabled = true + naming_pattern = "Italy" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Italy_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Latvia_2022.request_attribute.tf b/output/NIRA_Latvia_2022.request_attribute.tf new file mode 100644 index 0000000..7d383b6 --- /dev/null +++ b/output/NIRA_Latvia_2022.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Latvia_2022" { + enabled = true + naming_pattern = "Latvia" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Latvia_2022" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Lithuania_2022.request_attribute.tf b/output/NIRA_Lithuania_2022.request_attribute.tf new file mode 100644 index 0000000..99b9318 --- /dev/null +++ b/output/NIRA_Lithuania_2022.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Lithuania_2022" { + enabled = true + naming_pattern = "Lithuania" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Lithuania_2022" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Luxembourg_2023.request_attribute.tf b/output/NIRA_Luxembourg_2023.request_attribute.tf new file mode 100644 index 0000000..32e0828 --- /dev/null +++ b/output/NIRA_Luxembourg_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Luxembourg_2023" { + enabled = true + naming_pattern = "Luxembourg" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Luxembourg_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Netherlands_2023.request_attribute.tf b/output/NIRA_Netherlands_2023.request_attribute.tf new file mode 100644 index 0000000..4820a39 --- /dev/null +++ b/output/NIRA_Netherlands_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Netherlands_2023" { + enabled = true + naming_pattern = "Netherlands" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Netherlands_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Norway_2023.request_attribute.tf b/output/NIRA_Norway_2023.request_attribute.tf new file mode 100644 index 0000000..b6ac5b1 --- /dev/null +++ b/output/NIRA_Norway_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Norway_2023" { + enabled = true + naming_pattern = "Norway" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Norway_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Poland_2023.request_attribute.tf b/output/NIRA_Poland_2023.request_attribute.tf new file mode 100644 index 0000000..ad95915 --- /dev/null +++ b/output/NIRA_Poland_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Poland_2023" { + enabled = true + naming_pattern = "Poland" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Poland_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Portugal_2023.request_attribute.tf b/output/NIRA_Portugal_2023.request_attribute.tf new file mode 100644 index 0000000..6503d29 --- /dev/null +++ b/output/NIRA_Portugal_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Portugal_2023" { + enabled = true + naming_pattern = "Portugal" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Portugal_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Slovakia_2023.request_attribute.tf b/output/NIRA_Slovakia_2023.request_attribute.tf new file mode 100644 index 0000000..fc6a076 --- /dev/null +++ b/output/NIRA_Slovakia_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Slovakia_2023" { + enabled = true + naming_pattern = "Slovakia" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Slovakia_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Spain_2023.request_attribute.tf b/output/NIRA_Spain_2023.request_attribute.tf new file mode 100644 index 0000000..b11f7d4 --- /dev/null +++ b/output/NIRA_Spain_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Spain_2023" { + enabled = true + naming_pattern = "Spain" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Spain_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Sweden_2023.request_attribute.tf b/output/NIRA_Sweden_2023.request_attribute.tf new file mode 100644 index 0000000..6d53382 --- /dev/null +++ b/output/NIRA_Sweden_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Sweden_2023" { + enabled = true + naming_pattern = "Sweden" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Sweden_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_Switzerland_2023.request_attribute.tf b/output/NIRA_Switzerland_2023.request_attribute.tf new file mode 100644 index 0000000..f89c45f --- /dev/null +++ b/output/NIRA_Switzerland_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_Switzerland_2023" { + enabled = true + naming_pattern = "Switzerland" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_Switzerland_2023" + } + } + } + } +} \ No newline at end of file diff --git a/output/NIRA_United_Kingdom_2023.request_attribute.tf b/output/NIRA_United_Kingdom_2023.request_attribute.tf new file mode 100644 index 0000000..a5347f9 --- /dev/null +++ b/output/NIRA_United_Kingdom_2023.request_attribute.tf @@ -0,0 +1,18 @@ +resource "dynatrace_request_naming" "NIRA_United_Kingdom_2023" { + enabled = true + naming_pattern = "United Kingdom" + conditions { + condition { + attribute = "SERVICE_REQUEST_ATTRIBUTE" + comparison { + # negate = false + string_request_attribute { + # case_sensitive = false + # match_on_child_calls = false + operator = "EXISTS" + request_attribute = "NIRA_United_Kingdom_2023" + } + } + } + } +} \ No newline at end of file diff --git a/venv/bin/Activate.ps1 b/venv/bin/Activate.ps1 new file mode 100644 index 0000000..b49d77b --- /dev/null +++ b/venv/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/venv/bin/activate b/venv/bin/activate new file mode 100644 index 0000000..05090b7 --- /dev/null +++ b/venv/bin/activate @@ -0,0 +1,69 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_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:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r 2> /dev/null + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="/home/arnaua/ws/audi/request-naming-generator/venv" +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1="(venv) ${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT="(venv) " + export VIRTUAL_ENV_PROMPT +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:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r 2> /dev/null +fi diff --git a/venv/bin/activate.csh b/venv/bin/activate.csh new file mode 100644 index 0000000..a7ef9eb --- /dev/null +++ b/venv/bin/activate.csh @@ -0,0 +1,26 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/home/arnaua/ws/audi/request-naming-generator/venv" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = "(venv) $prompt" + setenv VIRTUAL_ENV_PROMPT "(venv) " +endif + +alias pydoc python -m pydoc + +rehash diff --git a/venv/bin/activate.fish b/venv/bin/activate.fish new file mode 100644 index 0000000..8240027 --- /dev/null +++ b/venv/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/); you cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + 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" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV "/home/arnaua/ws/audi/request-naming-generator/venv" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/bin" $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) "(venv) " (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT "(venv) " +end diff --git a/venv/bin/pip b/venv/bin/pip new file mode 100755 index 0000000..fd80610 --- /dev/null +++ b/venv/bin/pip @@ -0,0 +1,8 @@ +#!/home/arnaua/ws/audi/request-naming-generator/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3 b/venv/bin/pip3 new file mode 100755 index 0000000..fd80610 --- /dev/null +++ b/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/home/arnaua/ws/audi/request-naming-generator/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3.10 b/venv/bin/pip3.10 new file mode 100755 index 0000000..fd80610 --- /dev/null +++ b/venv/bin/pip3.10 @@ -0,0 +1,8 @@ +#!/home/arnaua/ws/audi/request-naming-generator/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/python b/venv/bin/python new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/python3 b/venv/bin/python3 new file mode 120000 index 0000000..ae65fda --- /dev/null +++ b/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/venv/bin/python3.10 b/venv/bin/python3.10 new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python3.10 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst new file mode 100644 index 0000000..c37cae4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +Copyright 2007 Pallets + +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. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS 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/python3.10/site-packages/Jinja2-3.1.2.dist-info/METADATA b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/METADATA new file mode 100644 index 0000000..f54bb5c --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/METADATA @@ -0,0 +1,113 @@ +Metadata-Version: 2.1 +Name: Jinja2 +Version: 3.1.2 +Summary: A very fast and expressive template engine. +Home-page: https://palletsprojects.com/p/jinja/ +Author: Armin Ronacher +Author-email: armin.ronacher@active-4.com +Maintainer: Pallets +Maintainer-email: contact@palletsprojects.com +License: BSD-3-Clause +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Documentation, https://jinja.palletsprojects.com/ +Project-URL: Changes, https://jinja.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/jinja/ +Project-URL: Issue Tracker, https://github.com/pallets/jinja/issues/ +Project-URL: Twitter, https://twitter.com/PalletsTeam +Project-URL: Chat, https://discord.gg/pallets +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst +Requires-Dist: MarkupSafe (>=2.0) +Provides-Extra: i18n +Requires-Dist: Babel (>=2.7) ; extra == 'i18n' + +Jinja +===== + +Jinja is a fast, expressive, extensible templating engine. Special +placeholders in the template allow writing code similar to Python +syntax. Then the template is passed data to render the final document. + +It includes: + +- Template inheritance and inclusion. +- Define and import macros within templates. +- HTML templates can use autoescaping to prevent XSS from untrusted + user input. +- A sandboxed environment can safely render untrusted templates. +- AsyncIO support for generating templates and calling async + functions. +- I18N support with Babel. +- Templates are compiled to optimized Python code just-in-time and + cached, or can be compiled ahead-of-time. +- Exceptions point to the correct line in templates to make debugging + easier. +- Extensible filters, tests, functions, and even syntax. + +Jinja's philosophy is that while application logic belongs in Python if +possible, it shouldn't make the template designer's job difficult by +restricting functionality too much. + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + $ pip install -U Jinja2 + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +In A Nutshell +------------- + +.. code-block:: jinja + + {% extends "base.html" %} + {% block title %}Members{% endblock %} + {% block content %} + + {% endblock %} + + +Donate +------ + +The Pallets organization develops and supports Jinja and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, `please +donate today`_. + +.. _please donate today: https://palletsprojects.com/donate + + +Links +----- + +- Documentation: https://jinja.palletsprojects.com/ +- Changes: https://jinja.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/Jinja2/ +- Source Code: https://github.com/pallets/jinja/ +- Issue Tracker: https://github.com/pallets/jinja/issues/ +- Website: https://palletsprojects.com/p/jinja/ +- Twitter: https://twitter.com/PalletsTeam +- Chat: https://discord.gg/pallets + + diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/RECORD b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/RECORD new file mode 100644 index 0000000..c65e7ba --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/RECORD @@ -0,0 +1,59 @@ +Jinja2-3.1.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Jinja2-3.1.2.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +Jinja2-3.1.2.dist-info/METADATA,sha256=PZ6v2SIidMNixR7MRUX9f7ZWsPwtXanknqiZUmRbh4U,3539 +Jinja2-3.1.2.dist-info/RECORD,, +Jinja2-3.1.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +Jinja2-3.1.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 +Jinja2-3.1.2.dist-info/entry_points.txt,sha256=zRd62fbqIyfUpsRtU7EVIFyiu1tPwfgO7EvPErnxgTE,59 +Jinja2-3.1.2.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7 +jinja2/__init__.py,sha256=8vGduD8ytwgD6GDSqpYc2m3aU-T7PKOAddvVXgGr_Fs,1927 +jinja2/__pycache__/__init__.cpython-310.pyc,, +jinja2/__pycache__/_identifier.cpython-310.pyc,, +jinja2/__pycache__/async_utils.cpython-310.pyc,, +jinja2/__pycache__/bccache.cpython-310.pyc,, +jinja2/__pycache__/compiler.cpython-310.pyc,, +jinja2/__pycache__/constants.cpython-310.pyc,, +jinja2/__pycache__/debug.cpython-310.pyc,, +jinja2/__pycache__/defaults.cpython-310.pyc,, +jinja2/__pycache__/environment.cpython-310.pyc,, +jinja2/__pycache__/exceptions.cpython-310.pyc,, +jinja2/__pycache__/ext.cpython-310.pyc,, +jinja2/__pycache__/filters.cpython-310.pyc,, +jinja2/__pycache__/idtracking.cpython-310.pyc,, +jinja2/__pycache__/lexer.cpython-310.pyc,, +jinja2/__pycache__/loaders.cpython-310.pyc,, +jinja2/__pycache__/meta.cpython-310.pyc,, +jinja2/__pycache__/nativetypes.cpython-310.pyc,, +jinja2/__pycache__/nodes.cpython-310.pyc,, +jinja2/__pycache__/optimizer.cpython-310.pyc,, +jinja2/__pycache__/parser.cpython-310.pyc,, +jinja2/__pycache__/runtime.cpython-310.pyc,, +jinja2/__pycache__/sandbox.cpython-310.pyc,, +jinja2/__pycache__/tests.cpython-310.pyc,, +jinja2/__pycache__/utils.cpython-310.pyc,, +jinja2/__pycache__/visitor.cpython-310.pyc,, +jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958 +jinja2/async_utils.py,sha256=dHlbTeaxFPtAOQEYOGYh_PHcDT0rsDaUJAFDl_0XtTg,2472 +jinja2/bccache.py,sha256=mhz5xtLxCcHRAa56azOhphIAe19u1we0ojifNMClDio,14061 +jinja2/compiler.py,sha256=Gs-N8ThJ7OWK4-reKoO8Wh1ZXz95MVphBKNVf75qBr8,72172 +jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 +jinja2/debug.py,sha256=iWJ432RadxJNnaMOPrjIDInz50UEgni3_HKuFXi2vuQ,6299 +jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 +jinja2/environment.py,sha256=6uHIcc7ZblqOMdx_uYNKqRnnwAF0_nzbyeMP9FFtuh4,61349 +jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 +jinja2/ext.py,sha256=ivr3P7LKbddiXDVez20EflcO3q2aHQwz9P_PgWGHVqE,31502 +jinja2/filters.py,sha256=9js1V-h2RlyW90IhLiBGLM2U-k6SCy2F4BUUMgB3K9Q,53509 +jinja2/idtracking.py,sha256=GfNmadir4oDALVxzn3DL9YInhJDr69ebXeA2ygfuCGA,10704 +jinja2/lexer.py,sha256=DW2nX9zk-6MWp65YR2bqqj0xqCvLtD-u9NWT8AnFRxQ,29726 +jinja2/loaders.py,sha256=BfptfvTVpClUd-leMkHczdyPNYFzp_n7PKOJ98iyHOg,23207 +jinja2/meta.py,sha256=GNPEvifmSaU3CMxlbheBOZjeZ277HThOPUTf1RkppKQ,4396 +jinja2/nativetypes.py,sha256=DXgORDPRmVWgy034H0xL8eF7qYoK3DrMxs-935d0Fzk,4226 +jinja2/nodes.py,sha256=i34GPRAZexXMT6bwuf5SEyvdmS-bRCy9KMjwN5O6pjk,34550 +jinja2/optimizer.py,sha256=tHkMwXxfZkbfA1KmLcqmBMSaz7RLIvvItrJcPoXTyD8,1650 +jinja2/parser.py,sha256=nHd-DFHbiygvfaPtm9rcQXJChZG7DPsWfiEsqfwKerY,39595 +jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2/runtime.py,sha256=5CmD5BjbEJxSiDNTFBeKCaq8qU4aYD2v6q2EluyExms,33476 +jinja2/sandbox.py,sha256=Y0xZeXQnH6EX5VjaV2YixESxoepnRbW_3UeQosaBU3M,14584 +jinja2/tests.py,sha256=Am5Z6Lmfr2XaH_npIfJJ8MdXtWsbLjMULZJulTAj30E,5905 +jinja2/utils.py,sha256=u9jXESxGn8ATZNVolwmkjUVu4SA-tLgV0W7PcSfPfdQ,23965 +jinja2/visitor.py,sha256=MH14C6yq24G_KVtWzjwaI7Wg14PCJIYlWW1kpkxYak0,3568 diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/REQUESTED b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/WHEEL b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/WHEEL new file mode 100644 index 0000000..becc9a6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.1) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt new file mode 100644 index 0000000..7b9666c --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[babel.extractors] +jinja2 = jinja2.ext:babel_extract[i18n] diff --git a/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/top_level.txt new file mode 100644 index 0000000..7f7afbf --- /dev/null +++ b/venv/lib/python3.10/site-packages/Jinja2-3.1.2.dist-info/top_level.txt @@ -0,0 +1 @@ +jinja2 diff --git a/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/LICENSE.rst b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/LICENSE.rst new file mode 100644 index 0000000..9d227a0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +Copyright 2010 Pallets + +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. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS 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/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/METADATA b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/METADATA new file mode 100644 index 0000000..bced165 --- /dev/null +++ b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/METADATA @@ -0,0 +1,93 @@ +Metadata-Version: 2.1 +Name: MarkupSafe +Version: 2.1.3 +Summary: Safely add untrusted strings to HTML/XML markup. +Home-page: https://palletsprojects.com/p/markupsafe/ +Maintainer: Pallets +Maintainer-email: contact@palletsprojects.com +License: BSD-3-Clause +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Documentation, https://markupsafe.palletsprojects.com/ +Project-URL: Changes, https://markupsafe.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/markupsafe/ +Project-URL: Issue Tracker, https://github.com/pallets/markupsafe/issues/ +Project-URL: Chat, https://discord.gg/pallets +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst + +MarkupSafe +========== + +MarkupSafe implements a text object that escapes characters so it is +safe to use in HTML and XML. Characters that have special meanings are +replaced so that they display as the actual characters. This mitigates +injection attacks, meaning untrusted user input can safely be displayed +on a page. + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + pip install -U MarkupSafe + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +Examples +-------- + +.. code-block:: pycon + + >>> from markupsafe import Markup, escape + + >>> # escape replaces special characters and wraps in Markup + >>> escape("") + Markup('<script>alert(document.cookie);</script>') + + >>> # wrap in Markup to mark text "safe" and prevent escaping + >>> Markup("Hello") + Markup('hello') + + >>> escape(Markup("Hello")) + Markup('hello') + + >>> # Markup is a str subclass + >>> # methods and operators escape their arguments + >>> template = Markup("Hello {name}") + >>> template.format(name='"World"') + Markup('Hello "World"') + + +Donate +------ + +The Pallets organization develops and supports MarkupSafe and other +popular packages. In order to grow the community of contributors and +users, and allow the maintainers to devote more time to the projects, +`please donate today`_. + +.. _please donate today: https://palletsprojects.com/donate + + +Links +----- + +- Documentation: https://markupsafe.palletsprojects.com/ +- Changes: https://markupsafe.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/MarkupSafe/ +- Source Code: https://github.com/pallets/markupsafe/ +- Issue Tracker: https://github.com/pallets/markupsafe/issues/ +- Chat: https://discord.gg/pallets diff --git a/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/RECORD b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/RECORD new file mode 100644 index 0000000..3c4f00f --- /dev/null +++ b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/RECORD @@ -0,0 +1,14 @@ +MarkupSafe-2.1.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +MarkupSafe-2.1.3.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 +MarkupSafe-2.1.3.dist-info/METADATA,sha256=Wvvh4Tz-YtW24YagYdqrrrBdm9m-DjTdqJWhxlbU6-0,3003 +MarkupSafe-2.1.3.dist-info/RECORD,, +MarkupSafe-2.1.3.dist-info/WHEEL,sha256=iZaXX0Td62Nww8bojl0E84uJHjT41csHPKZmbUBbJPs,152 +MarkupSafe-2.1.3.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11 +markupsafe/__init__.py,sha256=xIItqrn1Bwi7FxPJO9rCVQBG0Evewue1Tl4BV0l9xEs,10338 +markupsafe/__pycache__/__init__.cpython-310.pyc,, +markupsafe/__pycache__/_native.cpython-310.pyc,, +markupsafe/_native.py,sha256=GR86Qvo_GcgKmKreA1WmYN9ud17OFwkww8E-fiW-57s,1713 +markupsafe/_speedups.c,sha256=X2XvQVtIdcK4Usz70BvkzoOfjTCmQlDkkjYSn-swE0g,7083 +markupsafe/_speedups.cpython-310-x86_64-linux-gnu.so,sha256=huh9xBZy3L1q1ar3y-f44Ozfa25Rg6xiomsq8MThk_Y,44240 +markupsafe/_speedups.pyi,sha256=vfMCsOgbAXRNLUXkyuyonG8uEWKYU4PDqNuMaDELAYw,229 +markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/WHEEL b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/WHEEL new file mode 100644 index 0000000..2d1b4b8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.40.0) +Root-Is-Purelib: false +Tag: cp310-cp310-manylinux_2_17_x86_64 +Tag: cp310-cp310-manylinux2014_x86_64 + diff --git a/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/top_level.txt new file mode 100644 index 0000000..75bf729 --- /dev/null +++ b/venv/lib/python3.10/site-packages/MarkupSafe-2.1.3.dist-info/top_level.txt @@ -0,0 +1 @@ +markupsafe diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py b/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py new file mode 100644 index 0000000..f707416 --- /dev/null +++ b/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py @@ -0,0 +1,132 @@ +import sys +import os +import re +import importlib +import warnings + + +is_pypy = '__pypy__' in sys.builtin_module_names + + +warnings.filterwarnings('ignore', + r'.+ distutils\b.+ deprecated', + DeprecationWarning) + + +def warn_distutils_present(): + if 'distutils' not in sys.modules: + return + if is_pypy and sys.version_info < (3, 7): + # PyPy for 3.6 unconditionally imports distutils, so bypass the warning + # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250 + return + warnings.warn( + "Distutils was imported before Setuptools, but importing Setuptools " + "also replaces the `distutils` module in `sys.modules`. This may lead " + "to undesirable behaviors or errors. To avoid these issues, avoid " + "using distutils directly, ensure that setuptools is installed in the " + "traditional way (e.g. not an editable install), and/or make sure " + "that setuptools is always imported before distutils.") + + +def clear_distutils(): + if 'distutils' not in sys.modules: + return + warnings.warn("Setuptools is replacing distutils.") + mods = [name for name in sys.modules if re.match(r'distutils\b', name)] + for name in mods: + del sys.modules[name] + + +def enabled(): + """ + Allow selection of distutils by environment variable. + """ + which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'stdlib') + return which == 'local' + + +def ensure_local_distutils(): + clear_distutils() + + # With the DistutilsMetaFinder in place, + # perform an import to cause distutils to be + # loaded from setuptools._distutils. Ref #2906. + add_shim() + importlib.import_module('distutils') + remove_shim() + + # check that submodules load as expected + core = importlib.import_module('distutils.core') + assert '_distutils' in core.__file__, core.__file__ + + +def do_override(): + """ + Ensure that the local copy of distutils is preferred over stdlib. + + See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 + for more motivation. + """ + if enabled(): + warn_distutils_present() + ensure_local_distutils() + + +class DistutilsMetaFinder: + def find_spec(self, fullname, path, target=None): + if path is not None: + return + + method_name = 'spec_for_{fullname}'.format(**locals()) + method = getattr(self, method_name, lambda: None) + return method() + + def spec_for_distutils(self): + import importlib.abc + import importlib.util + + class DistutilsLoader(importlib.abc.Loader): + + def create_module(self, spec): + return importlib.import_module('setuptools._distutils') + + def exec_module(self, module): + pass + + return importlib.util.spec_from_loader('distutils', DistutilsLoader()) + + def spec_for_pip(self): + """ + Ensure stdlib distutils when running under pip. + See pypa/pip#8761 for rationale. + """ + if self.pip_imported_during_build(): + return + clear_distutils() + self.spec_for_distutils = lambda: None + + @staticmethod + def pip_imported_during_build(): + """ + Detect if pip is being imported in a build script. Ref #2355. + """ + import traceback + return any( + frame.f_globals['__file__'].endswith('setup.py') + for frame, line in traceback.walk_stack(None) + ) + + +DISTUTILS_FINDER = DistutilsMetaFinder() + + +def add_shim(): + sys.meta_path.insert(0, DISTUTILS_FINDER) + + +def remove_shim(): + try: + sys.meta_path.remove(DISTUTILS_FINDER) + except ValueError: + pass diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..44199797ac1c63a80e6bbded503e3763145ac7be GIT binary patch literal 5126 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 Lp0iIo=A89kG-D3- literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/override.cpython-310.pyc b/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/override.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2825e8515747071b08e6915c322fdd4298c1b873 GIT binary patch literal 251 zcmZ8cOA5j;6imd0ABw$(V10^P5l`U81B7TEZD^a+d@5ag5nXx)Z_=%|aAhh8;=r57 zyv3Ut9YrG&@VE|f7WT6fzvuj)1l^NqubnUML~B1Gu_0%Tl9%KKwWU4!}c*dfj#K`TaK+eknW7pQf?-Y+>Uo z{Hvb}juSh?i3{;oQb@PRR>AN#@;2GFTtqICqUBOjN_WVPJ<_w> zLEa_1mb=J((zo109*}|MUF1EoXStv3rw8P~@&Nge99rH(J|ah!_mPjuvE>8g6LMnt zFgZ`{m{)YNY z`PA2tW(n2c10ORE{(H%^2JSQNXSoFbey%5i5B+bnpGh%gG2ked3x4(E-782oSD5X`UHv;qBNG;X+*5nGo*U<=eE;uOk^4*jS}Bkwsh3g; zX_j90ERELEcrEm;$a#!Gy`}eE&NWM68QWg^Y9qM2G#~6?En^!$@ECr=gNm1qdrcL* z5;O*rh<7s)ELykS7cA1N-q!j+R$k*a=aJdV%JJ?*oG0r!>i0ByOUG-&yO)^5Y&D>B zGog&rQ39*%FqOs&80F(lr=QZd5GG=bH8T$JP#$-JvCRi9G11N7>Sn`>5}-1)Z%mnO zGWDPFUPhG)Bf&MyH1@Y_d!tIwYd?BZnrsBN6(kVpkmg!|if9HON}mru8$N%1`D{@R z!&pRNxG0YzyRFdmBgFPkrg9VBj(DJH6xypI?AG) z*te%-!&prtEhB9s9V1;MJtMm)i?VzyAlWz8z{sAFeIo}bi&CyxqU515j*J`|IWcl- z#79}w!f*=Gd}?9%ha)ddhmpTW!9=7GP|0adgZC<+dCUR{?{ZN3iqjNd-_;m6NUDVl zrg#cL!bU-6zj{2rPXom?TxE}Sqk=c)=6D{2A>&Mk;V_#oDqp0w%DyxouewGlI$qH$ J{QqBN>mQHN#G3#B literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/_identifier.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/_identifier.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..613c2c93a6cac834d46f68a55853f24dca20d1c2 GIT binary patch literal 2094 zcmYk7%Wvb>6~^V678wM{w*Ny=+^B69-4sRtf^ND?TNG-nOq9&Xt{(}qquv_Zj757! zvTRGDMZHLhrX*4iOOyn3-FA`1I5SQ%=gO9Le-E%(PdoHg8ZN2l( z+aY}F)wiRqw?d)&VDi(?Lrnevc7K6kGqkz!B=kWj8d5hlA6#vG@L+S}PoZ}o{ui~- zANPNY1^)b(&;L38m&E>U|0nlVihY%Psj!#xm&@D4ZSppKo4L(>U0`3IzdB^EYOi{C zMRs?2S7UdLyY^k@&R}=eH_A6X_U*xUE%sgSjmh3PZ|0;H8L4GbFAy|Rn+R=Ebp(s9 z%8afqNIPYuU6H0SYNV(!MewMxVAMROrh-tSW}TWEwGxb4DQbDtLbaWyc8=P4Y9C@E zQ@cd%I<+-wFQ@}&Cq*5PI&kVq(sQKeNrzLHNmoekk=`eLNCuoniVTkoIL!>1IfQ3q z!fMK7*2&b!L{H|Dy6|>W)b*$fuazb%M^>IJSS^{XB3UJ}>SSqjouq46>?GM)ggn^? z2r}6v>Pd`xY3iZePg5V|exCX$_hst8pnj41b?R$0z-EIK4Llma>ZHkm)yb0st0R;1 zf}A2bb#gRvv80w=Zv`LKH*%Z9Da@Db&_9S zAz0jQF>X7&*I>Li=1zfe=Y%`Y5jxzlxP#stmpfyG8$QOPV}u#PawRQS32BvhzDgC? zDs{O^U9D10sNO1lwn|^G9Gk72{%W{fja9Z9FYhIT-And;vV5OB7iC+NT_(zNab6YY zHF41s7k!~7g_;%Wp-?p@)V8QgqMi_S7`2ShRD{0JmZH&OqG5?7)xO$glRHi+QJ+Pb0lo+ zY#YMv3fo$DtLurx)|2D)L`AUI6K6ef*Ecd--yE;KrC-R+{lcN@7vvGcF!c-gtzt-l z49J3`AaM*Pfe0*k&TN8~UvL{px^2HO&qB-#z9LBsLlVHRB(h)$kwhlh3&hk{(t#(9 zOu8Ki*HMJKf_7tlYZHVF!1Scw?pVB3$_{v#e zDI;-iLY$+o%L>G$=__i`sfx1(FI4FqfZ#Np8!!t54xpnuUBN`Z@D<|#!YKPnFW9a( z0>O5@rLPQ5AO>xq2LdIx58(y^JGeNpI|spg9^yp~vF<2XZuBL66*bPJ%nK_y%&KG`haSX9I@h=7yQ1vUBCc~fuD-Z*KQ&ezEm24&uhrkGg z5M>N*1KTnR}55)3nYvhxC(^rSA*|ORmy^VAkF|hRp|<7paF1U zRmt$HS^+{U`qgF{qIvMWif`2SYR>-aFW-Im`oT{0^;;iqJ>8Byf!L1h?L~LudT8h8 z_;3Aj_+K>q@z&F5II_@_%?}j7$o3Zdt^dI}t-8~kMJdMR4v&YeRbSJX6wG;j< z8viW(B=-04_7{5}Z^hq#@7KQy@5c6`Y&-Jdr;*3e-S8)|_$QIyg#Q-XjK=q3AH||O i?`?na`qA&6Zf)*AiT-{AJMTWi@F?`NhYvO${r?A<0R2J$ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/async_utils.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/async_utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..667058f857c229614c632ccfa3eb3aa35de0f66d GIT binary patch literal 2731 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 t8HrV@Re92Q@((B!e>Nah!H8<={uc%LGkpL6 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/compiler.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/compiler.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b2aec47812a7e94e993bff61e46be74e98194c8 GIT binary patch literal 54568 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 VG~yp0KOcucF!1slVF57_b^x!;kq-a> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/constants.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/constants.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ed93487d7eac377d77371ccff39271ce0e99510 GIT binary patch literal 1555 zcmYk6yN)GA42I9Fgfwbt1Kyz04Q885h7clv0EuPMjt~;bs!p{}9}jiusmnq0C?o`A zywaw;1reY7j1aAE+g0sy{q@_f^77?$;Q8~9Nq+z6aQNE>|9@^6e9hNx5zFD1!*X+f zc=f`6fwOl$@P?6^&(1Hrx@ilVSLY>*O-6kjK3%nR=aY%t#rdsE#;##F-zPspFV*?6 z4sl04N?t~C$LRB--G%5|bD^YEmV#z7u^JC-TY+j4y7VD++6QdQx{}9Hz3GdOQHfDK zg2`yp7GP9=)IREN5oy#mnp^y)$I+%mLBD9Qy{@Wtj5TX(YE!tD2=b+532qr`Uvsib z>uiPYPNL|E6HOS;xFvEd$%K#!P^kr9LYsHDJ!SA}!w0 znXJ#zPcl{|?5UCqjnTW)XhGas{Y4k=&UR$d@NBduSYbMYu}THm`H4tg0Hr<*3$BaP zv`JkQh?;qWY~38l<|=j9)sm)L8)RuMDieksClz3u zsz-j}li{4;fdv(#mq*IVQkvyzS)i=PGlEngqRS;ud?TeN?AC#vhq1j&;*A_!S+uxP zgCer8;x=E|L#_HZSr|)<45YEov~j||=M=8pc4mQv#b~$zVS~!OWH7q$2d1vF8+nWy zJwTvh{iSZJUfRAFk(BgoRTBhkwUEVa#EXIoqY`}Y)kmve6L#);E}7I#RjK}A0HD?6 z=#^m2ue$Ty=oiTj{vrjmFKx28CisZe4GK1m#HM{}B`CX?DmY^-mPa(%3AEz^IQ9u# zDBTQrq1UL>PDOF7er2N*yVS`Pkvm1H%Yayz0R7c4RyvqER}t$+<&JWerW8swWFzuB z&`(!G!7)gc8{J)eRRUk+Y^V1a(LOL;IF6;teiHf!H_2V-DnVX6B{iX?lDtcaqi?k1 zWyEcC()Povn-3p<|MuOtZ{C0R-v9je-8c7t9qJ2i*i-|JG&? zCv&x8Z2gXErL*r=KyZDOIs@l2(@gXB)JfUruRr}{hG@CleE8LK8O;xxAN*&tU5?iJ X?e+Hb;r2`Jml5SFyXKp1etYvT_hmMz literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/debug.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/debug.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..09ba60d9c726eb933d81f3f750ca636f096b1fe1 GIT binary patch literal 4011 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/environment.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/environment.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b37ee2919816e6063b1dc26ac39d2b77766d3316 GIT binary patch literal 53405 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/ext.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/ext.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8988972f8813819068d90ee5aa4678b3bc4a2b9e GIT binary patch literal 25716 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 SIES+Efcw7n7Tp!I#{UEIm%V5J literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/filters.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/filters.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f8969ff2b3e7a405ff2382305c166072ff57689 GIT binary patch literal 51204 zcmdVD3t$}AbsoGsJ3Ck`K#&5TA}MJEiUJ^k%eNjhNsFXNih4k_2uT(s8oSsTfJ*|q z;LJiGmJ3G`<%o1F$N8N!X>F&Z8@FMaSDQ9T|0a!FH~IhM|I@@xlQ`SFoy1WZ=cPD_ zsaL=6+&hn5EGWux`u7L9cV}nr!!b$NPL+;;(xvP z@c=&l{uPOYlNe1nNynHX7&YWOHJXxdbJWz|X?&-qtm%%?jwH*NQ<>?`(N4Ke z<2pN1Tdq5By=-)uTxW3IGungePA5CHe0s&`3c2pW^-ZHU$#plbdq;ca zdKs=)j;@sJo~c#St4CMM_427T(`!f9%Jqt=b<;PG-YnNQ;d=e(db#e!^@h<6a=jAQ z8%H`wO{oxj`J z=j?wueIYsefaKcbvX1vV51@_%u{#HxgSc~0LqvGCVYbj?cP&#H=R*ROz7Lp8=aBOt zN<9cz4r4C&IE3X0a>aV%9CZ()^lpsYL(VaQ&om z?eKeQE04B{jw5Y7{+>&^&V-aa-Z?4byI-jE6ezVMBf1@PcG@|E5&QsVcv8mi{W8bI z+kKen-R(yYvz>LOoN1~333rA2#D(Od^1D#S3DzU{b^W@^PDSb(!5lmQD0e$&-FpP9 zEXQ+vK=>qje`jZZXSMU`&P|a*VcD8~ zcE~yJ)aBU+-Sw#JLFWbMMfv>w3J8L&vYI}4@mjP1kYKP^YXnY`%goNFY8u&oGZ>}rEEb) z;-6t8#x=Fy177ld&gU>nMb!4N9=*Fz*T0Z?z6Y52{mxau?BMw$;qy_9@F+(8UphaC zXD;sVc76yg=bRswRPmi3aefpvPoU)elH*^6u<^O&{A=gOPFuW_$6@Hc6{!awG5DTzUcf{DR~yHpOx0*rB&;#@<3GjSDgPQr9HIxxbv&duVJoy z)Z|}aEytZ-cfKUFT9w&WEADSN4dj~DcR0uY-T6)2dEPZo&&BTkmh;~h!gH%kMPzU=&g zv^OtsEI1#QR`yBmW=tlh>~{Xp`6J0+ll-?jhVzwA8%|Vi0IkGloGtDHH~wRkv%m{$ z?)q5n#Vur=*P2=gYHsG%?91Y^-Oisl|3jcV-xj*&I+lX;Pf-UUJ&zf!T}Xz|HkWQ~ z{RH~>)v$HlN8n*oK8I`bpE-XnFxF9jJ*XeF+nn<+kn=B{zml8_!I-tJ?{(*|CD(^h z--oYT-`AYKk(}Rh-TMC4`8&z=0_uC=y7hhCxh6SZyl#DOIB!a>mr&nJ*RAg@=WWS( zp-HwR*5{mekOoravWW~RBY{s+=;ikvIlN96k^ zw_Cn@_4i8mS>*bJ`?TC$<+}2{+I^pVuW={jd#yY3$z&;kxg3+<>s&{^Z+1uId%gQX z)bibI7j12DtMa|kJt*I|xDU$rt?qgGzRi7HzHRroeBbUqC*OVUGxEL3{TBJY!@VHi zo81Rc`-pq)lgZBk3bb&iJ0(y0-C6k_a2Moz(0x(9?{ZJe_ucNJ@;&7C$oCfalziu0 zPrkRh56ky9cT&E$yLtKE;XWqcJKY2Fy~};SeD8KYB;WVAMZ)41+#~MGfal&%r#_b) z{g`8%NDMrYOeAXe9-J*rRkxJNcGaDpnJQFWdjdCH&$nlN*RkhH)l+u$lxyen^?cs0 z%(z~mTJdtPQ7bV#m~5m9<3)U>i>C^uGA=qMy~^y&_&hEx*Dn@k+^e{Htl*uQox#0~ zUzwVw4T6?Wd(n}TpWA8;FSvHDsE&8v(?I2p#&JBUvv0Cy_?j%=L=Io#;fSy%tXbTE)bl~S#N6W>};j#BC~}br5dlg z4mZ`(br=;K3LEN(E?1o>l%4U)IoFAmC~{=ue<}QU03Uxn5;p-|Pl9?LH#K2kZ6t>= z9rHwDFx}{QsNg>|^4Oyd%X6!YEAHny1n8A!}zZH4YZ zE_gVMZXqXHbjQXT*|D+diZeUK>+UfOePK#JNdcw2I|KNmo_MU?yA{bD`1tI1CefRe zJB{R#9HuKhUYRXBjpQSZ4{n!I3m%c{oZRMo5} zE~l>~u7I%W7}vpM?c9-yM;fvVzFn|qDt>jws}x<|$8BJcy=P*!T-=kNE}U`43e~DN z=~jXA`J4^>c;5A@zKt$nnEkAcziP#vs?51wvA`P3j;&_cw<{n{&#unTxM;@TQu1?y zRwG;TOJ%=WC>LGtZUEazRvRXYR=utKm6ocmCcSO=)iPF%uF_<=;<;mNDTn92g(RC= zku(kO9+vKk5s62fY;+R-()euEZFI#t+UNik7G|faMGkxL$5G^mXzdRn!AK@ABrgG_ ztI5+qX{HnAD~VThZA!qik@e98rbDpWB(l{4U4 zGs3PWOTbAxgv*}rD${mBhLS`L&Q=*e?G~#MgY$q^7|sbP9_wPxwjZouHVPgFeu^XK z1T#`7az3M0q@!dP?e&ItVgA0n9*>lFIAn~`P zrW)PBrcwvW^Mh#t#=8$U6et4V1N>jxaxh zq)*_2NGjysRZm_9s$NMhq{^v!auVOdg%kDEgBa6Gkm#zZ)25R~%8yAcqC)10lw(11 z3s5;zxC(y!9Tu3%0dlIQdOm>~;&qQxU>P7%sKQ z1T|r~5M>(-m+T`DD}>!@W`=y@^Fn@#x#4$6;U&^LSA9|_R&1|OTr>o#GSH9Ie)wDg z0*xZ+aFq7geZ1a2#B@jBkp7t~m9dm<&uvrp)z2NdZOGtOi;5txC5M_;1X;0w87J`Z zS0R}MIi0i?l8T>whjA8bfgs{w(mR0XSB-{|+a@H{%5$@O*)`1X%>GGM$GTS~YJ-Bd z)8L?`*b)&@OjJtMx@grR>*hz8#Z$O&5|e=MBKYm91Rw>|xR3<bA2aXwi*K+2!3y%jhxgFw7O+2XLcd5|Sod0v||ljU*rPw;`#MfhRm`66h658mnpA zdKu5afKpd5Zx=B3b<8N_4Rg4u!Y1UjQK2Ab_d*ifD{&>^bz^0~)R&RQ5!GmPlzgW& zS*kWtSdOp&96{Me@>~nTdPi~l0zQJNcA_@46uWMRtc_%DFcr;!$B_k%kj=KXL%ON6 z9hyZmDHAij3Zp6XR9jumJy|YQ%FjZs8M3wHc(Q36ng;ex)WN}Yl-Nc-Zqy;NT~1xW z>R2_aX|9SK)WKBk(BU$qw4!TMptfZv17QpdZ{!qs(OhY2%7#2Q4)J5&b}F-!LezE# zTnJkk{PuH7Af>bjnXKbf!RN#)OxuZ@>M@rY5z@Tfyb|P+M3Ae;sf-C6s`87-q69Ky zMY7xQK8W8<9S$a5FzI1D4Y0@Wk}KnM>Vn}fr@YFJ%DprMgqwj?7KR~N#*i#P?Qyw7 zFKdElR|LljJ5l`yxZkmzLbV`bEG1mXH3j?0Cmt2)#)fQ*ZGtxs;TI!jKRI$_%YB+B zA1wH#qCMvoX0VThL`A_n5QMRP!VV&bH3V{}Y^w71+$jigT9gx}u0-M?wxQ+cregTv zmWvg~%?oS=+bKcBLuRlTk8`5o*uy1sTCEp*><8HwEO^pr&OV?8Z#Bu|uDb7_E)N3Z z)I4$sEELOI>*wl}&kvk&=Z947gZVs0rG)LYpbTm|UE#)5b_HQIYP?kEG>A{fx~>7j zYPGe`2KJRJRSi@Q=s9v6GJ%IJgKt+o7lJTzVT&NO_if&Bq|e5_t%Q{pyINptAcf}a zV-xm#W!5gcfJZv-*#1<(Kjr#EvU9=KLMp-DAHvvFq38~vZh*l`*)z4B(-7x!Hh};^ z797WQ_Uy5Dth1Bp78 z9`)-psi&}mJqzYXhBv}JH%MdbtbZ-JZ`fOldcal`!#dMQKHo}8oqM@qJvZa+{{gm} zL1MgMCi;@ucWSqR%tGXe@vNZ4U?#?|NMnu6F^y8*I{q|?2_6ZqVRDASI?2c7PAeeY z@y0%ZTp}s2>E$|>g^ZjvjAZ5=Z=987T+G{8v3kziz@JIKk*Z8Nja1p4gU$u?Q!SE# z1b@8dN66p9MI9a>Tu2-&#{A)r|`f0qUs>$+~$3V_HpNtjQiW<0{1~ z?=DEIVXkpdeA3s7GWs=g-@H54qTc+D})!DW@+Y zOSwzZJX)zZ$$y2c^3#`uRubjfykiDZ_h3ctF zRe5Q0__cTNC(9d^5mef#kv`W2`Z}Gsx4#fG8G_ib*D~Q%K`Fcp-T?c}3}N zZqYgzpszw%tPZnWvqUKZ+9te>wA_LkMIi3OEd}RhKFpBFS>#vn>vcAU<+_5eB?0lK z@Dz%pc8!O+pPX*o+l9=f(diilN$x*@_4s>Oi_F7RX`E_ABU zS8;g#V9-S47cIPG7hA@mNjU?iLAC1LEu3SoGqqn@AuBk)S;V7AN+G1v^J84Y)EwBG zo0-R6r@9}^2PInB%3jCe6GbL5mV-9jvO`5@tg5|R35LM2SXzMASe^{m`VV1Hg^gmr z#z~ykGL+Kd1!DkBr&^U)0E0b}Sfk@Hg;R~r5okok9-x-scCs}|RM6_TNCspB#tYfi zCgkc2bXHy!H%1ys2kK2QFdwRHw@9K1{`Xw(zc4R2LF z<*jnC)~-!(n|<2wHgJu_dWw|NOrZ$)4^e!>{Fm($M<081>j$y%;EqAGUx83M4z;Wx z1CdjpSK>G4PAypnu(HZ@a7hG$ahWN*Kv$q)zKjJl4*?RFA-&`!3p)w3Mu{qyd6@{s zvz;ZDrnXo%I|W=g-(Q3j>G$uk`+-!{Z1fM|vgC6=fV+fYC`3jgB>(zL4ofimmd#Fo z9jF6v27=wx;6nY}H0)DV4;UDsaxSMj%^LP@oei+-3D<|#L^Q5G3>jFpNq40)q`8uR zogPK2;$E-=>Bqi4-3!Rx&b~eYaMzB$cZK1AFTA9P>GWOBmEAPNU9dT}$=_ zJA9!{wh+kXDKL?Ch6nFM$OJFpgx`Y;O6Hc)n_Tm@WteZ(ZUL$4>2D{Un_dBB6s1!| z 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 MXx%u%vLUa+FX~yPXCgK>VsyA7?^WA}C zZx(?>HJ*S(XRV7#k{#V%_^(L|LKvX_7aYDwcs|M`f`?kVUkl(_k*MAE?(hUkOuQ54 z6;>vs7801Z6#&J~2AbSF!>Q%-yd9C3z;cPjpTGn7p-fB&RLB{z1A$t2yJQ!}An=PO zblp;*{sjAT2dXtY5Vcv8VRs6L#*JRXNRc$}FuL(=yt5+ZeH=hE1^6TZa>k4J`1B7J z zWe_n7>z8_&I{Xp&d=d2I&4++sKE*q+BiXIchqk0;p)D!s$wu9i<*imEL;9kuNZ-z> z6Euo&X%_chYld}|h81q`Z+U!`o{80YeBdn~zf+oX|D6hy}y!kK_ajm_~tM5aC_cVz(r$9Ez$I>Y#fcnejAKNzW|(Q$5iid+-#O%jm? zOY5*=JIRs3)DbzuaRe7f5Nm-Sd1b^A{moVQM^HHyIq`|*IRzD7<=c2grtAHqw$K0F zyFCBt*5{w+4f@8b`u}6|^CTj44j&mFrmORx;n9&JkoB(d!g~YhFn*aBxRK!zK#q%q zI#HhVR^vx-i-*$DeRNJOGAJZILQ!8nhLXYEs0Z=8QC?mRzRJ_l*hb*w@-Eb_kitO7 zN()iOAn^)2gYXiDg7Q637bc5NdvcD~OA%T!9MxHr- zcs~o>vQeiZ?4x&wzV)-@;oj zF!?BxZ)ftIOum=NXPJDC$@eq)Ata4uk@bxI`e8o!F(yCBeD!A7nzO-$sVMsCa{&Bd(z0cPCB~;(s7^LNS(!p+Z#tqRsTE4;0;p zN9}>^j~eEK;LOT>fGedeIKs)jPw?kM=xC$k$gxL94nJ`swjlIz0A!iY?1k7nJLT?2 z_Jn^N>w}q4!IhYDdB#6@YlLZVFZOL=8Ic@FdyVx79GQhvzR}H7Rycw44wm(|*QJcN zvZnE7Z#w&iahvs4{Qf#K`=&97mpCA2_U+zoBQu0+c*VYL+-4ZoJIovZP&6=bnx}VD zZ~C6Jachu=hX5oWpABR?0K;GL^_*3Hz!|J|f+{+xQ z4~8z?i_%8A`whcxUn+aeSaqFJE3flxHQJJK3EDC^F1JS|u!oTz1Ta|lN6%KYJX_ys zq}jV*M0(z~vdzDZ&X(V+dy;o%R^6UWW0YiM_}u!s)PdSFdh9Z3Z##eCU&dsB9L|$Kur~9^fYx6xmlMkO+5p04fz*NlT z8zwPX&wZGm__b$@5r!0WR^ri9V`wpo(RxKBNjRe3Mcw4L8Rm z$S+hB!@&SH$$zu1=SK72@*eYVSTeunH-tvwQy0PN=PqA^pyclm=7*h-5ZOL31*RWOkx|uQl&gwM& z7GwW6R+sTLtK0Z%=rUfndW^ramK%SGwaNG` z>ki{Ltn`KhKxw~f4H^H<+G6~Ql{5aUwbl5dwaxft YYrFAF)(+#pSUb&MGz1Qa266E5FpPk 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/lexer.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/lexer.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5ba864e74449547b74672676560e62b80d89dd0 GIT binary patch literal 20456 zcmcJ1d2k%pncs9z&xyg{AP9noq!D$H!voY|Su#zEqDY9QM1m9vNfrcZFhDoJ0R}VR z>jp`T8(vA2kJ#~Aj@OP8TM6LZO(O4Zve{hDxwXz!m33v4INB|D>?&_<#fft4dVL#~ z#r%HX>z)IkD)}d1&3mukeSP=$Snux6#_;#$zm|1w_hPX>;Ya&l7d{@t&pl(sV$a0v z*m%q~Y_n>N8xou2am4YewU8K37%a1@$%WK-O45mHdLc8OK{{!ts@a9E@tma7)$WD- zcwW+(YR^LNc&`z2;&XlKi1gY&z6C9^)q#br<6BYEYj@o+#s^Vj8-7D}ZpPdmbGF;v zM`Dh#y2H+|8RI)8)q~V7N%cC$+-+;-`0eu5hp#*ED?A=U-kp-y-;uZ5$=F*k%3X*D z5Z{e>E8=?)4$5w<8`#d0cZp80Fd=KJ>5Z{aVy@>Z9ei-py#E&2@B7Ps@eTWYu z-jDeGhz}q>g7_ffqlkwQKZ^Je;$w*KL;M)x`w<^U`~c#|5kH9d1mgD~K8g4t#3P8` zi}(q|4_z}b(K>R+$rx71U{3PP{BYq0;5yWQ@A4Pl?@uP@G5g$W*4)J4%&m%sL z_-VwCBffz61mcU8n0?Z@>$8SE;=CW>6V4ulr<{EVKj1uw@U-&)!Y7^gB7Dj@g7Azp zjPR`U2*Oe45W;iL`w*UY4kCQoc^KgZr-<;P^B#m_&i>CD&H?8>=YHpIXRmXQ^N@3| zbJ%|7OPOCc#>ebu?dM*NIb*BOti?{oFsEmo=bW({2Eu1=81v?9hWm*pWA+Dc7_S&| zlSb|5S3hWv+b^Ki^Ujz(VPASRX219;ldac`FUIV1ug7sS$DJ3P)6P@Qlg?3R)H&yz zpG~3n3FIDio<{!pSqtBn?2_}MJ?XqSW7%bU>Q!sJWKY|6nB&+p$eFZfn{_VR737rd zImwwqt9iSMoN0T(uAxUvu^^+1Kr5^fHh9hW#Prf5@q#)dIeKdj;PsVLvtG zeAvz*Cx@1G+q@VnzSLMhy|7qy7Mz;r7RrSuE48_D;ZWiHvUj;&D@@lHrYg0vS3$b! zTzAxPVeGO~n4CPrkIBixbhYfd*@|0Oavi(i)eCmL;MNzM!lH5(RejoV-AZkCxNzDl z%v7qLqufG$$tzT9SIgCkU8pZQs_fN~TdmAHSr2_rRXq1{WyWhOyXK(V+8(b^u2$>U z(750^m~`25T8awjfuMy(~?$Vk17`?r-GwPN<2RKcW1ITCwr)-aUI? zcyZ6f#HD?Ej~$+v7!E&*`-*$~-6-1KUL+qV+Ffk?Znl8Gy%I8Y-_+jHu@~+;c>ks1 z{=!|@+ge#IOR3+gQ`dDK)^+OBUb(ul%5_$mu*(N$bfwGA^$k^Cxc}h$E}_ISl61c z_m_(M5K6_$EN;$$!eSlAJ5^mSlnT+kuyu6_Wq&4y_cq%WkFj-qk$1dYEzGF$beP1Y z@|ta&7xqsaymYM9j;(N;>NT8hp;@)Ht?gs5uELe7C;-W=M$oGd;$_uW#tZAl zrFCQPx={>_4+X|b!#sMlVcvOk-FUQ^X_${9ain1$L3A`QhS!b5>xRE>99TErKTW(7 z{l$?0`xiTbpF4=467yr1QWNHiv10nBZ+zCg0+jwnOkF@>F&>!1_XWm$U|f|93D!%8 zE(1FsDyv#~seI^~d#Jo*R}S%RVy6z`+;CzCXPufx%ZIKywX27!m8nA-jXpSh|9yvC zoclqX`+RxUaSzRrU_5Y06Nkm+AbZ5FOncb6#YaEIiJAxoW9m6XjlSq6xCL9)7Z)8{ zokM=dDp{YaoW{@Hf#7AXGQDDWu~owd8Gklr#IBfj3@bH8i)LUdTs6m?E-yN7nCc>0 z1jhB&iq*5s$sFODfcqbP4WB>Y0Om_WF?9)vj^VlCoPumJnQ{-q-!Qr`ocbU>f!5TT-=6!w;dp41Wd* z9}~D5Q)y0PJ0{_Q;rC42^x}5hv+zsUmY1{>Udm2-X*=a*?6jA)GhUaS^>TJsCAZq` zqwN}reQvbTEBCulpCM@{STypu-fiFNA&lA>YF2B)PeI_dF&I|gnBQu#2&fl)t>LcO zVq^Zc<`{%6BKWYu)^Lao*#jsRqF*5Rfk*M2>t3TLtQ-{<^Fg0-u7c5UO3mvAYJKjh zk7P3#X4ier6=B*1sW_HMi?L4sdbo_}EC>?6%#ih;6dE;N8fGUb$7_wQFx(cO(8ZKMq=ZW*`wXZ|qVZT>*Hs0PH(yBj3N7;U<> zO`svn`ms6O)Ok~-k;2XM;>@{W;0_v%yDrGRC%37mC8U>EknEofGF-F*OMoO??C9~c zBS8Yp*%A&G17M+$lQ%6i-?`3zgeq# zwn|yrTr)!?YsjMdeJ%+ImkaV^Kuuw~7;oHn27GK`vU47jg(>j7Gj*j`*TICUQ4FXO z2!OE@?jkr*b&XlF%(!YWeU-s=21M;T5WKdfbD$E}_PeO!<`JaLUL$Q$*r2e7_vN^mwTeV1c2t@)Rq>e9L1xmIoAX{r!Rx^o)*5IY&q&^ zsy|$Spa8L;;tB@^>0o9F%oVl(Ki>176C!rGANBb%B&c+_=ghr(+v<2U7T*z|Z|{1YT^; zkduwg#cvp%<>O8;H512a$L12qOG+M6VO|P(X~{!sCO#VnS&q$RY-7n#kNDs*NzJp(nmN?$w&PM0>8Pe{*@;(UUfwsU&(YE?04v=%egagt zQgr}X)vBC@TH@D?sxQcA+YUe$g0NPG*yTdfnkh)l;n7Cs#TN<_-o({Q`x@IIdc5d^ z6+b$0u~>ZJ#fgg)Q7-N4*f;JlFE8n?JA_~sDM>rYb9Dc^$*!57XaVK-Is*;}K5wMWus{810tM(X(aw^36#UAxM`yOW?S7;z4 zbR`fN=U!;?rvGt>D zKfvEKjT}m?o7q(R*I-)xGMZ20*YQU%cnm-H2?S0ID#qBjX&d8l$C?2$bP{&lNzSDl zYkQ1WaVE)Y_-bN2ZKt6;%Ank`v&ij&s=*r1+6i3F?jZF1}$eJ_Dh51_j8U%a_;*jkr=LM++ z$ogPYgZOmSRW{Z$IvqzC{V~mJb^<@Q7Xe|d6azCID`D9Y&u1!fjldx6yCfTpS{*VSZaF2VMwjOdkJdGr z+%#W8TWh|cP{163Hs4%}zhY<})l`3p6XK+CsXoi}=NNpR!3GL~X>yNCCFqJZ%=LCm zQWqAx0#xMWN~IuMDnX0{YC$?zDqUGBSHqH2sbtruOC`lS6vP2*fdSET4D7D@70CkH zQGdB}8ZseLGxcc%Z{sJ@O*&>7X2QB@8s<%0?wh8WeP>5f>P(|f#~*k1G5p*QB8aZ+ zGtgx_mTf>goj`1car_9bt&^BB?S!4g1;yp%m330k$EEEIa?*CTnWHap#_q-?&Z{MK zueY*Ak$I~+P$DU6bg6!j#)lRmqRV6m8v+4B&Sk@CU<0vfr4khJntG*;Mz=6rxGz#7 z48b(}kN%kE2FRs&00~?OTx4)xDH{w5Ne!5pZN9Mz=(Xc(BucDf&YJUJWNZsdOEkVZ z1_7{84mp(aY`Icv`zBwZ)n*Z4pDqK|pp5}LFa=FpQ%@rNTYs48g`diFw9b0QP1jH_m zN{%%vB23!IoBi>@o=wOhjw+Ag=RSZSLJp*7c1|dlHE!A6A?OnkB!L>Tb{7yqN@!Oe z(j!Hli^89trlJ@c>&E05m|eLY_-ZltxUb-1p_hirn>7Ij5JrV&=_1V!*PunyJQ?L4 zb`Mq=IznoMLvkkyH1rj8wGAHZGB$25Ne|GdhYh_%R10QODNy(l-SGc60A@wxcxPs20cCFT3 zC+NQD)fe^JaYLcfgxnHglUs?NB#)?4Dm}nO<bJOA zq$kj8NvwVYAI0=W2>K%H@yyiUW*}7Q?=y8PP+=E)I452W64k7gjrYf;>rJrI zl{;X?bga3AlLXHPq6+RWP3|vBf!ou>Gy`Iq1^j42+J!F|i9=}WcJkqO&hCDdCbk|s z?|}T;Js`ckb{`*g$bp_qM#gN=a=X0)bqB)y z9CCKryO6Ur?CUoBc6<%mciVT^1*EoxHIt}$r@b3FLv{~n;61YcjsJ2yghvgo1WS-Q zURY|VHQ%~iajLdkI4rE-;Yop($q52Ikb(d>bmuO>{&M{qbx~r)C;;7s2qQ!a6;Bic zWUXLQ%TC$WLlnYmTcEAtYE%I;b%Be(B$v@0ELH08 zWLR-BWQa3O)vnsd3-fsd(*)b-k7@n{nLLUFm>1A8^245a1JGTH3wLb!Q0bHs)RdHx zP(GSaKE`h_FXLsYF@;wFFhS88eM02EAO;rF;w}aWfqq4_9HdH%OD-^8Yc@er;Lny@ z9qHpvkDeYoef*62J7}YR2LT{P$kIPxMsp=?_rHnOPVnjrl}M(Ir2NZ69BK@-p|~b$ z6QJurHfY^Mu4*7jb`dsk=QiMW^~p*LdZ)1U184`v5#}+ z9Mrr^O|+FzU*VAdn1O7@Ri=oyZZ#KTS`yPzX$+%i3cYFNy27SKb6Ro#IUc6b zC>&Q#0p?ifZK&&sbgx?N16p-V@5UM@)VVLTlDN-B(@4e}J?#g8GEwM_ZsKftO=KP- zo)NE$6#&-@n^H6zh4Z*Tg@|vRf?0yV!^vs*9VRZ7{rWg3_4jTuGmCd{BAQyS+30Pb z8VfsihcjxRMU~TyTyXchrInaDI~W7Sv81C+;_hO~?FMNrRwK>)73nb&$!_pnfuT zDY;^Lm^*>^3Ir(G=Pjpzy`bSEs{)KDxQOPLgeuoy^An&9WzDalufQm6nyx!vS-i~Y z@=E1M8*g?_l@)F+-!%7|Dkf5MeG8PR)W~Xwv%GTNQBX2!b(hRlqzaK6w7EsDhAx46 z0T_6p?6r6<$PK~%L+~u*+VoGzGa@#-0e4#ruvM5>RKVfPuYM>!NNFta1Nv@56-w(it zh|$-MV};~zy7sIsH>rjMZ;J+c_d#uMk$a_YP)ywcLnsKt7hxKG9ZSN^BGaG3FMY#; z2*8E1)bcVcy@B-W)-CD@?*gz&G*(8gL$OGe$Shc_5c6rp2DK0&UZ{A&k&#K9o^}>J zDmFoSpeSqJx3ZdDqNP>1GR@>^qxrBln#)EEQc5nCg90PLezD0a1>CNclC*adR>T9wsepO%>?)aX_iA*o0C3=gt^nmJ&w z9CXW?=)ijTwwW3b0>pGW)#z_OV%-=RCxND+cr#kueoN8jbyNw`B7A}6)|_DaTr zH3cI52oFYnOLIm4Oq#*#4BAF-S^aYskfN&JV?eco`qvBu=lxrzL}=peRR4}a3ujA8 z?k;7rqg*n#N$Vt`P=5z1_g|!~?A!T#K5oW)jeaX{4Wx$>{h7R#?Hf#rEYSg$MB)?+ zF@yp5L5eM2f}RzuFUzy zkr?xZDD1r;MpoQjxnu=+>r7uJ{lfN4L6BL7W?jhMC@dx)!EA!wraw+(Bl#$^w=_*5 zxP?*4t1Rh{>>F(bA47rq3oPw|on@gUeY!z+75D_?B>e1+ta>i}PHNLmuyx*X7E2!N z0mQhG5l?Zylw#0@0F?G+rl$}D30YU$k@2(w$TyyLuKNnlY&Y`W&9rU(Fq@}^)H2l{ zqS`cm9e+G8{<(J}=oE#=Ez$PHZR^$ac;aKgw&O|Sj36If(lZyi-o|sswRHl1W!@6? zel&nCl+`@RN*S(d^pt4YO{pvrlPGnom&;c*3ej6vfO)A}iBv`k}J!bE#GW3mZe z>;~~AC?#D#Lc0JA%u4_ch+W*`QVBcy8Puhngoa%=NX}max^mwzf(+~eG}J&f*8+xb zqVn%^V@c@qMq{vZy^y1Hx2ao!HM?}Hb&p-Lqo6w+V%nkoq3tNYg;Grw{|KqCaX@kv zgg(m}uoQDQofq-SWB9qF2%__%4PXx1e)y>;#S##Q>LP)>G&KCC_^&gafg&L;b>grR z#OI*@moE#p0-CRq5Lz$5;Gsy8hJ&P_Syy|Sff$Se(S89XZAwl-VX5=lT~wp2H&7!; zJX51ODKWiG@|{vcX>7W;j-(Qhc`ZdyE#{W1L9?;(g5FFMY_rjCD(cY3hNY0>N?#(Tp){$ECB+YO^&E(7*f%%x9`XS<+>ayRy>&A3=; z_iNTzkl+{5^EPAnaN+opSBD@_p(;lE$4)~ROWGUS8{2AYpXUScc!uE%h;+HW6uKu9 zW+{Eb2bypk@|>gf2(HN*=!pOkQyWxnAGRrfH?+te`p0vythbt;7WquN7Rl zV1!H?*pARmTeuI6F6rwaij7X;x*OSB@jHQ^doKW5JRU$*w0qf{<-vB3%R($?t-#UD zqn;;rgQ+y!%ycRXUk07Z!B;`2@?KAv>h=1VnoX`)UO)9nD+xL(&f$f}N>WmIX4uJDL)Cn{RGz5Rrp&>BN2F67-i8gJBPzbs){l~%<@NYiKd(Z=B3iG%*ce!n>3?n5?0`qUq6SV;K|vsm2hgc`?iWRPi1 z6DC5uTDr9tm<^hW(}Beuq4|0u^lynbEE)Jov}t6bF^jSw&{=k+zJ?$$)P_Z>SCE~? z5@ngYV~ySKw#=5#OJJ#b-D{-x4(~fw#Cp^z^s%14YifB`)t43<=J5VTmoDUL_c!AH z#KCpzE{Lg(_}<}SW5?NwJk5xNi;$Tsc;(qfLN_t7NttFJjUCN3VdKE_wf1s zP!>wekewPC?m1pJ++A$+=>9O}qmoe^Zu8gq68DIdQ~e2p?;r@eTYlzr0_)WdkI#MJ z^w`M7^T$t&h%0>AV_BCjd*aNw<6}V=WXPI= z=S01n?%?9sh0~*_g09GYltp=6bng7fh2vxAE{Nxh@XhMqbE^M=!5=XAj|~13gKseS z&j>m}T&326GJN8B`f8AP7Ro(hJ9*3tdRVg)jr2pyF$!>a6|= z1{Jp1swdj!vMNy8wXi zo(@rg8DaCK8F)y^2}%EiO_X-a2VYLO_}mB+6!5-H(C5}B%^@?Jpx!|Lv)0o+G_LVq zKAtx5&!7_&y+x8Y&6}3h&veo>^K^`Y^HV-){?zP33i=d!l<0a%3+eTNwD}V=x3SEW zGStkPKW1q^+o31qq|Be08Gf;Ej)@;+LeosX17DQ{N`5wwL91?zb<>2TXd;ic2i-pV zdyRZ2glo4)W-7CA zxU%sKMoU?gH1uWHPMK6HEosV=Wk+e8*Vb(B&ajTfa65*Jk;Lwpb=exs8E`AnBuaiNwIetKbHoa zmqB=-o&U9o_zIQ`1}Y(M1G=xo{Un$uYyy0K20e2nQTqhG;`qAFL(SR^e1UzNG2sVv zH)`Xx0Lq4`RP~c!ic&S@Lw$z4htN}^Hjf$^e4UbhQ>)oEI0K5)swGTxH?6^I<|^#H?ESe|?Qtk5dX{}7wt{VHZ1H-1uuiLeb{cwY_z|x5 zufa&;^1$!jJbF=FOhQ8tLOFL>Kp zWn?OAX_O41WYyd5!%~b(vID&*{M3!OydjC(8C;R>#wSBZ<MjG{v5SJd4q{qS^zRpE7TNn3nyd&t651j}X`PLJ&Oj(wl9ye`XRhM5O^QsD`Y{4L z$*FPZAc>cNj58zGsUL;#tEFMOXc5$*CQ(0ND{%{g8?Q`V{W-IU1l3PjF%!{ZSG0j} zD*7zT1l;y9^?3%LW8fhOGP18!S7~fTYKM1k?(7EOR9P&|@x35BKP^4jCQxpHtk`YmA*1!fIWb%}r8UfCz#p)C zu;#z%Z&~d{>#hD4%n@>;_A3Ya;11;ct&pAQBqHACUp7|yYr|;Si}k;W74{?STivo2 zTOIJWt{Lu|=xvZK?bNo|%AgMg$-L!$&F@xkdfQfq{4M_A8t1nK9R45?+Q#02PI_(- z5kCicVB5-&KQy<)+X-FlfAb;bf%2HxXQ)T`LS1bM$KJ&^?3aenV*APte+N$qrCHS9 z?(dipgoN}Cy{3m_D>xA}QkE&5-Fx#kt)$~XOfe;amfr@s@g-|z5;yxXs` zpL@`D$luxQXQ%GR&uxpbFP`R=Z`LZ9%N^Lqoj8|*%o&hP z+~xm))NL~Juj2k=9$4c((+OxeG=@SQ74`_5 zIQ3a`OK|?ZR_3!G=(565K+d99c5UX=;o$z z$%)$J46&CqI~^1}oIKf!@+1zN3RFl+Cv}{f@pRw1FBwA!UJ)RY>cHRO){s z1=oahB##6M5kwl@(SJK29A=QzuZPDvv>5C+j-SilE(GAZVwW=dK?_hT81U8$R8gx7 zNda$s5tRdD6NR~i>~E36kn=NN+R+s6^|pd1ZK*MuuT<4BR95uAQvVA< zoI&bUDjK8HE!fMDXtnNA9Lj3&9-|f@@@-HbU`MAJJi&mv0(FwX2m&Z4q)2j^(a5#g z9`~#pdm7z)+H8({)cji3$y?057EC-C9Tyk8cXw>Sqi-&VVwnegl*cCl3*-wTw;11}Xyl-xL^x z2B?JCXM&{co2zB@-(jVs5*~%G@$tM&BzstyxVwDktc_DuR!k_qPg8%&bOw*zsxoGf zaqwtP9D&uhQ6$2Ckbo$%;0C!1=(4il$bTLY^k_B=J{Kj~jvyh!2m=&8sDSncepEHP zc>BAGATW#pcwD~fcZDGmd1`t-=#oRx=pg9UQWs2RwOQ{n1od(i+dwslY|IIzJA<^O*;Arg!sLQ@ z#lEgzaZYh#t}}Q)yX%U~*?7Q<|D&MpKCqE%!~bOjBng<}ZksO+g8)s2Or}#Gv?}5dQC-beg?#T=To>+p}@jX#FVa!?Xx4F$)WMuZ#*c!P~uQ^kWW~ z$d60kCi|wBu=S2fkD#08J6ZIch4O)4Rs#OI_?dCMOt=|)+5A?cM{|@->;YHEm$`Kr z1~vkCB#n;3H4DG~jb^DYvJzD*nh6&+UKDO$XWnly=)&Hr-)HK-G7z?0+v4F{sy#r+ zG%KD#+qsAViz-{O#k`3^cMM=h@#NSje|E{EEAd&FbU8=a<~La9y9{`xHBS5QO#KK!kUf2B^xTD!6UQ%( z1gU37E@D=#+lP4n;=JAUc(InD{o;Y{rT-(Rlv(1O&Cr>{cwLW=n zEJ$nR;mFgGz7x9Ca~D`CEI9?ms;+Zt47Eaq>6ynbP!k*KNagFPk+Ej!`QsNxMx!3i zGS@gJ$JI1eCAA4cXT8g?fmKUBTP!T*uAfI#Ex1fu;69DbG<2m$*fQ$IlfTB7O=_*^=k;;S%qkb!8*$)d<(GX1oh zkgA_LTW9c)R;#E#%`UQ|Fbvw-6%ew6^b!5; z?@`o`xx)yPu{7{uPX7Zw%o%u%if|Y48?YMOQEytnyxDH+`&KXFto5UG52fS(pa0A_ zFy>8SbBz593#i5ds{KzLF#A7>!MFistIB(biWC`88Ke`L$Lo`7Nvz#_(&lD_i3$<2uW*+SRRz zl?k~nw2iIFl}WiSwvTO1txVy% zplC(TsepP6Yd=D=j8r5+@Ew$;r^7|+qggNp27VYx&IvQpK;IP{;b@e$NjVJ zIozL<`{!~0oNMFW_NGw&3%LKBdmi`a<^8X@#vQHpeE;iLZr`w-j%zo!x@~XE>qJh} z^gE%w?gw_;cid)Y!;U<>bRrK=1AohQo9pXdfTXtTL{262dqKks7b`#K1m3FYvFWTe z@MDFW&dd0nK-qo})wg`N*Y@zB@|IlP-RXKi$MkA=G<7$rpo6ynMFwa$ZP;CI+=+?LZq;&R&LxEOd*FX%K_Px>)&Vd1!n zBV5C2L)+B{+8zjGUw>2k-u$i+=`EvW4vYs{_?%o@!D;oYo()ur!aXB+J}M5hNBWQS zfe|bY4A;14;#c1*4UBzV*Y1}FI)>WpzkjFOZbr6acb#a{M&Eop^fuV^P-dX(1sL=# zBnX{OGup8mn_lDIqHW(;w~^2FBCipJ6&s)V#l?A)U`Lx?Qd(qhH`{GHaGIfq5?0fZ zNQZOP_JY6<7A5;%>r1h|SS!bckWGpWKa4H5DmFu}8yB5+B)?rJaGOC;!U*AE7o+di z%%Cc_-KK|0j|=kqL<>&i>0diboBo!!uj$UN)+FMK^wE>A^F2*}yUKVMi|G2!D!`r>*GV zGvF`aEe80C=~`~VE4W3k*eZDioXcL}v?jmB*4T#TRo0Eu8dkW8qe#AiRX#51t4z6W zxMOYw&nCRdv2m<@mWVgt4=k(LIwqw~sZ!jcJGovKUQu|YuS~n+Aex!D@`e+7H>LZ| zpP8D*+eX_7)dF=e<>}bi_MP6EdKGOp6-oIIFzZd%vsX8~sIC_3svY@41=)%Ry)=4Z zgq58x_${xo2^tKyKz(;XW0D5ET0c*m36K%w)|%20$NSRb%DL!ike$qUYDA(=(X1`2nRqiz8(JXrE0_Lk|eK;saQ@<6iG=#^L!y2zaxs4p1p3fQ<77v z8Om{}EzNbi<3~yV7nuEsQrRrUzzz=WLP}t@LnX^N+OKCrstP}pY`Y1bOZlPR+YT1c z;UQxS)G9%V>x+TsxC@7?R1zggsD}T7-FCLtTxZ!%+H+)s?#AOoBODL`2{#QUaMi%- z&OW^6aTP~+9;boU(!z;Ij||G1miaTtst*iGoyZ!POG$IsS-G1SSID(wgcOHhNl}lB zHIY~%p8#~+- z{*n|ULv)}JCbfr{Q^J>2Z?;jg@J&}SB1}NwU9f%rZbQmvO<7&N<#)W*)dST-1oSv@ zYdiLB5w9}MoW>|{8r~X2tO64p7FnMu8}%MWUMBU6_p$HGohp%7|TPST$U}DyL z3aSmyMHRPv+X*&$37`syjD&JSUvj36v1M{0?vMf{W(E0>1tHKc>0`^==4jgsM8T=3 zL1!T-+kV&!yjlj!6y-p&U3c1{x0)3<+*pOpKnSYWXl<6P{{qRDyfKlhw$lKvl2yba z6!p~#@idlJBEjn_NnHJAuR|$vjmR#xBEadmT(6VT>UBYFPfUPth=Jf)un@&+h?NAa z1!r&-S8^Hfb=-&KNyS-1pVY0VWwU=G7etGB$`LS4U~S+KR#nDD1lB~xR5SWNy#WA^ zAq{OJ5ln46;~AkELH1FoJg{9K={OQ$uPefqAR-$mtnXw&r5JbFd)NS2K(A#0R_*Q0 zW&^-lks;)p(`$1TZ#oZ}De@)h^)CuON@`6;ALPu29??$d6=PW?PxRna?LWYUtM6I^ zsJ=ZdC^xlTlRC=)ddI%;U30gvTik`N(b9Lz1E{|}G<8tkGx&Z`92EAg-Lb(~%R~uK zno$CE6l+l6+kHM&dA`gv^8U*MYcN(fQAS}fMok7~7opYYcy10#`xXGI;gA+?LY9yX zrc4o2dzTP20fRXrBlAfXaLPLx4%D1%mJ_8D^wROjxd3k9Sw^>*N` zHy^U^ULfKseQ|ZuZ#ELpzM8`aQP4==>=al}K0s@|XcVDC>q2|lJ2{`YRVxQCfCA#l zwH@ezP>Aa?a%usu^&0oQD7N@KE;anEE+k7_2?6?(SCi?u*9B?DV+6N#QLHP9q=iK+ zpo*Zz(*;&mRO}}%r$Q|*r`$a@*BXtusER+h9xM*pJ(LjII9U^A-O^{QqE*(X^rBvd zmNru;LN_ZKc=NP>Y}gu+7vIbwdVV6HHg+ttk+;383S^xc=D}Y#58X~$puZs z=9SJ)@Oi$@*=4rcgR^+?H*ka;qq1h{);Ys4pmg$h!Ki#Rd&Vdl1?!i1`jKH8znZm- zUmAs}Ur5ddGL3w=>@VX8xx$Cl&@p4obZ1=4vszF;VNfdLYAnCY)lVp@MJS#XDxpv! zsdg5iijKQgDw}Qzd8#O(h~J4+aZS|LN%t63)JaKm%qxo8I^|B|*_2zx3O^oCT?aAU z5tT_1yK~l5Yd%}diDAfrX^4dDLrqJu9wCmxH3^Ei3nn1?12``+7Gxq!P7lC(At2U5 zzuk+xMf;oSQziv(fiTVzCNP4cqtOe*5S1?Gtp233#YHS`*Soj|RCsTB*;a;zToY1@ z8({xn9~aK23nn~YQ|YfjO9b!%gHUZs+P{Ie1L3e+Y3)sLBw6j~Ug$XiI2^!DM_7s< zfL&Yw((r}UZ0O1C$a*tC*;`K3*d$X*EB}A)#&^yyrAC0Iw9xSU1^fI`A|QvJelO|h zGLW&em9(6FUAC`CpMgGM6dWD|=zI!YrCr}aZ-%6H!-qk!33DR*nANY?T2hVI!3?3# z%l5Zmx)QdSK2oX#^c0o*VU!@@gBXz93HC<{_oUEuaCCngqT^n;Y+sifP~p~^--hi# z9;XD#{^g?#nL*&2fJzX|D~n&qB*7KeB_c&nR#%5AfUY6~2K!uUUn}&Y^^0G)P7ci3 zXB}}l?NvNJlvz~2TO(4R2mlLAN&VMw5kd0O_V~yM#^u_?)#O0m(06s3x!=Y6H=z{{ zv^sP_oC}c8TD|CMv^(A!L2E=Mw5{L4@t1QrZ9ujBUTIg4v^{+Q^XE^D`>+fP-+N*N z(?}5)*F*N;i4hx%FU5Lyh$$)z`5I}0Qs>g2vRKwJr}Zx$TvLmw-D2@IDrxQT5-!r5 zwNhMZh9H&5=`_56WyEEHkKoI}mv9?g=jkgveHEvgrR3J=(}QgT9#*!JKS35jw{yj! zJ_Q?LMem>f*cK|loGIudx;Z7r7!J-+_>XYHoInF78f(#d{Kl>o(ROTY=mYaZ{hQj~ z*WTA6>oI0%w=gKU8nD+h_e=fBL1C}3ukFEl+$!zsyT!LPJSp#My4FEDb+xTUW39^G z_+xEfe;>0QRo9L8wD)uv7Y)~Zw+h5ploS(8F(|E@2J+w0qRGT6VBJ#I1+;VI!(JT6 z5ia1=AB)iTJ%eRD*6$f_qXbKf%$?&pO4GG>fIRPL+rWFbu4CLu6~PQnaT$nAEFN*` z8+QbTrEJ26Bk{9NjjAzg%$3S||CvLym-l#N z#j-oJz+YvdAL0~gkHlRe#C9F73UO3`hyd$<(*PNoAi^&~A+V?t42rmWdAEdA1(2Er z;BG{4O+13N`|rViy;tU&76ATUMP0d2Cq#wNT$3qW3r>zJP!CL%gYO3V13mZ}6o~Ob zS)3fF@6X&XM%4i{KQNsFyg;%@gGn^_=UmKvV{xfAK?g&m7P7DwYujnxQz=PL!8|}%)a;a5Tph9~F5x6Jq1Shu!+=zIlpZWt@W11w7~9Akrl10s^;1R#Bx?L>ssML_I1`NjWjrm9_n$j7edJ`h z3Rp9OYbfq|ZCY?_@C8=z(5+vdPY|ggh_vzxVC%_z*%pPK4^hQ9=yq0(}C3R@`wQ&;s!%T%mXhcL(0$t6U#rDGJTpC(21W zE-9;?B{-DsQn*jtF_6@3JaJojg%S|jwmuUGbyDkB;!{dweS#B`hhj5Xwr?m~JxL`s z3?>O6_36+ULNggENKs9O{t~V2Kn*0uW&6zxAJZV6U}WW60JIpcEGvJw(ocm@*Ag%# z%}+ILl0V>)lz5j|Q}7UBW@_5XHS{D;n8Ksg)h-=zz&IJglX8Zdk0gOFewtoWu#ouf za!mEv0Ql|U$z3>~7fG-xZAfwWH#+T|bg0-)AO@)KE>-iijRfEeL=rAMn0B|>&CEbG zKv?NOzu8^#Ha5igjKmlr*c|<>Ex%I}Z6h&4(Xz-fOH8Qrmcu3}CBTCl_+giZ0}Lfy z;T*JN4$&~$@O*&HE!dXCkeS-Ga{EHkcyYNW))EDkVFFc9I8jjOLIvpz%_0;c)R2~* z7EOEQa@XrFul~(fURo8qJg{4X8kh2@N^hk3hv}9D!ej~ysx;Tomc!f*l0n!SPn79x`sB9BFhfk8IUCZn1fX!6ljWC=a(5cGa^@g=E>upYMEwhudR zK$|vgmxx4W5bhC;2|D%$v!~+`e|(#%K+-G#RYa5UDhacq|>U zP*{6hO_B-o$nOM32woMaO4rUPz9*_A1Q&tchWSikFGdUOnY?aUK!XM%40z25gIU=9 zjLs}#3pCfDNLFuD+LIbmEHLgM5zoj;^bb3oRxgPrP>#kZm~}0xw8r-!q)|StfLc!v zuYL_;UZNLZ8%Xe}9^S%JOP&@`%A^Y=p?=KOc8k%}pb$;B5W*5fgF@>#pGULNiGkIc zdxSawG>9Zm4jBDl4E3kjc^Od_Wu^;$2%F+5UJ*KUj^XMw+YjKE|Kb%mI26a{Dz@oxp?Oa51XsDJddVa&_UEDhi>>d|5?bUJ{j2Gc%aZ4u z3MKf}oCDXGi0r>IW=n$wj$NEfsc*;BQG@@J5wA9?vd4V5%e)?ACA*#TISm z@tLrLIG6Au=GM|l5@qX zS=7%`7lB?#`(#z@l(bbAVY#frN;#>Y(JiA0%VouwMPv!%OknuajgQKf0bpo7trYrm zBU72FyPu>?mQX(#f{7y}02T5#BC}-y(HAy!1Q!9TD>afTAeBWS@*9$}{1}S_Axc;l z;tZ}lhLZTm_;Hnbz~1=2wrjnuxlraT?U9K^Qhr$rU){#CQfeJo0+(x*rMwU35=~_4 zC8AZJUKToM`(@NQxp$0dSXyTqs^QemnhtiLYyE<%drzsV*C1>^ih0$rt^{`>hGtF2#eqc=ozrjl0;ps6? z3^fV{JpGs_PH=27@*r5@eWr8<-{%`D&}@(se2Z_t!xQPdRywGI{%yW`nWvxN6ziVq z7>&lc=J_>t>qR^&7UzT}NxM}jF=wAv%{c=`Xi#!RFaOYZY87XU{;7}adIJSzANGNV z5b6KMg^HJJVVc2hUy4YSw19wY;Zef1MA4o7uK7NERJ*WzP;!Z~SpZ=}6Cklcc`U!D ztt$%_N1-2O{-)XvZ=5$I=!~sW)zMUq$b|jrY_0SS}L9S3267_A16i zG_Ai&YuXg8Y08`eQJV=tSKBwfje_nQG^Rj7q;7nxRv4lup&}2DMejwDw|Gqp4IGax zUgyL-_8J4}9(IFEJDhYf5rn#FhH>g?5vwD(7e-*#Fr=RR{3$-tLwIszH8j|KSs~NBTEhvFNQpDi{kiyq zM|@m@uiJ^DK$b}GYkdCOd~V(Ic0w3cv09>#8i)v!fCC130INWm@nbZ0;jJSbH*H2i~;4?_^4W<6~}sdwnUp1 z%mCJuamF}@2*WaDLI3P04LRoWKC8HfQ*H7{n}A@(J52N%PonN$;+5$9mwEL9Pgi)F z=ShemKS>|Dc<~oFa>f67D*mY}DpUNwlq&w`sQAAaFdwIAUxPzD0d8QClhI)_=^K8Q}`3N6Ac86mSh^ZrbOL`u|U*)I+iEn%A3tb zbW;$Q137cZ$*g<uYD#G~?t*Kkm{%@CL* z2!sj}stn-Sf|`}oEZz@1b(^7zh+%YA;;2cqkW$je#Bo3omVS86<0_87BtH-p08BcS znR@Uco`Mvg$B$eOk&sXi$?pRUw%G7tAwQmX^fSR36Zs1`_#4vL_82zhmi9mkPVo0J zh~<620av39`#obFkp}QzlnD+Z{joq8dMuD}eH_7G0t^cXmx1#iV;Fz6f)7}B5E zggli_Juy`;MPkx`rMk*q#^u*kwBDtE%Eitho6`F8LtQ-z0;G8`d>lm)?7{i0;NRty zj3F249t$qxqGDF`IhYRnCyp$BM9d;jHh;p;;aGqip+!|;9wXRbEmA#&{K45HQ}}(9 z68sJ>`lp9#9OeHX!+^+k;!@%RS7u3JN4eqgGE#gNCbW-qKjjb*?9=*qwhTXb;vpAH zV>w`&LlaGH`7(}>w#%a!&V~+#L4P(F3(jCOat{WQJTDxuEP~?5Tn;d)@ewBV>7^9K zqG_#ET{5R?Jb66{ZA%!`9~qjK>4#z~#41kW&zvj{E{RYQiAq6A&I3Lmj7XVPvLH3M z(LE?+${I9mkjz*c129L!Ej>s?PuZrNBqR}TXvDp;t}LJ8PZwoWnsUE(?tBdz%GWkBTOAO z=p+(qC}JjOR%r;FkOle`Vko7oWV9Yo$xf|VG8pXer%00EpI|8}{-Xzffa_F#@cJMJ zBER^zT=-ZIT4lU{a&!hhlMErVH*s9WAu>dw+`#Oq(u&4`IOs&(H3nuxZ}>^Raj_NS zjyAxNs)*7=YA#~f5SEs@ji2RH$^~eo4-R&NEc`#S8%$6!%TS^K24Mhz%Xnnr4+TZm zCXPgPg5?Ck3BD6Rx5c`Jt6t`nFj-bP)Qk-02T$4P4Tj8WQ5})j?uA0L``qnz;nssmgv+Ai9|?3 ziIT7r20lV*5w`*hT1^W_m|+^>oMKwWD$|h!Uk<{Lhj*{2P9d~uct94uFV&NS@-q*- z{4zi*KO@@9!u-}wSJ@>OB~9(Zp^UG5hK#Sw=kbpj7~YZ5Wt&%5r3Fhv2pZ;m_L-t5 zi+i`(gv_3b(U!iss!13u-sZ)<@~OpP3zgqVg0MwLRoHPX8|Q>2nph&~hu36kS8)go zRp44|?ZC4s&q=`HA0ZXC$~})C1=sjsXnAK~`+ss}lj9Wu6#FNJ=PGBGT(b>Uo_>nB zAi$T#(8$$44l{+IMQmX-zH96<4gdy|0Tvu>b`05FhwY3(9g($e?7Rr;T|umOFq9*7 zs36w6!Ve0x-XY8*U=_7uK)@YH<3HrpdpO1AuX{Tx)`P4SiKLrsWU$8*?G<8~4Y;xH zK(AH6sv^$6VCPwbiUcW}Gao72RR842Kv2S|9JwjAVIp7p85xhuc$$g~j06l&eYimw z-88WF)6f=U=ecYIFiHnUKnV~t_+yl%0Pk>DGufefDg8a7tCI1r*hgA=CINsaX?-(c zef!lBJygIIMXCsxVe6xGPa4$6`?w;pTjKOOYJMebRtK@FPQzp(CP&rj>5*yWl#VDs)EqgL zLe`X&shx387dzgGgs{y$L+-2aV!>y|HQ2IFg2+!IehCJ)V`|T>>RUlA?gG3OTcNU> zP%9ClhVhNG%T20$~7;c!J`a8Wu_w;1RO9GuY849^E~Btp&U#6Azu795+qTHV2NWEw#ur= zWg5B8A|gB0(-_HYj316;uKwcGWWbUdI7U7km&-Up_GK7bq~@XnT3Bi-LTC|W{g}u2 z=89Jq%upc?0A@hE+Yn|@Sc4mCEuaA!nyOwIG0x0qVM8rTNH^4)2R78Qjv1DY*f|wh zg2)wMhS|6}9I@~G0R~8npo-l2 zx&gHz*TK}zQ#u>h7>)seL77i4dr~JwAf0S{CS^hB!QalELvlN!owZ|J=rj+?P-Fi7+Joa{OLgIUrY^RYRJO>8#U&igFaI=hSx)j zC6mlAVx=oX%8B6t&ZV+Q0kUIZ79;YAOq+3gT$kY&Z~}v(BVu;f?2jd~2yX1RfhZWP z38`%CoJ@Uk_e}(S3akE+p0a0YET5K* z{>hOp=C1hd2A-slZ<9$xjvSa1a^@>+cNrHd%#g95qb(j0ABqBIKVEM5tSc88B0)sA z{Qn~|{shIJVv8@}f+FM8L~hCx5m7l(L`($C*}yUK0dLhV;}F<4Dk8v&&G=aTZW4l~ z{v)LSMaDzgh$BLTuG5Bjg#RG|R>42KfN5(u@M+s~?!ho5Yyx{IZ$Z`n9I84Pdznv3 zE*Sp>(tVY^LgqmD{$U``#qW|Ht5dS!s3;fF#EmmOh zdQ`yGnPevi11{2?97equmG;U5#QMWSPRCjqVcXaV@K}2d-gHDWVMhSY)ikE*bY1;X zMY>xq8^qzl%8Xe}z17e@pyN-mKrl(-v1O z`!fmm&8Id@{-EI!V$hAIE6ZCM1(`qiCQoFY+(1o)gzbhU@)NKV{Krk;KimoaHPieX zrYWixN|RESPZxG<;)NQ{KVxDM!yM=Du%WZKm@>=O9DyJfsP!M&bP>ge z1~HRdb0|%b*&fJj9}_772u}$xx+eA!ngh3T4 zD}$PiY&=CckkU_`F86ep=ZyZdBW*pH@=$YG^Hm(loI^W>P<3@_rg5up;vap0!~P{w z1pkqz|G?9M_8ey|YQ!Z*fewQ0v`Ldj-#*l&1Br8^f!f-7NUx?a&h+Y^;wIIrpDCLlTjsNkN#4>0+4`bjL+QAA6eYXBVkg7omZiKm&DK_ zfn0-<7+Oj{DACXoVNd7Y7<29$h%hmwv@5c+TW?|44@?%tR+X4arZqUm;rUIRU~HE0 z;-bI?a<~c@F7fYphaIyjcn>5zena9Lb7M_T#KE7ktR?1{lD)vmpwTAEMZn*BePk<) z5DN_fu?eb>+Jb-2QaEG>W=*uw?{k)HysVUDI|Vk$&SvpPlLbaiBs+koN9K?s>638J zIo3xNHrV1xAdduotgUasaf4Hc^n2o*zZfiuDvK*KH|wNB6E=enZY(|l~zjt8M#Yb z#D6%zkg59i=S;B6$KyjA)YZ;7M#yX;xKoyPK+cLKkAFf412TxXg1<)aWCwJp0?@D_ z5xykVaboy*;_f@Quhp-9_1e|1-?;Uap%uc#p+@uyub$ya(B+%F>hiSD(-WR(1rVI4 z_^GVpBgPO8cST*7CPjr$Dl zv$)TVyuo>JUHJC;WovM8PR@Jax-$(?DI zOBSW0OeLH?Fh0x*&9qFWG1s!@OQOxOW<%*msg_FSI!ZSg_F$)0Sw59UXwUx|PO{d& zw(;!RWh2dm%t0*O2k}^@QgNLr`tnHeM1oj+m~KTXOB0#ukT%a>Uj35)5`?q{HvI1h zd*F)YFRYO*nxgf(Gw?)PHiRb{@ZEy&VQmxsY*j0Uk38BLw7;-CYp?)6oGLGDC>}nC z5$`Cr*ZaMM{RKRt$C8Cmnr$9weS*2=qMT{3C{xO&lDbgodg#m;({+Lm?>t$izSg$3=L^}SOczvI_?U9W89#Z;=Y9RyJt=^!ZGT-kqQ~c zTuBi`0zQmJkyLrtDZO0ABh|)XU)tqD5P&JqgWyZ+U!V8KSt9#frM%$%?Yz$m5%raP zQ6R3jQl7vqw~o#3Z^6cX91Z)^T|LgyAN79tVLy+wyfuXf`KHYKlPI0=+x&&d&j2OJKu5_WzhX2A;KoN>~$Vw>569C3a9th6`j#_)G~h5 zIeO4S^*9TvY#7E1Aae?UXYGCGWIYUD*%(nuzM}}mjEpdGqZ~Yn+gsbV_U(x?ao>1v ztq0a;7yslOIJn&dZ{HR6b4Oj<_x7zxW76ERL0gm7oA$m(`(AWRExLQxpU6ZeL#Y^# zV>SyUn+s&GY@yn+cuTH#7Zf2CdFxr-_d^Z_pab7m!j0^n0HA!y5UbZ&lY{=tW zEzvfY3(;*<-Xforc2G9CDciC!<*;3y!t%_2>OH((!ku^U=s1_0^N6MM%KK*T>dAhb zQ>^P59ZXHA1?*q%`jorKE{WXrgCNO75fj}Bf)@pk>o2V!5Lp-mCX0~cTB-Bct|$~n zqjIUvQm%Z3lB<*oE+A+JbT$W>%H%qbvOb-Nu`i-?C7Elp)i}Ay8=R^ zASd>reSk83rtaW58yV8Vvd5=|+XL+Yy31 zlq}A&=Tfj@%0?Z*hrcke{>wS3nt`Lrh*_F_)e!yxgHxr?#Qq(u&?=ZXw9{eQ>(E0Up4_| zScPv=^nAm4@7_IQ2&+JVMaeW%n$4m5DkESxW(JzDyYt^~c8|XyGWZ6L9uhK_H&`OXAXzBjWM?1Z!^mT)0qh;a-<6S2_2~F!iqmI%4sz) z8nC|nKO=V)+j8oy{yE=n+Nulk zozf+QCU^*O=YPZF&nVqDmbTy8K<3Y>fG0p_?e06;n=}rc{HHbD#CvPx96IX9`fs?SrFF)bA|d_xFTd{iZ;ALp4cW&G&$)<5e4y7O|Vx938!6&f~;| z^ZfceIw9D1&Av}xG>_y~jgJq3PLGgK2pT|y5<|%m#;`O*anB|-0u=KVpab+U*=2B` zs#(TU6KJ#uGlsEjtL{A{amB!PFfo=u}gzP z2)?mIf96n)nenjRMrlsPvC5vUXQ_O~YJf75b|V?%7`x!iYcb!&tlJywB)&%2 za-%X6MLm`=rY)?^0Zbg_`sNH}W+4cULts#*f}}sL%t>EaWn}ed6_A*~99LN7m{Ad% z0keW?L>35BkEn3)Be+uTZ~`S3jTp3M+dQqX8n~h4u!v#-SXVlyRzv~amO~oT7#~rQ zb5^NyoGu7>&cZQIH_7qThSs~wW!sb?vJ5R61_pX}D)X{^WMJu|pwrxhSGg#)vT+~j zq07cb0o_XP*YJ^|_E|Qzcw9(zo#@sYWsi_$Lsx9%N+5+n1dsknP^-kZbaalH6HbPR zliYq6oAZzGa9%B+Y1$pPL`L_3O-z6Y%UOC^i8{Xg5 zPq49jMSY(%Xu@FNWohfustjz`omVNs88e5JOB;Xq?Ze>yFCO0i)!O>wxk-nhuWWDB zSX{bKr8XWgpjEaWQbA!#^B4_X|!2e}?t*+Rz y{Tlw21wfx3*DI%Z(cX!FtUZTFWeV znVF$w5j2oQer}j0>I1iR{EEfb_|XRzKPswwPU{5v>--q{$HXf78|WYB zC(u73*3dsGPKu4-6lYsjed951Yi-t9R*54mWEcnHZWyCq=!a4XLfYG5lmID4DvsJT zRJ|e+%+;y9vD+7q8MdH_Ny>#H^7}w$Q;2d|hCQ=zJ5+%RJ0g&xFF{$pl-!MEn)F1X z(e-YKUOx`C$co@%AXHYALJwrprZc9W1B4#)eKhqAfVMOn;mP*wJ$9dsm|EucmZj|x z+hg4M+?GEWG47tU?%UcK+1lN+)$=3FNY>G}bYahyFYDq6d+gcwEnXNe@giS(V2!K~ ztUdOS-M5D&?dj6U<{mHo9;e*2wk+4uWxcE`9cT9{v*>SR7p+f0*|F;7FagWg4fB5J zC!vn+3jgC>y`3h$hSdCyOnbiG7JeKl?WY~To%Z@sEVysv*zm7)%051tB83{n+K&{r zQc-dz7G}~JKhnxKk|J6zD#086M_43xA|=kyai{FK}MY&%mK!FTa>N z>t7?qyp20UNa;ZL2e`CO=kL)l%O2a%g-y8xC`n&3Ye8*@>Y{C-{c|1Q4j%Zk;(ewq zQj|a1UqB@uS&vxefU`$-W;b5X*j;%PQw{i5G`G{9XofNg2VrwZHNydqno@iLP1Ua@ zVGnYA?atITns-HVw;4ybn|<@_Z#CX{y{TYjul2+B=iwcpn%yYrhHo}=?I5jCjs9*{ zK1V7+>Tv!=;*}U*w}vm|(}Mi{8t3A)9meWBkm>Bqofxm%g9X;BnM))|t}Sz7k!0lv z+M{%sw1qrI*D4Yqp=541jS@*mNwTl3{0SN0B`H&xEpP26I=naOd?at5@_(v@SJ5{ z63g8RFN-Q)7Pan?$y$$Bcop=Or|G=b@%RzG0_y7bP*?dHsB63i|9Uh#x@k;*!6gpE zi_l&!{F$!!JKIrv8y1{!A=SK}Q2y;*7`ygE&Y@mL(QnnG!Iv2vW}sHkGL9e(Fx&!f=-l#aWoV^rPaou z?BR=t+_3S~imY%4y!P9)X!;RO%4vAn0HWc<$Bf(Df%9d#^WCF3jO` zvs@!!ER`%<9-np17^$K>1#pg#=KzLh59K;{FJxj$n;3PNnbqygrT8UZz(&+jBJRjD zwDrtaKANix5ze680{m5Sh#rB4HuY25xG)FCnk5?{R_8?@qe0&fs_lK^SXK`|YliD^5E zd7#t$?DLqaDgYJ7gQuv#W0dXTtIrhL!UmfQA|i3kMD#;+Mo!n_)_}?C$Qm>1J!HtY zpitC|C=dl4CEHnHN5XMGau2=Ifk$6myiH$i#1~L*{V5P1_$Q_0V1CWf~*__ zh&zLr@JbMTF$m)cWhn@F+NNOyA04%O0(lV6n9iJw$*%kf4$r)4n9n0qlbAQ!=3cr7 zTcdu-yy=g1b#ta|EdNvmj4O}q=XjY&80H z?eceab$-OAk>cV=?K?@kwb2$naz+=>6ur%2SZWnSQ7j=4d6bpbooqGN;JMUy`0mBT zN479cg^`DadKL}zBq=soPx4eIsT!O0lBC1sMFQ^;AU|L@&DJT>1hYsJwBt}I`2o=> zz-GlfpEy)-zr=*!p(%O@5}a#Sn55CC1VHM20Zm;6m!gF55g*CwOm+J2a~y>yo0jf^BwwqI=qpQ6SE%?E0+Oa9aJ5#2;T57><{D*ond)o zb?q^7|FJuA9%5{g&lh%2PcnI{TO2Pvv}XA{3*ST3yl&#N$&#m!LYZh^LhakaKP=Cm zrqw1YBc1<$|1Wd;*(QtS#-yNF%LRxY+#v7?ftv&lJa}cIOy*pP35wD}`%4rY_;a7E zyQBac`wH;fGx$El?~-rKIl4p`c_8^IfzJr+Gh;9loIV60K%4p4=WTyQ(rEp;tcaoz zS-+&sG6zNXT!mIbMj~~Z#>!N1d6`!*Rb*b*tzuCgLcPiV7Nm)wc`P;Q9En&`iY2QA zt`H!eGw&l~WMOQAgoz}^?;FOl+SL0^jP;OvW!||w88}bXhB^)4Srs<>Lm-*{opx4E Mue`LfRQ}Pw0rL?0AOHXW literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/nodes.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/nodes.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9ca2c1f283d368baab00d3653fd622fbc7b26d6 GIT binary patch literal 40321 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 J)UxQ?{|37MPo)3= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/sandbox.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/sandbox.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ec7cdccafb9ae4df35db37118cb8c8fa4269379b GIT binary patch literal 11987 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/utils.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..235b72cfbed0790a785fd87477a05f73cdc73377 GIT binary patch literal 24528 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/visitor.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/visitor.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ddce4e6be6e58e0f43120801912f5086107c316f GIT binary patch literal 3994 zcma)9&u`nv6(%WCqG>xDr;Dr;Y!=gYfkbU%wcEWE*cLI;?KWuP4PqmURd-8`H6w`% zMJh9t9jh`>!0omFK+z&u^s@a^+W&ypp7z#rFYWgpElaW!pal3t&J5qYpWipiH#Z{( z*H?dy^uIS9=U?=)eEE2JfZMhql+$*UtGv{0d#a}Vv^MhFzUydj7?^i?rrvIR;;2B? z|KO;)ZVbb-T6+y64HaS}JoDNS-quuvw@62rU02?|(_EiE-F^H>^l~E#BagJPN!Ay| zK#Se|1CixQ+a2*}G*0zMXN6Yc@Puc(`DmP^+6bAcXrv1%lB_Vf9qVq9l8>w3^WzbLL`)2FyCy(nkj`P$w4+G+ZwZ*|%; z0Y*)oM1ut7iN$|pYmkq0OPWkhWb4?rgwWmZ>r5M2+;^up zS6tnhFWGB0Xg&7Taa=}mJj&H1rRR+}em;?DHDhYfQo2Q1+s#f4YHi7-$~oH0P%PGQ zb5KI(eV0exoU%i#U8JndDWlr#`R9oWD2b|}>qFEa%Nj`}lB&>ehi{x;R~wjLQ=3Ti zwQ`+Gha-?1c?Ti+Os3B)7oj|~DB5lz>`7M07pP#ZsUQW#P@IQV^d=eCq~$8tsPU6X z;G&Ab&?HkkLL8vtuYNF+C!#7MaU@fuSsV|N?m!$T(0`~|4O$1~rWUQyVLcszt{CKM zC*oC)(JD&!iV@0$a_V4FH ziq3&K`9+e!`IAoN9)Euk0dbs9QpJi6p}tbS^bN-$vG8mlj}kyaS7vw--GR*dm4i9L zXA*@*g_a03CAI2a0+#8mV&~H_fsssq^K=<3zFa{BYBFm1hq&!FMB&VU zwuL)$&)lK+XXh`T^3H0g#oF}mPZ&{No52c02e66@3(>2b5Xo{F*hn&TDGJ5>BZ^rD z<+4EJt>$gcov*yUh^|QNg{G@PApK>%O7C8?RyL3!Srn%9i<7Z7*WhH+Gt})>xGo^h z5EPW_O9_1!1B^r4!StQIMJMhotyzHON?<9dgenZR5AZN^UOF@Pm3!*XeC1AD^Y+Z2 zxqWx$edRuJ5@%NXoBJnsAM1t){?+lOH?2?~rOsu)2QS`%;&OAPM4G{pZx=vby1fOK zSB?f8qVGb3rHYBX(7Wkwd(*9DM|sT^$H+N$?0a~axi6hp&d;4Mufa7k-oI?T>pX|c zs3C9q6XGl?TP_RzVw@)3q`0W+Ia)0j$im(7ItawX-9eJ7m||efZ5Z$dkE6x9ORgI# zbYfjg@!9ZhyZ(Qtx0c;riRfN4;;J!kVYRsqQ8waO<=r@Ddf_aXEt8!{AtsyC$7Q7emN{0tXDW`bs}jiP1Fo^FQ!#(a*pA!aMa(18_l5cxRs3?K`LSS%6NzciO;c zqo`r@L-f2qYh3R6)5ff!oQY$a&$s4l?T54a%V5@cSaU(W$a!1Tq9?%B+hM za|$x9dYGEFtm_wr&Qw{K<1zgXF3M(mI z;UdC4gcWJN5>^VlPpP)xrap0z4~%f9zuQH(Eg%A2zc?9E1T9V>!s6dSRd{qfMI%)w zK(0`te|WiLm bool: + return t.cast(bool, args[0].is_async) + + else: + + def is_async(args: t.Any) -> bool: + return t.cast(bool, args[0].environment.is_async) + + # Take the doc and annotations from the sync function, but the + # name from the async function. Pallets-Sphinx-Themes + # build_function_directive expects __wrapped__ to point to the + # sync function. + async_func_attrs = ("__module__", "__name__", "__qualname__") + normal_func_attrs = tuple(set(WRAPPER_ASSIGNMENTS).difference(async_func_attrs)) + + @wraps(normal_func, assigned=normal_func_attrs) + @wraps(async_func, assigned=async_func_attrs, updated=()) + def wrapper(*args, **kwargs): # type: ignore + b = is_async(args) + + if need_eval_context: + args = args[1:] + + if b: + return async_func(*args, **kwargs) + + return normal_func(*args, **kwargs) + + if need_eval_context: + wrapper = pass_eval_context(wrapper) + + wrapper.jinja_async_variant = True + return wrapper + + return decorator + + +_common_primitives = {int, float, bool, str, list, dict, tuple, type(None)} + + +async def auto_await(value: t.Union[t.Awaitable["V"], "V"]) -> "V": + # Avoid a costly call to isawaitable + if type(value) in _common_primitives: + return t.cast("V", value) + + if inspect.isawaitable(value): + return await t.cast("t.Awaitable[V]", value) + + return t.cast("V", value) + + +async def auto_aiter( + iterable: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", +) -> "t.AsyncIterator[V]": + if hasattr(iterable, "__aiter__"): + async for item in t.cast("t.AsyncIterable[V]", iterable): + yield item + else: + for item in t.cast("t.Iterable[V]", iterable): + yield item + + +async def auto_to_list( + value: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", +) -> t.List["V"]: + return [x async for x in auto_aiter(value)] diff --git a/venv/lib/python3.10/site-packages/jinja2/bccache.py b/venv/lib/python3.10/site-packages/jinja2/bccache.py new file mode 100644 index 0000000..d0ddf56 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/bccache.py @@ -0,0 +1,406 @@ +"""The optional bytecode cache system. This is useful if you have very +complex template situations and the compilation of all those templates +slows down your application too much. + +Situations where this is useful are often forking web applications that +are initialized on the first request. +""" +import errno +import fnmatch +import marshal +import os +import pickle +import stat +import sys +import tempfile +import typing as t +from hashlib import sha1 +from io import BytesIO +from types import CodeType + +if t.TYPE_CHECKING: + import typing_extensions as te + from .environment import Environment + + class _MemcachedClient(te.Protocol): + def get(self, key: str) -> bytes: + ... + + def set(self, key: str, value: bytes, timeout: t.Optional[int] = None) -> None: + ... + + +bc_version = 5 +# Magic bytes to identify Jinja bytecode cache files. Contains the +# Python major and minor version to avoid loading incompatible bytecode +# if a project upgrades its Python version. +bc_magic = ( + b"j2" + + pickle.dumps(bc_version, 2) + + pickle.dumps((sys.version_info[0] << 24) | sys.version_info[1], 2) +) + + +class Bucket: + """Buckets are used to store the bytecode for one template. It's created + and initialized by the bytecode cache and passed to the loading functions. + + The buckets get an internal checksum from the cache assigned and use this + to automatically reject outdated cache material. Individual bytecode + cache subclasses don't have to care about cache invalidation. + """ + + def __init__(self, environment: "Environment", key: str, checksum: str) -> None: + self.environment = environment + self.key = key + self.checksum = checksum + self.reset() + + def reset(self) -> None: + """Resets the bucket (unloads the bytecode).""" + self.code: t.Optional[CodeType] = None + + def load_bytecode(self, f: t.BinaryIO) -> None: + """Loads bytecode from a file or file like object.""" + # make sure the magic header is correct + magic = f.read(len(bc_magic)) + if magic != bc_magic: + self.reset() + return + # the source code of the file changed, we need to reload + checksum = pickle.load(f) + if self.checksum != checksum: + self.reset() + return + # if marshal_load fails then we need to reload + try: + self.code = marshal.load(f) + except (EOFError, ValueError, TypeError): + self.reset() + return + + def write_bytecode(self, f: t.IO[bytes]) -> None: + """Dump the bytecode into the file or file like object passed.""" + if self.code is None: + raise TypeError("can't write empty bucket") + f.write(bc_magic) + pickle.dump(self.checksum, f, 2) + marshal.dump(self.code, f) + + def bytecode_from_string(self, string: bytes) -> None: + """Load bytecode from bytes.""" + self.load_bytecode(BytesIO(string)) + + def bytecode_to_string(self) -> bytes: + """Return the bytecode as bytes.""" + out = BytesIO() + self.write_bytecode(out) + return out.getvalue() + + +class BytecodeCache: + """To implement your own bytecode cache you have to subclass this class + and override :meth:`load_bytecode` and :meth:`dump_bytecode`. Both of + these methods are passed a :class:`~jinja2.bccache.Bucket`. + + A very basic bytecode cache that saves the bytecode on the file system:: + + from os import path + + class MyCache(BytecodeCache): + + def __init__(self, directory): + self.directory = directory + + def load_bytecode(self, bucket): + filename = path.join(self.directory, bucket.key) + if path.exists(filename): + with open(filename, 'rb') as f: + bucket.load_bytecode(f) + + def dump_bytecode(self, bucket): + filename = path.join(self.directory, bucket.key) + with open(filename, 'wb') as f: + bucket.write_bytecode(f) + + A more advanced version of a filesystem based bytecode cache is part of + Jinja. + """ + + def load_bytecode(self, bucket: Bucket) -> None: + """Subclasses have to override this method to load bytecode into a + bucket. If they are not able to find code in the cache for the + bucket, it must not do anything. + """ + raise NotImplementedError() + + def dump_bytecode(self, bucket: Bucket) -> None: + """Subclasses have to override this method to write the bytecode + from a bucket back to the cache. If it unable to do so it must not + fail silently but raise an exception. + """ + raise NotImplementedError() + + def clear(self) -> None: + """Clears the cache. This method is not used by Jinja but should be + implemented to allow applications to clear the bytecode cache used + by a particular environment. + """ + + def get_cache_key( + self, name: str, filename: t.Optional[t.Union[str]] = None + ) -> str: + """Returns the unique hash key for this template name.""" + hash = sha1(name.encode("utf-8")) + + if filename is not None: + hash.update(f"|{filename}".encode()) + + return hash.hexdigest() + + def get_source_checksum(self, source: str) -> str: + """Returns a checksum for the source.""" + return sha1(source.encode("utf-8")).hexdigest() + + def get_bucket( + self, + environment: "Environment", + name: str, + filename: t.Optional[str], + source: str, + ) -> Bucket: + """Return a cache bucket for the given template. All arguments are + mandatory but filename may be `None`. + """ + key = self.get_cache_key(name, filename) + checksum = self.get_source_checksum(source) + bucket = Bucket(environment, key, checksum) + self.load_bytecode(bucket) + return bucket + + def set_bucket(self, bucket: Bucket) -> None: + """Put the bucket into the cache.""" + self.dump_bytecode(bucket) + + +class FileSystemBytecodeCache(BytecodeCache): + """A bytecode cache that stores bytecode on the filesystem. It accepts + two arguments: The directory where the cache items are stored and a + pattern string that is used to build the filename. + + If no directory is specified a default cache directory is selected. On + Windows the user's temp directory is used, on UNIX systems a directory + is created for the user in the system temp directory. + + The pattern can be used to have multiple separate caches operate on the + same directory. The default pattern is ``'__jinja2_%s.cache'``. ``%s`` + is replaced with the cache key. + + >>> bcc = FileSystemBytecodeCache('/tmp/jinja_cache', '%s.cache') + + This bytecode cache supports clearing of the cache using the clear method. + """ + + def __init__( + self, directory: t.Optional[str] = None, pattern: str = "__jinja2_%s.cache" + ) -> None: + if directory is None: + directory = self._get_default_cache_dir() + self.directory = directory + self.pattern = pattern + + def _get_default_cache_dir(self) -> str: + def _unsafe_dir() -> "te.NoReturn": + raise RuntimeError( + "Cannot determine safe temp directory. You " + "need to explicitly provide one." + ) + + tmpdir = tempfile.gettempdir() + + # On windows the temporary directory is used specific unless + # explicitly forced otherwise. We can just use that. + if os.name == "nt": + return tmpdir + if not hasattr(os, "getuid"): + _unsafe_dir() + + dirname = f"_jinja2-cache-{os.getuid()}" + actual_dir = os.path.join(tmpdir, dirname) + + try: + os.mkdir(actual_dir, stat.S_IRWXU) + except OSError as e: + if e.errno != errno.EEXIST: + raise + try: + os.chmod(actual_dir, stat.S_IRWXU) + actual_dir_stat = os.lstat(actual_dir) + if ( + actual_dir_stat.st_uid != os.getuid() + or not stat.S_ISDIR(actual_dir_stat.st_mode) + or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU + ): + _unsafe_dir() + except OSError as e: + if e.errno != errno.EEXIST: + raise + + actual_dir_stat = os.lstat(actual_dir) + if ( + actual_dir_stat.st_uid != os.getuid() + or not stat.S_ISDIR(actual_dir_stat.st_mode) + or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU + ): + _unsafe_dir() + + return actual_dir + + def _get_cache_filename(self, bucket: Bucket) -> str: + return os.path.join(self.directory, self.pattern % (bucket.key,)) + + def load_bytecode(self, bucket: Bucket) -> None: + filename = self._get_cache_filename(bucket) + + # Don't test for existence before opening the file, since the + # file could disappear after the test before the open. + try: + f = open(filename, "rb") + except (FileNotFoundError, IsADirectoryError, PermissionError): + # PermissionError can occur on Windows when an operation is + # in progress, such as calling clear(). + return + + with f: + bucket.load_bytecode(f) + + def dump_bytecode(self, bucket: Bucket) -> None: + # Write to a temporary file, then rename to the real name after + # writing. This avoids another process reading the file before + # it is fully written. + name = self._get_cache_filename(bucket) + f = tempfile.NamedTemporaryFile( + mode="wb", + dir=os.path.dirname(name), + prefix=os.path.basename(name), + suffix=".tmp", + delete=False, + ) + + def remove_silent() -> None: + try: + os.remove(f.name) + except OSError: + # Another process may have called clear(). On Windows, + # another program may be holding the file open. + pass + + try: + with f: + bucket.write_bytecode(f) + except BaseException: + remove_silent() + raise + + try: + os.replace(f.name, name) + except OSError: + # Another process may have called clear(). On Windows, + # another program may be holding the file open. + remove_silent() + except BaseException: + remove_silent() + raise + + def clear(self) -> None: + # imported lazily here because google app-engine doesn't support + # write access on the file system and the function does not exist + # normally. + from os import remove + + files = fnmatch.filter(os.listdir(self.directory), self.pattern % ("*",)) + for filename in files: + try: + remove(os.path.join(self.directory, filename)) + except OSError: + pass + + +class MemcachedBytecodeCache(BytecodeCache): + """This class implements a bytecode cache that uses a memcache cache for + storing the information. It does not enforce a specific memcache library + (tummy's memcache or cmemcache) but will accept any class that provides + the minimal interface required. + + Libraries compatible with this class: + + - `cachelib `_ + - `python-memcached `_ + + (Unfortunately the django cache interface is not compatible because it + does not support storing binary data, only text. You can however pass + the underlying cache client to the bytecode cache which is available + as `django.core.cache.cache._client`.) + + The minimal interface for the client passed to the constructor is this: + + .. class:: MinimalClientInterface + + .. method:: set(key, value[, timeout]) + + Stores the bytecode in the cache. `value` is a string and + `timeout` the timeout of the key. If timeout is not provided + a default timeout or no timeout should be assumed, if it's + provided it's an integer with the number of seconds the cache + item should exist. + + .. method:: get(key) + + Returns the value for the cache key. If the item does not + exist in the cache the return value must be `None`. + + The other arguments to the constructor are the prefix for all keys that + is added before the actual cache key and the timeout for the bytecode in + the cache system. We recommend a high (or no) timeout. + + This bytecode cache does not support clearing of used items in the cache. + The clear method is a no-operation function. + + .. versionadded:: 2.7 + Added support for ignoring memcache errors through the + `ignore_memcache_errors` parameter. + """ + + def __init__( + self, + client: "_MemcachedClient", + prefix: str = "jinja2/bytecode/", + timeout: t.Optional[int] = None, + ignore_memcache_errors: bool = True, + ): + self.client = client + self.prefix = prefix + self.timeout = timeout + self.ignore_memcache_errors = ignore_memcache_errors + + def load_bytecode(self, bucket: Bucket) -> None: + try: + code = self.client.get(self.prefix + bucket.key) + except Exception: + if not self.ignore_memcache_errors: + raise + else: + bucket.bytecode_from_string(code) + + def dump_bytecode(self, bucket: Bucket) -> None: + key = self.prefix + bucket.key + value = bucket.bytecode_to_string() + + try: + if self.timeout is not None: + self.client.set(key, value, self.timeout) + else: + self.client.set(key, value) + except Exception: + if not self.ignore_memcache_errors: + raise diff --git a/venv/lib/python3.10/site-packages/jinja2/compiler.py b/venv/lib/python3.10/site-packages/jinja2/compiler.py new file mode 100644 index 0000000..3458095 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/compiler.py @@ -0,0 +1,1957 @@ +"""Compiles nodes from the parser into Python code.""" +import typing as t +from contextlib import contextmanager +from functools import update_wrapper +from io import StringIO +from itertools import chain +from keyword import iskeyword as is_python_keyword + +from markupsafe import escape +from markupsafe import Markup + +from . import nodes +from .exceptions import TemplateAssertionError +from .idtracking import Symbols +from .idtracking import VAR_LOAD_ALIAS +from .idtracking import VAR_LOAD_PARAMETER +from .idtracking import VAR_LOAD_RESOLVE +from .idtracking import VAR_LOAD_UNDEFINED +from .nodes import EvalContext +from .optimizer import Optimizer +from .utils import _PassArg +from .utils import concat +from .visitor import NodeVisitor + +if t.TYPE_CHECKING: + import typing_extensions as te + from .environment import Environment + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + +operators = { + "eq": "==", + "ne": "!=", + "gt": ">", + "gteq": ">=", + "lt": "<", + "lteq": "<=", + "in": "in", + "notin": "not in", +} + + +def optimizeconst(f: F) -> F: + def new_func( + self: "CodeGenerator", node: nodes.Expr, frame: "Frame", **kwargs: t.Any + ) -> t.Any: + # Only optimize if the frame is not volatile + if self.optimizer is not None and not frame.eval_ctx.volatile: + new_node = self.optimizer.visit(node, frame.eval_ctx) + + if new_node != node: + return self.visit(new_node, frame) + + return f(self, node, frame, **kwargs) + + return update_wrapper(t.cast(F, new_func), f) + + +def _make_binop(op: str) -> t.Callable[["CodeGenerator", nodes.BinExpr, "Frame"], None]: + @optimizeconst + def visitor(self: "CodeGenerator", node: nodes.BinExpr, frame: Frame) -> None: + if ( + self.environment.sandboxed + and op in self.environment.intercepted_binops # type: ignore + ): + self.write(f"environment.call_binop(context, {op!r}, ") + self.visit(node.left, frame) + self.write(", ") + self.visit(node.right, frame) + else: + self.write("(") + self.visit(node.left, frame) + self.write(f" {op} ") + self.visit(node.right, frame) + + self.write(")") + + return visitor + + +def _make_unop( + op: str, +) -> t.Callable[["CodeGenerator", nodes.UnaryExpr, "Frame"], None]: + @optimizeconst + def visitor(self: "CodeGenerator", node: nodes.UnaryExpr, frame: Frame) -> None: + if ( + self.environment.sandboxed + and op in self.environment.intercepted_unops # type: ignore + ): + self.write(f"environment.call_unop(context, {op!r}, ") + self.visit(node.node, frame) + else: + self.write("(" + op) + self.visit(node.node, frame) + + self.write(")") + + return visitor + + +def generate( + node: nodes.Template, + environment: "Environment", + name: t.Optional[str], + filename: t.Optional[str], + stream: t.Optional[t.TextIO] = None, + defer_init: bool = False, + optimized: bool = True, +) -> t.Optional[str]: + """Generate the python source for a node tree.""" + if not isinstance(node, nodes.Template): + raise TypeError("Can't compile non template nodes") + + generator = environment.code_generator_class( + environment, name, filename, stream, defer_init, optimized + ) + generator.visit(node) + + if stream is None: + return generator.stream.getvalue() # type: ignore + + return None + + +def has_safe_repr(value: t.Any) -> bool: + """Does the node have a safe representation?""" + if value is None or value is NotImplemented or value is Ellipsis: + return True + + if type(value) in {bool, int, float, complex, range, str, Markup}: + return True + + if type(value) in {tuple, list, set, frozenset}: + return all(has_safe_repr(v) for v in value) + + if type(value) is dict: + return all(has_safe_repr(k) and has_safe_repr(v) for k, v in value.items()) + + return False + + +def find_undeclared( + nodes: t.Iterable[nodes.Node], names: t.Iterable[str] +) -> t.Set[str]: + """Check if the names passed are accessed undeclared. The return value + is a set of all the undeclared names from the sequence of names found. + """ + visitor = UndeclaredNameVisitor(names) + try: + for node in nodes: + visitor.visit(node) + except VisitorExit: + pass + return visitor.undeclared + + +class MacroRef: + def __init__(self, node: t.Union[nodes.Macro, nodes.CallBlock]) -> None: + self.node = node + self.accesses_caller = False + self.accesses_kwargs = False + self.accesses_varargs = False + + +class Frame: + """Holds compile time information for us.""" + + def __init__( + self, + eval_ctx: EvalContext, + parent: t.Optional["Frame"] = None, + level: t.Optional[int] = None, + ) -> None: + self.eval_ctx = eval_ctx + + # the parent of this frame + self.parent = parent + + if parent is None: + self.symbols = Symbols(level=level) + + # in some dynamic inheritance situations the compiler needs to add + # write tests around output statements. + self.require_output_check = False + + # inside some tags we are using a buffer rather than yield statements. + # this for example affects {% filter %} or {% macro %}. If a frame + # is buffered this variable points to the name of the list used as + # buffer. + self.buffer: t.Optional[str] = None + + # the name of the block we're in, otherwise None. + self.block: t.Optional[str] = None + + else: + self.symbols = Symbols(parent.symbols, level=level) + self.require_output_check = parent.require_output_check + self.buffer = parent.buffer + self.block = parent.block + + # a toplevel frame is the root + soft frames such as if conditions. + self.toplevel = False + + # the root frame is basically just the outermost frame, so no if + # conditions. This information is used to optimize inheritance + # situations. + self.rootlevel = False + + # variables set inside of loops and blocks should not affect outer frames, + # but they still needs to be kept track of as part of the active context. + self.loop_frame = False + self.block_frame = False + + # track whether the frame is being used in an if-statement or conditional + # expression as it determines which errors should be raised during runtime + # or compile time. + self.soft_frame = False + + def copy(self) -> "Frame": + """Create a copy of the current one.""" + rv = object.__new__(self.__class__) + rv.__dict__.update(self.__dict__) + rv.symbols = self.symbols.copy() + return rv + + def inner(self, isolated: bool = False) -> "Frame": + """Return an inner frame.""" + if isolated: + return Frame(self.eval_ctx, level=self.symbols.level + 1) + return Frame(self.eval_ctx, self) + + def soft(self) -> "Frame": + """Return a soft frame. A soft frame may not be modified as + standalone thing as it shares the resources with the frame it + was created of, but it's not a rootlevel frame any longer. + + This is only used to implement if-statements and conditional + expressions. + """ + rv = self.copy() + rv.rootlevel = False + rv.soft_frame = True + return rv + + __copy__ = copy + + +class VisitorExit(RuntimeError): + """Exception used by the `UndeclaredNameVisitor` to signal a stop.""" + + +class DependencyFinderVisitor(NodeVisitor): + """A visitor that collects filter and test calls.""" + + def __init__(self) -> None: + self.filters: t.Set[str] = set() + self.tests: t.Set[str] = set() + + def visit_Filter(self, node: nodes.Filter) -> None: + self.generic_visit(node) + self.filters.add(node.name) + + def visit_Test(self, node: nodes.Test) -> None: + self.generic_visit(node) + self.tests.add(node.name) + + def visit_Block(self, node: nodes.Block) -> None: + """Stop visiting at blocks.""" + + +class UndeclaredNameVisitor(NodeVisitor): + """A visitor that checks if a name is accessed without being + declared. This is different from the frame visitor as it will + not stop at closure frames. + """ + + def __init__(self, names: t.Iterable[str]) -> None: + self.names = set(names) + self.undeclared: t.Set[str] = set() + + def visit_Name(self, node: nodes.Name) -> None: + if node.ctx == "load" and node.name in self.names: + self.undeclared.add(node.name) + if self.undeclared == self.names: + raise VisitorExit() + else: + self.names.discard(node.name) + + def visit_Block(self, node: nodes.Block) -> None: + """Stop visiting a blocks.""" + + +class CompilerExit(Exception): + """Raised if the compiler encountered a situation where it just + doesn't make sense to further process the code. Any block that + raises such an exception is not further processed. + """ + + +class CodeGenerator(NodeVisitor): + def __init__( + self, + environment: "Environment", + name: t.Optional[str], + filename: t.Optional[str], + stream: t.Optional[t.TextIO] = None, + defer_init: bool = False, + optimized: bool = True, + ) -> None: + if stream is None: + stream = StringIO() + self.environment = environment + self.name = name + self.filename = filename + self.stream = stream + self.created_block_context = False + self.defer_init = defer_init + self.optimizer: t.Optional[Optimizer] = None + + if optimized: + self.optimizer = Optimizer(environment) + + # aliases for imports + self.import_aliases: t.Dict[str, str] = {} + + # a registry for all blocks. Because blocks are moved out + # into the global python scope they are registered here + self.blocks: t.Dict[str, nodes.Block] = {} + + # the number of extends statements so far + self.extends_so_far = 0 + + # some templates have a rootlevel extends. In this case we + # can safely assume that we're a child template and do some + # more optimizations. + self.has_known_extends = False + + # the current line number + self.code_lineno = 1 + + # registry of all filters and tests (global, not block local) + self.tests: t.Dict[str, str] = {} + self.filters: t.Dict[str, str] = {} + + # the debug information + self.debug_info: t.List[t.Tuple[int, int]] = [] + self._write_debug_info: t.Optional[int] = None + + # the number of new lines before the next write() + self._new_lines = 0 + + # the line number of the last written statement + self._last_line = 0 + + # true if nothing was written so far. + self._first_write = True + + # used by the `temporary_identifier` method to get new + # unique, temporary identifier + self._last_identifier = 0 + + # the current indentation + self._indentation = 0 + + # Tracks toplevel assignments + self._assign_stack: t.List[t.Set[str]] = [] + + # Tracks parameter definition blocks + self._param_def_block: t.List[t.Set[str]] = [] + + # Tracks the current context. + self._context_reference_stack = ["context"] + + @property + def optimized(self) -> bool: + return self.optimizer is not None + + # -- Various compilation helpers + + def fail(self, msg: str, lineno: int) -> "te.NoReturn": + """Fail with a :exc:`TemplateAssertionError`.""" + raise TemplateAssertionError(msg, lineno, self.name, self.filename) + + def temporary_identifier(self) -> str: + """Get a new unique identifier.""" + self._last_identifier += 1 + return f"t_{self._last_identifier}" + + def buffer(self, frame: Frame) -> None: + """Enable buffering for the frame from that point onwards.""" + frame.buffer = self.temporary_identifier() + self.writeline(f"{frame.buffer} = []") + + def return_buffer_contents( + self, frame: Frame, force_unescaped: bool = False + ) -> None: + """Return the buffer contents of the frame.""" + if not force_unescaped: + if frame.eval_ctx.volatile: + self.writeline("if context.eval_ctx.autoescape:") + self.indent() + self.writeline(f"return Markup(concat({frame.buffer}))") + self.outdent() + self.writeline("else:") + self.indent() + self.writeline(f"return concat({frame.buffer})") + self.outdent() + return + elif frame.eval_ctx.autoescape: + self.writeline(f"return Markup(concat({frame.buffer}))") + return + self.writeline(f"return concat({frame.buffer})") + + def indent(self) -> None: + """Indent by one.""" + self._indentation += 1 + + def outdent(self, step: int = 1) -> None: + """Outdent by step.""" + self._indentation -= step + + def start_write(self, frame: Frame, node: t.Optional[nodes.Node] = None) -> None: + """Yield or write into the frame buffer.""" + if frame.buffer is None: + self.writeline("yield ", node) + else: + self.writeline(f"{frame.buffer}.append(", node) + + def end_write(self, frame: Frame) -> None: + """End the writing process started by `start_write`.""" + if frame.buffer is not None: + self.write(")") + + def simple_write( + self, s: str, frame: Frame, node: t.Optional[nodes.Node] = None + ) -> None: + """Simple shortcut for start_write + write + end_write.""" + self.start_write(frame, node) + self.write(s) + self.end_write(frame) + + def blockvisit(self, nodes: t.Iterable[nodes.Node], frame: Frame) -> None: + """Visit a list of nodes as block in a frame. If the current frame + is no buffer a dummy ``if 0: yield None`` is written automatically. + """ + try: + self.writeline("pass") + for node in nodes: + self.visit(node, frame) + except CompilerExit: + pass + + def write(self, x: str) -> None: + """Write a string into the output stream.""" + if self._new_lines: + if not self._first_write: + self.stream.write("\n" * self._new_lines) + self.code_lineno += self._new_lines + if self._write_debug_info is not None: + self.debug_info.append((self._write_debug_info, self.code_lineno)) + self._write_debug_info = None + self._first_write = False + self.stream.write(" " * self._indentation) + self._new_lines = 0 + self.stream.write(x) + + def writeline( + self, x: str, node: t.Optional[nodes.Node] = None, extra: int = 0 + ) -> None: + """Combination of newline and write.""" + self.newline(node, extra) + self.write(x) + + def newline(self, node: t.Optional[nodes.Node] = None, extra: int = 0) -> None: + """Add one or more newlines before the next write.""" + self._new_lines = max(self._new_lines, 1 + extra) + if node is not None and node.lineno != self._last_line: + self._write_debug_info = node.lineno + self._last_line = node.lineno + + def signature( + self, + node: t.Union[nodes.Call, nodes.Filter, nodes.Test], + frame: Frame, + extra_kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + ) -> None: + """Writes a function call to the stream for the current node. + A leading comma is added automatically. The extra keyword + arguments may not include python keywords otherwise a syntax + error could occur. The extra keyword arguments should be given + as python dict. + """ + # if any of the given keyword arguments is a python keyword + # we have to make sure that no invalid call is created. + kwarg_workaround = any( + is_python_keyword(t.cast(str, k)) + for k in chain((x.key for x in node.kwargs), extra_kwargs or ()) + ) + + for arg in node.args: + self.write(", ") + self.visit(arg, frame) + + if not kwarg_workaround: + for kwarg in node.kwargs: + self.write(", ") + self.visit(kwarg, frame) + if extra_kwargs is not None: + for key, value in extra_kwargs.items(): + self.write(f", {key}={value}") + if node.dyn_args: + self.write(", *") + self.visit(node.dyn_args, frame) + + if kwarg_workaround: + if node.dyn_kwargs is not None: + self.write(", **dict({") + else: + self.write(", **{") + for kwarg in node.kwargs: + self.write(f"{kwarg.key!r}: ") + self.visit(kwarg.value, frame) + self.write(", ") + if extra_kwargs is not None: + for key, value in extra_kwargs.items(): + self.write(f"{key!r}: {value}, ") + if node.dyn_kwargs is not None: + self.write("}, **") + self.visit(node.dyn_kwargs, frame) + self.write(")") + else: + self.write("}") + + elif node.dyn_kwargs is not None: + self.write(", **") + self.visit(node.dyn_kwargs, frame) + + def pull_dependencies(self, nodes: t.Iterable[nodes.Node]) -> None: + """Find all filter and test names used in the template and + assign them to variables in the compiled namespace. Checking + that the names are registered with the environment is done when + compiling the Filter and Test nodes. If the node is in an If or + CondExpr node, the check is done at runtime instead. + + .. versionchanged:: 3.0 + Filters and tests in If and CondExpr nodes are checked at + runtime instead of compile time. + """ + visitor = DependencyFinderVisitor() + + for node in nodes: + visitor.visit(node) + + for id_map, names, dependency in (self.filters, visitor.filters, "filters"), ( + self.tests, + visitor.tests, + "tests", + ): + for name in sorted(names): + if name not in id_map: + id_map[name] = self.temporary_identifier() + + # add check during runtime that dependencies used inside of executed + # blocks are defined, as this step may be skipped during compile time + self.writeline("try:") + self.indent() + self.writeline(f"{id_map[name]} = environment.{dependency}[{name!r}]") + self.outdent() + self.writeline("except KeyError:") + self.indent() + self.writeline("@internalcode") + self.writeline(f"def {id_map[name]}(*unused):") + self.indent() + self.writeline( + f'raise TemplateRuntimeError("No {dependency[:-1]}' + f' named {name!r} found.")' + ) + self.outdent() + self.outdent() + + def enter_frame(self, frame: Frame) -> None: + undefs = [] + for target, (action, param) in frame.symbols.loads.items(): + if action == VAR_LOAD_PARAMETER: + pass + elif action == VAR_LOAD_RESOLVE: + self.writeline(f"{target} = {self.get_resolve_func()}({param!r})") + elif action == VAR_LOAD_ALIAS: + self.writeline(f"{target} = {param}") + elif action == VAR_LOAD_UNDEFINED: + undefs.append(target) + else: + raise NotImplementedError("unknown load instruction") + if undefs: + self.writeline(f"{' = '.join(undefs)} = missing") + + def leave_frame(self, frame: Frame, with_python_scope: bool = False) -> None: + if not with_python_scope: + undefs = [] + for target in frame.symbols.loads: + undefs.append(target) + if undefs: + self.writeline(f"{' = '.join(undefs)} = missing") + + def choose_async(self, async_value: str = "async ", sync_value: str = "") -> str: + return async_value if self.environment.is_async else sync_value + + def func(self, name: str) -> str: + return f"{self.choose_async()}def {name}" + + def macro_body( + self, node: t.Union[nodes.Macro, nodes.CallBlock], frame: Frame + ) -> t.Tuple[Frame, MacroRef]: + """Dump the function def of a macro or call block.""" + frame = frame.inner() + frame.symbols.analyze_node(node) + macro_ref = MacroRef(node) + + explicit_caller = None + skip_special_params = set() + args = [] + + for idx, arg in enumerate(node.args): + if arg.name == "caller": + explicit_caller = idx + if arg.name in ("kwargs", "varargs"): + skip_special_params.add(arg.name) + args.append(frame.symbols.ref(arg.name)) + + undeclared = find_undeclared(node.body, ("caller", "kwargs", "varargs")) + + if "caller" in undeclared: + # In older Jinja versions there was a bug that allowed caller + # to retain the special behavior even if it was mentioned in + # the argument list. However thankfully this was only really + # working if it was the last argument. So we are explicitly + # checking this now and error out if it is anywhere else in + # the argument list. + if explicit_caller is not None: + try: + node.defaults[explicit_caller - len(node.args)] + except IndexError: + self.fail( + "When defining macros or call blocks the " + 'special "caller" argument must be omitted ' + "or be given a default.", + node.lineno, + ) + else: + args.append(frame.symbols.declare_parameter("caller")) + macro_ref.accesses_caller = True + if "kwargs" in undeclared and "kwargs" not in skip_special_params: + args.append(frame.symbols.declare_parameter("kwargs")) + macro_ref.accesses_kwargs = True + if "varargs" in undeclared and "varargs" not in skip_special_params: + args.append(frame.symbols.declare_parameter("varargs")) + macro_ref.accesses_varargs = True + + # macros are delayed, they never require output checks + frame.require_output_check = False + frame.symbols.analyze_node(node) + self.writeline(f"{self.func('macro')}({', '.join(args)}):", node) + self.indent() + + self.buffer(frame) + self.enter_frame(frame) + + self.push_parameter_definitions(frame) + for idx, arg in enumerate(node.args): + ref = frame.symbols.ref(arg.name) + self.writeline(f"if {ref} is missing:") + self.indent() + try: + default = node.defaults[idx - len(node.args)] + except IndexError: + self.writeline( + f'{ref} = undefined("parameter {arg.name!r} was not provided",' + f" name={arg.name!r})" + ) + else: + self.writeline(f"{ref} = ") + self.visit(default, frame) + self.mark_parameter_stored(ref) + self.outdent() + self.pop_parameter_definitions() + + self.blockvisit(node.body, frame) + self.return_buffer_contents(frame, force_unescaped=True) + self.leave_frame(frame, with_python_scope=True) + self.outdent() + + return frame, macro_ref + + def macro_def(self, macro_ref: MacroRef, frame: Frame) -> None: + """Dump the macro definition for the def created by macro_body.""" + arg_tuple = ", ".join(repr(x.name) for x in macro_ref.node.args) + name = getattr(macro_ref.node, "name", None) + if len(macro_ref.node.args) == 1: + arg_tuple += "," + self.write( + f"Macro(environment, macro, {name!r}, ({arg_tuple})," + f" {macro_ref.accesses_kwargs!r}, {macro_ref.accesses_varargs!r}," + f" {macro_ref.accesses_caller!r}, context.eval_ctx.autoescape)" + ) + + def position(self, node: nodes.Node) -> str: + """Return a human readable position for the node.""" + rv = f"line {node.lineno}" + if self.name is not None: + rv = f"{rv} in {self.name!r}" + return rv + + def dump_local_context(self, frame: Frame) -> str: + items_kv = ", ".join( + f"{name!r}: {target}" + for name, target in frame.symbols.dump_stores().items() + ) + return f"{{{items_kv}}}" + + def write_commons(self) -> None: + """Writes a common preamble that is used by root and block functions. + Primarily this sets up common local helpers and enforces a generator + through a dead branch. + """ + self.writeline("resolve = context.resolve_or_missing") + self.writeline("undefined = environment.undefined") + self.writeline("concat = environment.concat") + # always use the standard Undefined class for the implicit else of + # conditional expressions + self.writeline("cond_expr_undefined = Undefined") + self.writeline("if 0: yield None") + + def push_parameter_definitions(self, frame: Frame) -> None: + """Pushes all parameter targets from the given frame into a local + stack that permits tracking of yet to be assigned parameters. In + particular this enables the optimization from `visit_Name` to skip + undefined expressions for parameters in macros as macros can reference + otherwise unbound parameters. + """ + self._param_def_block.append(frame.symbols.dump_param_targets()) + + def pop_parameter_definitions(self) -> None: + """Pops the current parameter definitions set.""" + self._param_def_block.pop() + + def mark_parameter_stored(self, target: str) -> None: + """Marks a parameter in the current parameter definitions as stored. + This will skip the enforced undefined checks. + """ + if self._param_def_block: + self._param_def_block[-1].discard(target) + + def push_context_reference(self, target: str) -> None: + self._context_reference_stack.append(target) + + def pop_context_reference(self) -> None: + self._context_reference_stack.pop() + + def get_context_ref(self) -> str: + return self._context_reference_stack[-1] + + def get_resolve_func(self) -> str: + target = self._context_reference_stack[-1] + if target == "context": + return "resolve" + return f"{target}.resolve" + + def derive_context(self, frame: Frame) -> str: + return f"{self.get_context_ref()}.derived({self.dump_local_context(frame)})" + + def parameter_is_undeclared(self, target: str) -> bool: + """Checks if a given target is an undeclared parameter.""" + if not self._param_def_block: + return False + return target in self._param_def_block[-1] + + def push_assign_tracking(self) -> None: + """Pushes a new layer for assignment tracking.""" + self._assign_stack.append(set()) + + def pop_assign_tracking(self, frame: Frame) -> None: + """Pops the topmost level for assignment tracking and updates the + context variables if necessary. + """ + vars = self._assign_stack.pop() + if ( + not frame.block_frame + and not frame.loop_frame + and not frame.toplevel + or not vars + ): + return + public_names = [x for x in vars if x[:1] != "_"] + if len(vars) == 1: + name = next(iter(vars)) + ref = frame.symbols.ref(name) + if frame.loop_frame: + self.writeline(f"_loop_vars[{name!r}] = {ref}") + return + if frame.block_frame: + self.writeline(f"_block_vars[{name!r}] = {ref}") + return + self.writeline(f"context.vars[{name!r}] = {ref}") + else: + if frame.loop_frame: + self.writeline("_loop_vars.update({") + elif frame.block_frame: + self.writeline("_block_vars.update({") + else: + self.writeline("context.vars.update({") + for idx, name in enumerate(vars): + if idx: + self.write(", ") + ref = frame.symbols.ref(name) + self.write(f"{name!r}: {ref}") + self.write("})") + if not frame.block_frame and not frame.loop_frame and public_names: + if len(public_names) == 1: + self.writeline(f"context.exported_vars.add({public_names[0]!r})") + else: + names_str = ", ".join(map(repr, public_names)) + self.writeline(f"context.exported_vars.update(({names_str}))") + + # -- Statement Visitors + + def visit_Template( + self, node: nodes.Template, frame: t.Optional[Frame] = None + ) -> None: + assert frame is None, "no root frame allowed" + eval_ctx = EvalContext(self.environment, self.name) + + from .runtime import exported, async_exported + + if self.environment.is_async: + exported_names = sorted(exported + async_exported) + else: + exported_names = sorted(exported) + + self.writeline("from jinja2.runtime import " + ", ".join(exported_names)) + + # if we want a deferred initialization we cannot move the + # environment into a local name + envenv = "" if self.defer_init else ", environment=environment" + + # do we have an extends tag at all? If not, we can save some + # overhead by just not processing any inheritance code. + have_extends = node.find(nodes.Extends) is not None + + # find all blocks + for block in node.find_all(nodes.Block): + if block.name in self.blocks: + self.fail(f"block {block.name!r} defined twice", block.lineno) + self.blocks[block.name] = block + + # find all imports and import them + for import_ in node.find_all(nodes.ImportedName): + if import_.importname not in self.import_aliases: + imp = import_.importname + self.import_aliases[imp] = alias = self.temporary_identifier() + if "." in imp: + module, obj = imp.rsplit(".", 1) + self.writeline(f"from {module} import {obj} as {alias}") + else: + self.writeline(f"import {imp} as {alias}") + + # add the load name + self.writeline(f"name = {self.name!r}") + + # generate the root render function. + self.writeline( + f"{self.func('root')}(context, missing=missing{envenv}):", extra=1 + ) + self.indent() + self.write_commons() + + # process the root + frame = Frame(eval_ctx) + if "self" in find_undeclared(node.body, ("self",)): + ref = frame.symbols.declare_parameter("self") + self.writeline(f"{ref} = TemplateReference(context)") + frame.symbols.analyze_node(node) + frame.toplevel = frame.rootlevel = True + frame.require_output_check = have_extends and not self.has_known_extends + if have_extends: + self.writeline("parent_template = None") + self.enter_frame(frame) + self.pull_dependencies(node.body) + self.blockvisit(node.body, frame) + self.leave_frame(frame, with_python_scope=True) + self.outdent() + + # make sure that the parent root is called. + if have_extends: + if not self.has_known_extends: + self.indent() + self.writeline("if parent_template is not None:") + self.indent() + if not self.environment.is_async: + self.writeline("yield from parent_template.root_render_func(context)") + else: + self.writeline( + "async for event in parent_template.root_render_func(context):" + ) + self.indent() + self.writeline("yield event") + self.outdent() + self.outdent(1 + (not self.has_known_extends)) + + # at this point we now have the blocks collected and can visit them too. + for name, block in self.blocks.items(): + self.writeline( + f"{self.func('block_' + name)}(context, missing=missing{envenv}):", + block, + 1, + ) + self.indent() + self.write_commons() + # It's important that we do not make this frame a child of the + # toplevel template. This would cause a variety of + # interesting issues with identifier tracking. + block_frame = Frame(eval_ctx) + block_frame.block_frame = True + undeclared = find_undeclared(block.body, ("self", "super")) + if "self" in undeclared: + ref = block_frame.symbols.declare_parameter("self") + self.writeline(f"{ref} = TemplateReference(context)") + if "super" in undeclared: + ref = block_frame.symbols.declare_parameter("super") + self.writeline(f"{ref} = context.super({name!r}, block_{name})") + block_frame.symbols.analyze_node(block) + block_frame.block = name + self.writeline("_block_vars = {}") + self.enter_frame(block_frame) + self.pull_dependencies(block.body) + self.blockvisit(block.body, block_frame) + self.leave_frame(block_frame, with_python_scope=True) + self.outdent() + + blocks_kv_str = ", ".join(f"{x!r}: block_{x}" for x in self.blocks) + self.writeline(f"blocks = {{{blocks_kv_str}}}", extra=1) + debug_kv_str = "&".join(f"{k}={v}" for k, v in self.debug_info) + self.writeline(f"debug_info = {debug_kv_str!r}") + + def visit_Block(self, node: nodes.Block, frame: Frame) -> None: + """Call a block and register it for the template.""" + level = 0 + if frame.toplevel: + # if we know that we are a child template, there is no need to + # check if we are one + if self.has_known_extends: + return + if self.extends_so_far > 0: + self.writeline("if parent_template is None:") + self.indent() + level += 1 + + if node.scoped: + context = self.derive_context(frame) + else: + context = self.get_context_ref() + + if node.required: + self.writeline(f"if len(context.blocks[{node.name!r}]) <= 1:", node) + self.indent() + self.writeline( + f'raise TemplateRuntimeError("Required block {node.name!r} not found")', + node, + ) + self.outdent() + + if not self.environment.is_async and frame.buffer is None: + self.writeline( + f"yield from context.blocks[{node.name!r}][0]({context})", node + ) + else: + self.writeline( + f"{self.choose_async()}for event in" + f" context.blocks[{node.name!r}][0]({context}):", + node, + ) + self.indent() + self.simple_write("event", frame) + self.outdent() + + self.outdent(level) + + def visit_Extends(self, node: nodes.Extends, frame: Frame) -> None: + """Calls the extender.""" + if not frame.toplevel: + self.fail("cannot use extend from a non top-level scope", node.lineno) + + # if the number of extends statements in general is zero so + # far, we don't have to add a check if something extended + # the template before this one. + if self.extends_so_far > 0: + + # if we have a known extends we just add a template runtime + # error into the generated code. We could catch that at compile + # time too, but i welcome it not to confuse users by throwing the + # same error at different times just "because we can". + if not self.has_known_extends: + self.writeline("if parent_template is not None:") + self.indent() + self.writeline('raise TemplateRuntimeError("extended multiple times")') + + # if we have a known extends already we don't need that code here + # as we know that the template execution will end here. + if self.has_known_extends: + raise CompilerExit() + else: + self.outdent() + + self.writeline("parent_template = environment.get_template(", node) + self.visit(node.template, frame) + self.write(f", {self.name!r})") + self.writeline("for name, parent_block in parent_template.blocks.items():") + self.indent() + self.writeline("context.blocks.setdefault(name, []).append(parent_block)") + self.outdent() + + # if this extends statement was in the root level we can take + # advantage of that information and simplify the generated code + # in the top level from this point onwards + if frame.rootlevel: + self.has_known_extends = True + + # and now we have one more + self.extends_so_far += 1 + + def visit_Include(self, node: nodes.Include, frame: Frame) -> None: + """Handles includes.""" + if node.ignore_missing: + self.writeline("try:") + self.indent() + + func_name = "get_or_select_template" + if isinstance(node.template, nodes.Const): + if isinstance(node.template.value, str): + func_name = "get_template" + elif isinstance(node.template.value, (tuple, list)): + func_name = "select_template" + elif isinstance(node.template, (nodes.Tuple, nodes.List)): + func_name = "select_template" + + self.writeline(f"template = environment.{func_name}(", node) + self.visit(node.template, frame) + self.write(f", {self.name!r})") + if node.ignore_missing: + self.outdent() + self.writeline("except TemplateNotFound:") + self.indent() + self.writeline("pass") + self.outdent() + self.writeline("else:") + self.indent() + + skip_event_yield = False + if node.with_context: + self.writeline( + f"{self.choose_async()}for event in template.root_render_func(" + "template.new_context(context.get_all(), True," + f" {self.dump_local_context(frame)})):" + ) + elif self.environment.is_async: + self.writeline( + "for event in (await template._get_default_module_async())" + "._body_stream:" + ) + else: + self.writeline("yield from template._get_default_module()._body_stream") + skip_event_yield = True + + if not skip_event_yield: + self.indent() + self.simple_write("event", frame) + self.outdent() + + if node.ignore_missing: + self.outdent() + + def _import_common( + self, node: t.Union[nodes.Import, nodes.FromImport], frame: Frame + ) -> None: + self.write(f"{self.choose_async('await ')}environment.get_template(") + self.visit(node.template, frame) + self.write(f", {self.name!r}).") + + if node.with_context: + f_name = f"make_module{self.choose_async('_async')}" + self.write( + f"{f_name}(context.get_all(), True, {self.dump_local_context(frame)})" + ) + else: + self.write(f"_get_default_module{self.choose_async('_async')}(context)") + + def visit_Import(self, node: nodes.Import, frame: Frame) -> None: + """Visit regular imports.""" + self.writeline(f"{frame.symbols.ref(node.target)} = ", node) + if frame.toplevel: + self.write(f"context.vars[{node.target!r}] = ") + + self._import_common(node, frame) + + if frame.toplevel and not node.target.startswith("_"): + self.writeline(f"context.exported_vars.discard({node.target!r})") + + def visit_FromImport(self, node: nodes.FromImport, frame: Frame) -> None: + """Visit named imports.""" + self.newline(node) + self.write("included_template = ") + self._import_common(node, frame) + var_names = [] + discarded_names = [] + for name in node.names: + if isinstance(name, tuple): + name, alias = name + else: + alias = name + self.writeline( + f"{frame.symbols.ref(alias)} =" + f" getattr(included_template, {name!r}, missing)" + ) + self.writeline(f"if {frame.symbols.ref(alias)} is missing:") + self.indent() + message = ( + "the template {included_template.__name__!r}" + f" (imported on {self.position(node)})" + f" does not export the requested name {name!r}" + ) + self.writeline( + f"{frame.symbols.ref(alias)} = undefined(f{message!r}, name={name!r})" + ) + self.outdent() + if frame.toplevel: + var_names.append(alias) + if not alias.startswith("_"): + discarded_names.append(alias) + + if var_names: + if len(var_names) == 1: + name = var_names[0] + self.writeline(f"context.vars[{name!r}] = {frame.symbols.ref(name)}") + else: + names_kv = ", ".join( + f"{name!r}: {frame.symbols.ref(name)}" for name in var_names + ) + self.writeline(f"context.vars.update({{{names_kv}}})") + if discarded_names: + if len(discarded_names) == 1: + self.writeline(f"context.exported_vars.discard({discarded_names[0]!r})") + else: + names_str = ", ".join(map(repr, discarded_names)) + self.writeline( + f"context.exported_vars.difference_update(({names_str}))" + ) + + def visit_For(self, node: nodes.For, frame: Frame) -> None: + loop_frame = frame.inner() + loop_frame.loop_frame = True + test_frame = frame.inner() + else_frame = frame.inner() + + # try to figure out if we have an extended loop. An extended loop + # is necessary if the loop is in recursive mode if the special loop + # variable is accessed in the body if the body is a scoped block. + extended_loop = ( + node.recursive + or "loop" + in find_undeclared(node.iter_child_nodes(only=("body",)), ("loop",)) + or any(block.scoped for block in node.find_all(nodes.Block)) + ) + + loop_ref = None + if extended_loop: + loop_ref = loop_frame.symbols.declare_parameter("loop") + + loop_frame.symbols.analyze_node(node, for_branch="body") + if node.else_: + else_frame.symbols.analyze_node(node, for_branch="else") + + if node.test: + loop_filter_func = self.temporary_identifier() + test_frame.symbols.analyze_node(node, for_branch="test") + self.writeline(f"{self.func(loop_filter_func)}(fiter):", node.test) + self.indent() + self.enter_frame(test_frame) + self.writeline(self.choose_async("async for ", "for ")) + self.visit(node.target, loop_frame) + self.write(" in ") + self.write(self.choose_async("auto_aiter(fiter)", "fiter")) + self.write(":") + self.indent() + self.writeline("if ", node.test) + self.visit(node.test, test_frame) + self.write(":") + self.indent() + self.writeline("yield ") + self.visit(node.target, loop_frame) + self.outdent(3) + self.leave_frame(test_frame, with_python_scope=True) + + # if we don't have an recursive loop we have to find the shadowed + # variables at that point. Because loops can be nested but the loop + # variable is a special one we have to enforce aliasing for it. + if node.recursive: + self.writeline( + f"{self.func('loop')}(reciter, loop_render_func, depth=0):", node + ) + self.indent() + self.buffer(loop_frame) + + # Use the same buffer for the else frame + else_frame.buffer = loop_frame.buffer + + # make sure the loop variable is a special one and raise a template + # assertion error if a loop tries to write to loop + if extended_loop: + self.writeline(f"{loop_ref} = missing") + + for name in node.find_all(nodes.Name): + if name.ctx == "store" and name.name == "loop": + self.fail( + "Can't assign to special loop variable in for-loop target", + name.lineno, + ) + + if node.else_: + iteration_indicator = self.temporary_identifier() + self.writeline(f"{iteration_indicator} = 1") + + self.writeline(self.choose_async("async for ", "for "), node) + self.visit(node.target, loop_frame) + if extended_loop: + self.write(f", {loop_ref} in {self.choose_async('Async')}LoopContext(") + else: + self.write(" in ") + + if node.test: + self.write(f"{loop_filter_func}(") + if node.recursive: + self.write("reciter") + else: + if self.environment.is_async and not extended_loop: + self.write("auto_aiter(") + self.visit(node.iter, frame) + if self.environment.is_async and not extended_loop: + self.write(")") + if node.test: + self.write(")") + + if node.recursive: + self.write(", undefined, loop_render_func, depth):") + else: + self.write(", undefined):" if extended_loop else ":") + + self.indent() + self.enter_frame(loop_frame) + + self.writeline("_loop_vars = {}") + self.blockvisit(node.body, loop_frame) + if node.else_: + self.writeline(f"{iteration_indicator} = 0") + self.outdent() + self.leave_frame( + loop_frame, with_python_scope=node.recursive and not node.else_ + ) + + if node.else_: + self.writeline(f"if {iteration_indicator}:") + self.indent() + self.enter_frame(else_frame) + self.blockvisit(node.else_, else_frame) + self.leave_frame(else_frame) + self.outdent() + + # if the node was recursive we have to return the buffer contents + # and start the iteration code + if node.recursive: + self.return_buffer_contents(loop_frame) + self.outdent() + self.start_write(frame, node) + self.write(f"{self.choose_async('await ')}loop(") + if self.environment.is_async: + self.write("auto_aiter(") + self.visit(node.iter, frame) + if self.environment.is_async: + self.write(")") + self.write(", loop)") + self.end_write(frame) + + # at the end of the iteration, clear any assignments made in the + # loop from the top level + if self._assign_stack: + self._assign_stack[-1].difference_update(loop_frame.symbols.stores) + + def visit_If(self, node: nodes.If, frame: Frame) -> None: + if_frame = frame.soft() + self.writeline("if ", node) + self.visit(node.test, if_frame) + self.write(":") + self.indent() + self.blockvisit(node.body, if_frame) + self.outdent() + for elif_ in node.elif_: + self.writeline("elif ", elif_) + self.visit(elif_.test, if_frame) + self.write(":") + self.indent() + self.blockvisit(elif_.body, if_frame) + self.outdent() + if node.else_: + self.writeline("else:") + self.indent() + self.blockvisit(node.else_, if_frame) + self.outdent() + + def visit_Macro(self, node: nodes.Macro, frame: Frame) -> None: + macro_frame, macro_ref = self.macro_body(node, frame) + self.newline() + if frame.toplevel: + if not node.name.startswith("_"): + self.write(f"context.exported_vars.add({node.name!r})") + self.writeline(f"context.vars[{node.name!r}] = ") + self.write(f"{frame.symbols.ref(node.name)} = ") + self.macro_def(macro_ref, macro_frame) + + def visit_CallBlock(self, node: nodes.CallBlock, frame: Frame) -> None: + call_frame, macro_ref = self.macro_body(node, frame) + self.writeline("caller = ") + self.macro_def(macro_ref, call_frame) + self.start_write(frame, node) + self.visit_Call(node.call, frame, forward_caller=True) + self.end_write(frame) + + def visit_FilterBlock(self, node: nodes.FilterBlock, frame: Frame) -> None: + filter_frame = frame.inner() + filter_frame.symbols.analyze_node(node) + self.enter_frame(filter_frame) + self.buffer(filter_frame) + self.blockvisit(node.body, filter_frame) + self.start_write(frame, node) + self.visit_Filter(node.filter, filter_frame) + self.end_write(frame) + self.leave_frame(filter_frame) + + def visit_With(self, node: nodes.With, frame: Frame) -> None: + with_frame = frame.inner() + with_frame.symbols.analyze_node(node) + self.enter_frame(with_frame) + for target, expr in zip(node.targets, node.values): + self.newline() + self.visit(target, with_frame) + self.write(" = ") + self.visit(expr, frame) + self.blockvisit(node.body, with_frame) + self.leave_frame(with_frame) + + def visit_ExprStmt(self, node: nodes.ExprStmt, frame: Frame) -> None: + self.newline(node) + self.visit(node.node, frame) + + class _FinalizeInfo(t.NamedTuple): + const: t.Optional[t.Callable[..., str]] + src: t.Optional[str] + + @staticmethod + def _default_finalize(value: t.Any) -> t.Any: + """The default finalize function if the environment isn't + configured with one. Or, if the environment has one, this is + called on that function's output for constants. + """ + return str(value) + + _finalize: t.Optional[_FinalizeInfo] = None + + def _make_finalize(self) -> _FinalizeInfo: + """Build the finalize function to be used on constants and at + runtime. Cached so it's only created once for all output nodes. + + Returns a ``namedtuple`` with the following attributes: + + ``const`` + A function to finalize constant data at compile time. + + ``src`` + Source code to output around nodes to be evaluated at + runtime. + """ + if self._finalize is not None: + return self._finalize + + finalize: t.Optional[t.Callable[..., t.Any]] + finalize = default = self._default_finalize + src = None + + if self.environment.finalize: + src = "environment.finalize(" + env_finalize = self.environment.finalize + pass_arg = { + _PassArg.context: "context", + _PassArg.eval_context: "context.eval_ctx", + _PassArg.environment: "environment", + }.get( + _PassArg.from_obj(env_finalize) # type: ignore + ) + finalize = None + + if pass_arg is None: + + def finalize(value: t.Any) -> t.Any: + return default(env_finalize(value)) + + else: + src = f"{src}{pass_arg}, " + + if pass_arg == "environment": + + def finalize(value: t.Any) -> t.Any: + return default(env_finalize(self.environment, value)) + + self._finalize = self._FinalizeInfo(finalize, src) + return self._finalize + + def _output_const_repr(self, group: t.Iterable[t.Any]) -> str: + """Given a group of constant values converted from ``Output`` + child nodes, produce a string to write to the template module + source. + """ + return repr(concat(group)) + + def _output_child_to_const( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> str: + """Try to optimize a child of an ``Output`` node by trying to + convert it to constant, finalized data at compile time. + + If :exc:`Impossible` is raised, the node is not constant and + will be evaluated at runtime. Any other exception will also be + evaluated at runtime for easier debugging. + """ + const = node.as_const(frame.eval_ctx) + + if frame.eval_ctx.autoescape: + const = escape(const) + + # Template data doesn't go through finalize. + if isinstance(node, nodes.TemplateData): + return str(const) + + return finalize.const(const) # type: ignore + + def _output_child_pre( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> None: + """Output extra source code before visiting a child of an + ``Output`` node. + """ + if frame.eval_ctx.volatile: + self.write("(escape if context.eval_ctx.autoescape else str)(") + elif frame.eval_ctx.autoescape: + self.write("escape(") + else: + self.write("str(") + + if finalize.src is not None: + self.write(finalize.src) + + def _output_child_post( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> None: + """Output extra source code after visiting a child of an + ``Output`` node. + """ + self.write(")") + + if finalize.src is not None: + self.write(")") + + def visit_Output(self, node: nodes.Output, frame: Frame) -> None: + # If an extends is active, don't render outside a block. + if frame.require_output_check: + # A top-level extends is known to exist at compile time. + if self.has_known_extends: + return + + self.writeline("if parent_template is None:") + self.indent() + + finalize = self._make_finalize() + body: t.List[t.Union[t.List[t.Any], nodes.Expr]] = [] + + # Evaluate constants at compile time if possible. Each item in + # body will be either a list of static data or a node to be + # evaluated at runtime. + for child in node.nodes: + try: + if not ( + # If the finalize function requires runtime context, + # constants can't be evaluated at compile time. + finalize.const + # Unless it's basic template data that won't be + # finalized anyway. + or isinstance(child, nodes.TemplateData) + ): + raise nodes.Impossible() + + const = self._output_child_to_const(child, frame, finalize) + except (nodes.Impossible, Exception): + # The node was not constant and needs to be evaluated at + # runtime. Or another error was raised, which is easier + # to debug at runtime. + body.append(child) + continue + + if body and isinstance(body[-1], list): + body[-1].append(const) + else: + body.append([const]) + + if frame.buffer is not None: + if len(body) == 1: + self.writeline(f"{frame.buffer}.append(") + else: + self.writeline(f"{frame.buffer}.extend((") + + self.indent() + + for item in body: + if isinstance(item, list): + # A group of constant data to join and output. + val = self._output_const_repr(item) + + if frame.buffer is None: + self.writeline("yield " + val) + else: + self.writeline(val + ",") + else: + if frame.buffer is None: + self.writeline("yield ", item) + else: + self.newline(item) + + # A node to be evaluated at runtime. + self._output_child_pre(item, frame, finalize) + self.visit(item, frame) + self._output_child_post(item, frame, finalize) + + if frame.buffer is not None: + self.write(",") + + if frame.buffer is not None: + self.outdent() + self.writeline(")" if len(body) == 1 else "))") + + if frame.require_output_check: + self.outdent() + + def visit_Assign(self, node: nodes.Assign, frame: Frame) -> None: + self.push_assign_tracking() + self.newline(node) + self.visit(node.target, frame) + self.write(" = ") + self.visit(node.node, frame) + self.pop_assign_tracking(frame) + + def visit_AssignBlock(self, node: nodes.AssignBlock, frame: Frame) -> None: + self.push_assign_tracking() + block_frame = frame.inner() + # This is a special case. Since a set block always captures we + # will disable output checks. This way one can use set blocks + # toplevel even in extended templates. + block_frame.require_output_check = False + block_frame.symbols.analyze_node(node) + self.enter_frame(block_frame) + self.buffer(block_frame) + self.blockvisit(node.body, block_frame) + self.newline(node) + self.visit(node.target, frame) + self.write(" = (Markup if context.eval_ctx.autoescape else identity)(") + if node.filter is not None: + self.visit_Filter(node.filter, block_frame) + else: + self.write(f"concat({block_frame.buffer})") + self.write(")") + self.pop_assign_tracking(frame) + self.leave_frame(block_frame) + + # -- Expression Visitors + + def visit_Name(self, node: nodes.Name, frame: Frame) -> None: + if node.ctx == "store" and ( + frame.toplevel or frame.loop_frame or frame.block_frame + ): + if self._assign_stack: + self._assign_stack[-1].add(node.name) + ref = frame.symbols.ref(node.name) + + # If we are looking up a variable we might have to deal with the + # case where it's undefined. We can skip that case if the load + # instruction indicates a parameter which are always defined. + if node.ctx == "load": + load = frame.symbols.find_load(ref) + if not ( + load is not None + and load[0] == VAR_LOAD_PARAMETER + and not self.parameter_is_undeclared(ref) + ): + self.write( + f"(undefined(name={node.name!r}) if {ref} is missing else {ref})" + ) + return + + self.write(ref) + + def visit_NSRef(self, node: nodes.NSRef, frame: Frame) -> None: + # NSRefs can only be used to store values; since they use the normal + # `foo.bar` notation they will be parsed as a normal attribute access + # when used anywhere but in a `set` context + ref = frame.symbols.ref(node.name) + self.writeline(f"if not isinstance({ref}, Namespace):") + self.indent() + self.writeline( + "raise TemplateRuntimeError" + '("cannot assign attribute on non-namespace object")' + ) + self.outdent() + self.writeline(f"{ref}[{node.attr!r}]") + + def visit_Const(self, node: nodes.Const, frame: Frame) -> None: + val = node.as_const(frame.eval_ctx) + if isinstance(val, float): + self.write(str(val)) + else: + self.write(repr(val)) + + def visit_TemplateData(self, node: nodes.TemplateData, frame: Frame) -> None: + try: + self.write(repr(node.as_const(frame.eval_ctx))) + except nodes.Impossible: + self.write( + f"(Markup if context.eval_ctx.autoescape else identity)({node.data!r})" + ) + + def visit_Tuple(self, node: nodes.Tuple, frame: Frame) -> None: + self.write("(") + idx = -1 + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item, frame) + self.write(",)" if idx == 0 else ")") + + def visit_List(self, node: nodes.List, frame: Frame) -> None: + self.write("[") + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item, frame) + self.write("]") + + def visit_Dict(self, node: nodes.Dict, frame: Frame) -> None: + self.write("{") + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item.key, frame) + self.write(": ") + self.visit(item.value, frame) + self.write("}") + + visit_Add = _make_binop("+") + visit_Sub = _make_binop("-") + visit_Mul = _make_binop("*") + visit_Div = _make_binop("/") + visit_FloorDiv = _make_binop("//") + visit_Pow = _make_binop("**") + visit_Mod = _make_binop("%") + visit_And = _make_binop("and") + visit_Or = _make_binop("or") + visit_Pos = _make_unop("+") + visit_Neg = _make_unop("-") + visit_Not = _make_unop("not ") + + @optimizeconst + def visit_Concat(self, node: nodes.Concat, frame: Frame) -> None: + if frame.eval_ctx.volatile: + func_name = "(markup_join if context.eval_ctx.volatile else str_join)" + elif frame.eval_ctx.autoescape: + func_name = "markup_join" + else: + func_name = "str_join" + self.write(f"{func_name}((") + for arg in node.nodes: + self.visit(arg, frame) + self.write(", ") + self.write("))") + + @optimizeconst + def visit_Compare(self, node: nodes.Compare, frame: Frame) -> None: + self.write("(") + self.visit(node.expr, frame) + for op in node.ops: + self.visit(op, frame) + self.write(")") + + def visit_Operand(self, node: nodes.Operand, frame: Frame) -> None: + self.write(f" {operators[node.op]} ") + self.visit(node.expr, frame) + + @optimizeconst + def visit_Getattr(self, node: nodes.Getattr, frame: Frame) -> None: + if self.environment.is_async: + self.write("(await auto_await(") + + self.write("environment.getattr(") + self.visit(node.node, frame) + self.write(f", {node.attr!r})") + + if self.environment.is_async: + self.write("))") + + @optimizeconst + def visit_Getitem(self, node: nodes.Getitem, frame: Frame) -> None: + # slices bypass the environment getitem method. + if isinstance(node.arg, nodes.Slice): + self.visit(node.node, frame) + self.write("[") + self.visit(node.arg, frame) + self.write("]") + else: + if self.environment.is_async: + self.write("(await auto_await(") + + self.write("environment.getitem(") + self.visit(node.node, frame) + self.write(", ") + self.visit(node.arg, frame) + self.write(")") + + if self.environment.is_async: + self.write("))") + + def visit_Slice(self, node: nodes.Slice, frame: Frame) -> None: + if node.start is not None: + self.visit(node.start, frame) + self.write(":") + if node.stop is not None: + self.visit(node.stop, frame) + if node.step is not None: + self.write(":") + self.visit(node.step, frame) + + @contextmanager + def _filter_test_common( + self, node: t.Union[nodes.Filter, nodes.Test], frame: Frame, is_filter: bool + ) -> t.Iterator[None]: + if self.environment.is_async: + self.write("(await auto_await(") + + if is_filter: + self.write(f"{self.filters[node.name]}(") + func = self.environment.filters.get(node.name) + else: + self.write(f"{self.tests[node.name]}(") + func = self.environment.tests.get(node.name) + + # When inside an If or CondExpr frame, allow the filter to be + # undefined at compile time and only raise an error if it's + # actually called at runtime. See pull_dependencies. + if func is None and not frame.soft_frame: + type_name = "filter" if is_filter else "test" + self.fail(f"No {type_name} named {node.name!r}.", node.lineno) + + pass_arg = { + _PassArg.context: "context", + _PassArg.eval_context: "context.eval_ctx", + _PassArg.environment: "environment", + }.get( + _PassArg.from_obj(func) # type: ignore + ) + + if pass_arg is not None: + self.write(f"{pass_arg}, ") + + # Back to the visitor function to handle visiting the target of + # the filter or test. + yield + + self.signature(node, frame) + self.write(")") + + if self.environment.is_async: + self.write("))") + + @optimizeconst + def visit_Filter(self, node: nodes.Filter, frame: Frame) -> None: + with self._filter_test_common(node, frame, True): + # if the filter node is None we are inside a filter block + # and want to write to the current buffer + if node.node is not None: + self.visit(node.node, frame) + elif frame.eval_ctx.volatile: + self.write( + f"(Markup(concat({frame.buffer}))" + f" if context.eval_ctx.autoescape else concat({frame.buffer}))" + ) + elif frame.eval_ctx.autoescape: + self.write(f"Markup(concat({frame.buffer}))") + else: + self.write(f"concat({frame.buffer})") + + @optimizeconst + def visit_Test(self, node: nodes.Test, frame: Frame) -> None: + with self._filter_test_common(node, frame, False): + self.visit(node.node, frame) + + @optimizeconst + def visit_CondExpr(self, node: nodes.CondExpr, frame: Frame) -> None: + frame = frame.soft() + + def write_expr2() -> None: + if node.expr2 is not None: + self.visit(node.expr2, frame) + return + + self.write( + f'cond_expr_undefined("the inline if-expression on' + f" {self.position(node)} evaluated to false and no else" + f' section was defined.")' + ) + + self.write("(") + self.visit(node.expr1, frame) + self.write(" if ") + self.visit(node.test, frame) + self.write(" else ") + write_expr2() + self.write(")") + + @optimizeconst + def visit_Call( + self, node: nodes.Call, frame: Frame, forward_caller: bool = False + ) -> None: + if self.environment.is_async: + self.write("(await auto_await(") + if self.environment.sandboxed: + self.write("environment.call(context, ") + else: + self.write("context.call(") + self.visit(node.node, frame) + extra_kwargs = {"caller": "caller"} if forward_caller else None + loop_kwargs = {"_loop_vars": "_loop_vars"} if frame.loop_frame else {} + block_kwargs = {"_block_vars": "_block_vars"} if frame.block_frame else {} + if extra_kwargs: + extra_kwargs.update(loop_kwargs, **block_kwargs) + elif loop_kwargs or block_kwargs: + extra_kwargs = dict(loop_kwargs, **block_kwargs) + self.signature(node, frame, extra_kwargs) + self.write(")") + if self.environment.is_async: + self.write("))") + + def visit_Keyword(self, node: nodes.Keyword, frame: Frame) -> None: + self.write(node.key + "=") + self.visit(node.value, frame) + + # -- Unused nodes for extensions + + def visit_MarkSafe(self, node: nodes.MarkSafe, frame: Frame) -> None: + self.write("Markup(") + self.visit(node.expr, frame) + self.write(")") + + def visit_MarkSafeIfAutoescape( + self, node: nodes.MarkSafeIfAutoescape, frame: Frame + ) -> None: + self.write("(Markup if context.eval_ctx.autoescape else identity)(") + self.visit(node.expr, frame) + self.write(")") + + def visit_EnvironmentAttribute( + self, node: nodes.EnvironmentAttribute, frame: Frame + ) -> None: + self.write("environment." + node.name) + + def visit_ExtensionAttribute( + self, node: nodes.ExtensionAttribute, frame: Frame + ) -> None: + self.write(f"environment.extensions[{node.identifier!r}].{node.name}") + + def visit_ImportedName(self, node: nodes.ImportedName, frame: Frame) -> None: + self.write(self.import_aliases[node.importname]) + + def visit_InternalName(self, node: nodes.InternalName, frame: Frame) -> None: + self.write(node.name) + + def visit_ContextReference( + self, node: nodes.ContextReference, frame: Frame + ) -> None: + self.write("context") + + def visit_DerivedContextReference( + self, node: nodes.DerivedContextReference, frame: Frame + ) -> None: + self.write(self.derive_context(frame)) + + def visit_Continue(self, node: nodes.Continue, frame: Frame) -> None: + self.writeline("continue", node) + + def visit_Break(self, node: nodes.Break, frame: Frame) -> None: + self.writeline("break", node) + + def visit_Scope(self, node: nodes.Scope, frame: Frame) -> None: + scope_frame = frame.inner() + scope_frame.symbols.analyze_node(node) + self.enter_frame(scope_frame) + self.blockvisit(node.body, scope_frame) + self.leave_frame(scope_frame) + + def visit_OverlayScope(self, node: nodes.OverlayScope, frame: Frame) -> None: + ctx = self.temporary_identifier() + self.writeline(f"{ctx} = {self.derive_context(frame)}") + self.writeline(f"{ctx}.vars = ") + self.visit(node.context, frame) + self.push_context_reference(ctx) + + scope_frame = frame.inner(isolated=True) + scope_frame.symbols.analyze_node(node) + self.enter_frame(scope_frame) + self.blockvisit(node.body, scope_frame) + self.leave_frame(scope_frame) + self.pop_context_reference() + + def visit_EvalContextModifier( + self, node: nodes.EvalContextModifier, frame: Frame + ) -> None: + for keyword in node.options: + self.writeline(f"context.eval_ctx.{keyword.key} = ") + self.visit(keyword.value, frame) + try: + val = keyword.value.as_const(frame.eval_ctx) + except nodes.Impossible: + frame.eval_ctx.volatile = True + else: + setattr(frame.eval_ctx, keyword.key, val) + + def visit_ScopedEvalContextModifier( + self, node: nodes.ScopedEvalContextModifier, frame: Frame + ) -> None: + old_ctx_name = self.temporary_identifier() + saved_ctx = frame.eval_ctx.save() + self.writeline(f"{old_ctx_name} = context.eval_ctx.save()") + self.visit_EvalContextModifier(node, frame) + for child in node.body: + self.visit(child, frame) + frame.eval_ctx.revert(saved_ctx) + self.writeline(f"context.eval_ctx.revert({old_ctx_name})") diff --git a/venv/lib/python3.10/site-packages/jinja2/constants.py b/venv/lib/python3.10/site-packages/jinja2/constants.py new file mode 100644 index 0000000..41a1c23 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/constants.py @@ -0,0 +1,20 @@ +#: list of lorem ipsum words used by the lipsum() helper function +LOREM_IPSUM_WORDS = """\ +a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at +auctor augue bibendum blandit class commodo condimentum congue consectetuer +consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus +diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend +elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames +faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac +hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum +justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem +luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie +mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non +nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque +penatibus per pharetra phasellus placerat platea porta porttitor posuere +potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus +ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit +sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor +tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices +ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus +viverra volutpat vulputate""" diff --git a/venv/lib/python3.10/site-packages/jinja2/debug.py b/venv/lib/python3.10/site-packages/jinja2/debug.py new file mode 100644 index 0000000..7ed7e92 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/debug.py @@ -0,0 +1,191 @@ +import sys +import typing as t +from types import CodeType +from types import TracebackType + +from .exceptions import TemplateSyntaxError +from .utils import internal_code +from .utils import missing + +if t.TYPE_CHECKING: + from .runtime import Context + + +def rewrite_traceback_stack(source: t.Optional[str] = None) -> BaseException: + """Rewrite the current exception to replace any tracebacks from + within compiled template code with tracebacks that look like they + came from the template source. + + This must be called within an ``except`` block. + + :param source: For ``TemplateSyntaxError``, the original source if + known. + :return: The original exception with the rewritten traceback. + """ + _, exc_value, tb = sys.exc_info() + exc_value = t.cast(BaseException, exc_value) + tb = t.cast(TracebackType, tb) + + if isinstance(exc_value, TemplateSyntaxError) and not exc_value.translated: + exc_value.translated = True + exc_value.source = source + # Remove the old traceback, otherwise the frames from the + # compiler still show up. + exc_value.with_traceback(None) + # Outside of runtime, so the frame isn't executing template + # code, but it still needs to point at the template. + tb = fake_traceback( + exc_value, None, exc_value.filename or "", exc_value.lineno + ) + else: + # Skip the frame for the render function. + tb = tb.tb_next + + stack = [] + + # Build the stack of traceback object, replacing any in template + # code with the source file and line information. + while tb is not None: + # Skip frames decorated with @internalcode. These are internal + # calls that aren't useful in template debugging output. + if tb.tb_frame.f_code in internal_code: + tb = tb.tb_next + continue + + template = tb.tb_frame.f_globals.get("__jinja_template__") + + if template is not None: + lineno = template.get_corresponding_lineno(tb.tb_lineno) + fake_tb = fake_traceback(exc_value, tb, template.filename, lineno) + stack.append(fake_tb) + else: + stack.append(tb) + + tb = tb.tb_next + + tb_next = None + + # Assign tb_next in reverse to avoid circular references. + for tb in reversed(stack): + tb.tb_next = tb_next + tb_next = tb + + return exc_value.with_traceback(tb_next) + + +def fake_traceback( # type: ignore + exc_value: BaseException, tb: t.Optional[TracebackType], filename: str, lineno: int +) -> TracebackType: + """Produce a new traceback object that looks like it came from the + template source instead of the compiled code. The filename, line + number, and location name will point to the template, and the local + variables will be the current template context. + + :param exc_value: The original exception to be re-raised to create + the new traceback. + :param tb: The original traceback to get the local variables and + code info from. + :param filename: The template filename. + :param lineno: The line number in the template source. + """ + if tb is not None: + # Replace the real locals with the context that would be + # available at that point in the template. + locals = get_template_locals(tb.tb_frame.f_locals) + locals.pop("__jinja_exception__", None) + else: + locals = {} + + globals = { + "__name__": filename, + "__file__": filename, + "__jinja_exception__": exc_value, + } + # Raise an exception at the correct line number. + code: CodeType = compile( + "\n" * (lineno - 1) + "raise __jinja_exception__", filename, "exec" + ) + + # Build a new code object that points to the template file and + # replaces the location with a block name. + location = "template" + + if tb is not None: + function = tb.tb_frame.f_code.co_name + + if function == "root": + location = "top-level template code" + elif function.startswith("block_"): + location = f"block {function[6:]!r}" + + if sys.version_info >= (3, 8): + code = code.replace(co_name=location) + else: + code = CodeType( + code.co_argcount, + code.co_kwonlyargcount, + code.co_nlocals, + code.co_stacksize, + code.co_flags, + code.co_code, + code.co_consts, + code.co_names, + code.co_varnames, + code.co_filename, + location, + code.co_firstlineno, + code.co_lnotab, + code.co_freevars, + code.co_cellvars, + ) + + # Execute the new code, which is guaranteed to raise, and return + # the new traceback without this frame. + try: + exec(code, globals, locals) + except BaseException: + return sys.exc_info()[2].tb_next # type: ignore + + +def get_template_locals(real_locals: t.Mapping[str, t.Any]) -> t.Dict[str, t.Any]: + """Based on the runtime locals, get the context that would be + available at that point in the template. + """ + # Start with the current template context. + ctx: "t.Optional[Context]" = real_locals.get("context") + + if ctx is not None: + data: t.Dict[str, t.Any] = ctx.get_all().copy() + else: + data = {} + + # Might be in a derived context that only sets local variables + # rather than pushing a context. Local variables follow the scheme + # l_depth_name. Find the highest-depth local that has a value for + # each name. + local_overrides: t.Dict[str, t.Tuple[int, t.Any]] = {} + + for name, value in real_locals.items(): + if not name.startswith("l_") or value is missing: + # Not a template variable, or no longer relevant. + continue + + try: + _, depth_str, name = name.split("_", 2) + depth = int(depth_str) + except ValueError: + continue + + cur_depth = local_overrides.get(name, (-1,))[0] + + if cur_depth < depth: + local_overrides[name] = (depth, value) + + # Modify the context with any derived context. + for name, (_, value) in local_overrides.items(): + if value is missing: + data.pop(name, None) + else: + data[name] = value + + return data diff --git a/venv/lib/python3.10/site-packages/jinja2/defaults.py b/venv/lib/python3.10/site-packages/jinja2/defaults.py new file mode 100644 index 0000000..638cad3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/defaults.py @@ -0,0 +1,48 @@ +import typing as t + +from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 +from .tests import TESTS as DEFAULT_TESTS # noqa: F401 +from .utils import Cycler +from .utils import generate_lorem_ipsum +from .utils import Joiner +from .utils import Namespace + +if t.TYPE_CHECKING: + import typing_extensions as te + +# defaults for the parser / lexer +BLOCK_START_STRING = "{%" +BLOCK_END_STRING = "%}" +VARIABLE_START_STRING = "{{" +VARIABLE_END_STRING = "}}" +COMMENT_START_STRING = "{#" +COMMENT_END_STRING = "#}" +LINE_STATEMENT_PREFIX: t.Optional[str] = None +LINE_COMMENT_PREFIX: t.Optional[str] = None +TRIM_BLOCKS = False +LSTRIP_BLOCKS = False +NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" +KEEP_TRAILING_NEWLINE = False + +# default filters, tests and namespace + +DEFAULT_NAMESPACE = { + "range": range, + "dict": dict, + "lipsum": generate_lorem_ipsum, + "cycler": Cycler, + "joiner": Joiner, + "namespace": Namespace, +} + +# default policies +DEFAULT_POLICIES: t.Dict[str, t.Any] = { + "compiler.ascii_str": True, + "urlize.rel": "noopener", + "urlize.target": None, + "urlize.extra_schemes": None, + "truncate.leeway": 5, + "json.dumps_function": None, + "json.dumps_kwargs": {"sort_keys": True}, + "ext.i18n.trimmed": False, +} diff --git a/venv/lib/python3.10/site-packages/jinja2/environment.py b/venv/lib/python3.10/site-packages/jinja2/environment.py new file mode 100644 index 0000000..ea04e8b --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/environment.py @@ -0,0 +1,1667 @@ +"""Classes for managing templates and their runtime and compile time +options. +""" +import os +import typing +import typing as t +import weakref +from collections import ChainMap +from functools import lru_cache +from functools import partial +from functools import reduce +from types import CodeType + +from markupsafe import Markup + +from . import nodes +from .compiler import CodeGenerator +from .compiler import generate +from .defaults import BLOCK_END_STRING +from .defaults import BLOCK_START_STRING +from .defaults import COMMENT_END_STRING +from .defaults import COMMENT_START_STRING +from .defaults import DEFAULT_FILTERS +from .defaults import DEFAULT_NAMESPACE +from .defaults import DEFAULT_POLICIES +from .defaults import DEFAULT_TESTS +from .defaults import KEEP_TRAILING_NEWLINE +from .defaults import LINE_COMMENT_PREFIX +from .defaults import LINE_STATEMENT_PREFIX +from .defaults import LSTRIP_BLOCKS +from .defaults import NEWLINE_SEQUENCE +from .defaults import TRIM_BLOCKS +from .defaults import VARIABLE_END_STRING +from .defaults import VARIABLE_START_STRING +from .exceptions import TemplateNotFound +from .exceptions import TemplateRuntimeError +from .exceptions import TemplatesNotFound +from .exceptions import TemplateSyntaxError +from .exceptions import UndefinedError +from .lexer import get_lexer +from .lexer import Lexer +from .lexer import TokenStream +from .nodes import EvalContext +from .parser import Parser +from .runtime import Context +from .runtime import new_context +from .runtime import Undefined +from .utils import _PassArg +from .utils import concat +from .utils import consume +from .utils import import_string +from .utils import internalcode +from .utils import LRUCache +from .utils import missing + +if t.TYPE_CHECKING: + import typing_extensions as te + from .bccache import BytecodeCache + from .ext import Extension + from .loaders import BaseLoader + +_env_bound = t.TypeVar("_env_bound", bound="Environment") + + +# for direct template usage we have up to ten living environments +@lru_cache(maxsize=10) +def get_spontaneous_environment(cls: t.Type[_env_bound], *args: t.Any) -> _env_bound: + """Return a new spontaneous environment. A spontaneous environment + is used for templates created directly rather than through an + existing environment. + + :param cls: Environment class to create. + :param args: Positional arguments passed to environment. + """ + env = cls(*args) + env.shared = True + return env + + +def create_cache( + size: int, +) -> t.Optional[t.MutableMapping[t.Tuple[weakref.ref, str], "Template"]]: + """Return the cache class for the given size.""" + if size == 0: + return None + + if size < 0: + return {} + + return LRUCache(size) # type: ignore + + +def copy_cache( + cache: t.Optional[t.MutableMapping], +) -> t.Optional[t.MutableMapping[t.Tuple[weakref.ref, str], "Template"]]: + """Create an empty copy of the given cache.""" + if cache is None: + return None + + if type(cache) is dict: + return {} + + return LRUCache(cache.capacity) # type: ignore + + +def load_extensions( + environment: "Environment", + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]], +) -> t.Dict[str, "Extension"]: + """Load the extensions from the list and bind it to the environment. + Returns a dict of instantiated extensions. + """ + result = {} + + for extension in extensions: + if isinstance(extension, str): + extension = t.cast(t.Type["Extension"], import_string(extension)) + + result[extension.identifier] = extension(environment) + + return result + + +def _environment_config_check(environment: "Environment") -> "Environment": + """Perform a sanity check on the environment.""" + assert issubclass( + environment.undefined, Undefined + ), "'undefined' must be a subclass of 'jinja2.Undefined'." + assert ( + environment.block_start_string + != environment.variable_start_string + != environment.comment_start_string + ), "block, variable and comment start strings must be different." + assert environment.newline_sequence in { + "\r", + "\r\n", + "\n", + }, "'newline_sequence' must be one of '\\n', '\\r\\n', or '\\r'." + return environment + + +class Environment: + r"""The core component of Jinja is the `Environment`. It contains + important shared variables like configuration, filters, tests, + globals and others. Instances of this class may be modified if + they are not shared and if no template was loaded so far. + Modifications on environments after the first template was loaded + will lead to surprising effects and undefined behavior. + + Here are the possible initialization parameters: + + `block_start_string` + The string marking the beginning of a block. Defaults to ``'{%'``. + + `block_end_string` + The string marking the end of a block. Defaults to ``'%}'``. + + `variable_start_string` + The string marking the beginning of a print statement. + Defaults to ``'{{'``. + + `variable_end_string` + The string marking the end of a print statement. Defaults to + ``'}}'``. + + `comment_start_string` + The string marking the beginning of a comment. Defaults to ``'{#'``. + + `comment_end_string` + The string marking the end of a comment. Defaults to ``'#}'``. + + `line_statement_prefix` + If given and a string, this will be used as prefix for line based + statements. See also :ref:`line-statements`. + + `line_comment_prefix` + If given and a string, this will be used as prefix for line based + comments. See also :ref:`line-statements`. + + .. versionadded:: 2.2 + + `trim_blocks` + If this is set to ``True`` the first newline after a block is + removed (block, not variable tag!). Defaults to `False`. + + `lstrip_blocks` + If this is set to ``True`` leading spaces and tabs are stripped + from the start of a line to a block. Defaults to `False`. + + `newline_sequence` + The sequence that starts a newline. Must be one of ``'\r'``, + ``'\n'`` or ``'\r\n'``. The default is ``'\n'`` which is a + useful default for Linux and OS X systems as well as web + applications. + + `keep_trailing_newline` + Preserve the trailing newline when rendering templates. + The default is ``False``, which causes a single newline, + if present, to be stripped from the end of the template. + + .. versionadded:: 2.7 + + `extensions` + List of Jinja extensions to use. This can either be import paths + as strings or extension classes. For more information have a + look at :ref:`the extensions documentation `. + + `optimized` + should the optimizer be enabled? Default is ``True``. + + `undefined` + :class:`Undefined` or a subclass of it that is used to represent + undefined values in the template. + + `finalize` + A callable that can be used to process the result of a variable + expression before it is output. For example one can convert + ``None`` implicitly into an empty string here. + + `autoescape` + If set to ``True`` the XML/HTML autoescaping feature is enabled by + default. For more details about autoescaping see + :class:`~markupsafe.Markup`. As of Jinja 2.4 this can also + be a callable that is passed the template name and has to + return ``True`` or ``False`` depending on autoescape should be + enabled by default. + + .. versionchanged:: 2.4 + `autoescape` can now be a function + + `loader` + The template loader for this environment. + + `cache_size` + The size of the cache. Per default this is ``400`` which means + that if more than 400 templates are loaded the loader will clean + out the least recently used template. If the cache size is set to + ``0`` templates are recompiled all the time, if the cache size is + ``-1`` the cache will not be cleaned. + + .. versionchanged:: 2.8 + The cache size was increased to 400 from a low 50. + + `auto_reload` + Some loaders load templates from locations where the template + sources may change (ie: file system or database). If + ``auto_reload`` is set to ``True`` (default) every time a template is + requested the loader checks if the source changed and if yes, it + will reload the template. For higher performance it's possible to + disable that. + + `bytecode_cache` + If set to a bytecode cache object, this object will provide a + cache for the internal Jinja bytecode so that templates don't + have to be parsed if they were not changed. + + See :ref:`bytecode-cache` for more information. + + `enable_async` + If set to true this enables async template execution which + allows using async functions and generators. + """ + + #: if this environment is sandboxed. Modifying this variable won't make + #: the environment sandboxed though. For a real sandboxed environment + #: have a look at jinja2.sandbox. This flag alone controls the code + #: generation by the compiler. + sandboxed = False + + #: True if the environment is just an overlay + overlayed = False + + #: the environment this environment is linked to if it is an overlay + linked_to: t.Optional["Environment"] = None + + #: shared environments have this set to `True`. A shared environment + #: must not be modified + shared = False + + #: the class that is used for code generation. See + #: :class:`~jinja2.compiler.CodeGenerator` for more information. + code_generator_class: t.Type["CodeGenerator"] = CodeGenerator + + concat = "".join + + #: the context class that is used for templates. See + #: :class:`~jinja2.runtime.Context` for more information. + context_class: t.Type[Context] = Context + + template_class: t.Type["Template"] + + def __init__( + self, + block_start_string: str = BLOCK_START_STRING, + block_end_string: str = BLOCK_END_STRING, + variable_start_string: str = VARIABLE_START_STRING, + variable_end_string: str = VARIABLE_END_STRING, + comment_start_string: str = COMMENT_START_STRING, + comment_end_string: str = COMMENT_END_STRING, + line_statement_prefix: t.Optional[str] = LINE_STATEMENT_PREFIX, + line_comment_prefix: t.Optional[str] = LINE_COMMENT_PREFIX, + trim_blocks: bool = TRIM_BLOCKS, + lstrip_blocks: bool = LSTRIP_BLOCKS, + newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = NEWLINE_SEQUENCE, + keep_trailing_newline: bool = KEEP_TRAILING_NEWLINE, + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = (), + optimized: bool = True, + undefined: t.Type[Undefined] = Undefined, + finalize: t.Optional[t.Callable[..., t.Any]] = None, + autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = False, + loader: t.Optional["BaseLoader"] = None, + cache_size: int = 400, + auto_reload: bool = True, + bytecode_cache: t.Optional["BytecodeCache"] = None, + enable_async: bool = False, + ): + # !!Important notice!! + # The constructor accepts quite a few arguments that should be + # passed by keyword rather than position. However it's important to + # not change the order of arguments because it's used at least + # internally in those cases: + # - spontaneous environments (i18n extension and Template) + # - unittests + # If parameter changes are required only add parameters at the end + # and don't change the arguments (or the defaults!) of the arguments + # existing already. + + # lexer / parser information + self.block_start_string = block_start_string + self.block_end_string = block_end_string + self.variable_start_string = variable_start_string + self.variable_end_string = variable_end_string + self.comment_start_string = comment_start_string + self.comment_end_string = comment_end_string + self.line_statement_prefix = line_statement_prefix + self.line_comment_prefix = line_comment_prefix + self.trim_blocks = trim_blocks + self.lstrip_blocks = lstrip_blocks + self.newline_sequence = newline_sequence + self.keep_trailing_newline = keep_trailing_newline + + # runtime information + self.undefined: t.Type[Undefined] = undefined + self.optimized = optimized + self.finalize = finalize + self.autoescape = autoescape + + # defaults + self.filters = DEFAULT_FILTERS.copy() + self.tests = DEFAULT_TESTS.copy() + self.globals = DEFAULT_NAMESPACE.copy() + + # set the loader provided + self.loader = loader + self.cache = create_cache(cache_size) + self.bytecode_cache = bytecode_cache + self.auto_reload = auto_reload + + # configurable policies + self.policies = DEFAULT_POLICIES.copy() + + # load extensions + self.extensions = load_extensions(self, extensions) + + self.is_async = enable_async + _environment_config_check(self) + + def add_extension(self, extension: t.Union[str, t.Type["Extension"]]) -> None: + """Adds an extension after the environment was created. + + .. versionadded:: 2.5 + """ + self.extensions.update(load_extensions(self, [extension])) + + def extend(self, **attributes: t.Any) -> None: + """Add the items to the instance of the environment if they do not exist + yet. This is used by :ref:`extensions ` to register + callbacks and configuration values without breaking inheritance. + """ + for key, value in attributes.items(): + if not hasattr(self, key): + setattr(self, key, value) + + def overlay( + self, + block_start_string: str = missing, + block_end_string: str = missing, + variable_start_string: str = missing, + variable_end_string: str = missing, + comment_start_string: str = missing, + comment_end_string: str = missing, + line_statement_prefix: t.Optional[str] = missing, + line_comment_prefix: t.Optional[str] = missing, + trim_blocks: bool = missing, + lstrip_blocks: bool = missing, + newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = missing, + keep_trailing_newline: bool = missing, + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = missing, + optimized: bool = missing, + undefined: t.Type[Undefined] = missing, + finalize: t.Optional[t.Callable[..., t.Any]] = missing, + autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = missing, + loader: t.Optional["BaseLoader"] = missing, + cache_size: int = missing, + auto_reload: bool = missing, + bytecode_cache: t.Optional["BytecodeCache"] = missing, + enable_async: bool = False, + ) -> "Environment": + """Create a new overlay environment that shares all the data with the + current environment except for cache and the overridden attributes. + Extensions cannot be removed for an overlayed environment. An overlayed + environment automatically gets all the extensions of the environment it + is linked to plus optional extra extensions. + + Creating overlays should happen after the initial environment was set + up completely. Not all attributes are truly linked, some are just + copied over so modifications on the original environment may not shine + through. + + .. versionchanged:: 3.1.2 + Added the ``newline_sequence``,, ``keep_trailing_newline``, + and ``enable_async`` parameters to match ``__init__``. + """ + args = dict(locals()) + del args["self"], args["cache_size"], args["extensions"], args["enable_async"] + + rv = object.__new__(self.__class__) + rv.__dict__.update(self.__dict__) + rv.overlayed = True + rv.linked_to = self + + for key, value in args.items(): + if value is not missing: + setattr(rv, key, value) + + if cache_size is not missing: + rv.cache = create_cache(cache_size) + else: + rv.cache = copy_cache(self.cache) + + rv.extensions = {} + for key, value in self.extensions.items(): + rv.extensions[key] = value.bind(rv) + if extensions is not missing: + rv.extensions.update(load_extensions(rv, extensions)) + + if enable_async is not missing: + rv.is_async = enable_async + + return _environment_config_check(rv) + + @property + def lexer(self) -> Lexer: + """The lexer for this environment.""" + return get_lexer(self) + + def iter_extensions(self) -> t.Iterator["Extension"]: + """Iterates over the extensions by priority.""" + return iter(sorted(self.extensions.values(), key=lambda x: x.priority)) + + def getitem( + self, obj: t.Any, argument: t.Union[str, t.Any] + ) -> t.Union[t.Any, Undefined]: + """Get an item or attribute of an object but prefer the item.""" + try: + return obj[argument] + except (AttributeError, TypeError, LookupError): + if isinstance(argument, str): + try: + attr = str(argument) + except Exception: + pass + else: + try: + return getattr(obj, attr) + except AttributeError: + pass + return self.undefined(obj=obj, name=argument) + + def getattr(self, obj: t.Any, attribute: str) -> t.Any: + """Get an item or attribute of an object but prefer the attribute. + Unlike :meth:`getitem` the attribute *must* be a string. + """ + try: + return getattr(obj, attribute) + except AttributeError: + pass + try: + return obj[attribute] + except (TypeError, LookupError, AttributeError): + return self.undefined(obj=obj, name=attribute) + + def _filter_test_common( + self, + name: t.Union[str, Undefined], + value: t.Any, + args: t.Optional[t.Sequence[t.Any]], + kwargs: t.Optional[t.Mapping[str, t.Any]], + context: t.Optional[Context], + eval_ctx: t.Optional[EvalContext], + is_filter: bool, + ) -> t.Any: + if is_filter: + env_map = self.filters + type_name = "filter" + else: + env_map = self.tests + type_name = "test" + + func = env_map.get(name) # type: ignore + + if func is None: + msg = f"No {type_name} named {name!r}." + + if isinstance(name, Undefined): + try: + name._fail_with_undefined_error() + except Exception as e: + msg = f"{msg} ({e}; did you forget to quote the callable name?)" + + raise TemplateRuntimeError(msg) + + args = [value, *(args if args is not None else ())] + kwargs = kwargs if kwargs is not None else {} + pass_arg = _PassArg.from_obj(func) + + if pass_arg is _PassArg.context: + if context is None: + raise TemplateRuntimeError( + f"Attempted to invoke a context {type_name} without context." + ) + + args.insert(0, context) + elif pass_arg is _PassArg.eval_context: + if eval_ctx is None: + if context is not None: + eval_ctx = context.eval_ctx + else: + eval_ctx = EvalContext(self) + + args.insert(0, eval_ctx) + elif pass_arg is _PassArg.environment: + args.insert(0, self) + + return func(*args, **kwargs) + + def call_filter( + self, + name: str, + value: t.Any, + args: t.Optional[t.Sequence[t.Any]] = None, + kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + context: t.Optional[Context] = None, + eval_ctx: t.Optional[EvalContext] = None, + ) -> t.Any: + """Invoke a filter on a value the same way the compiler does. + + This might return a coroutine if the filter is running from an + environment in async mode and the filter supports async + execution. It's your responsibility to await this if needed. + + .. versionadded:: 2.7 + """ + return self._filter_test_common( + name, value, args, kwargs, context, eval_ctx, True + ) + + def call_test( + self, + name: str, + value: t.Any, + args: t.Optional[t.Sequence[t.Any]] = None, + kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + context: t.Optional[Context] = None, + eval_ctx: t.Optional[EvalContext] = None, + ) -> t.Any: + """Invoke a test on a value the same way the compiler does. + + This might return a coroutine if the test is running from an + environment in async mode and the test supports async execution. + It's your responsibility to await this if needed. + + .. versionchanged:: 3.0 + Tests support ``@pass_context``, etc. decorators. Added + the ``context`` and ``eval_ctx`` parameters. + + .. versionadded:: 2.7 + """ + return self._filter_test_common( + name, value, args, kwargs, context, eval_ctx, False + ) + + @internalcode + def parse( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> nodes.Template: + """Parse the sourcecode and return the abstract syntax tree. This + tree of nodes is used by the compiler to convert the template into + executable source- or bytecode. This is useful for debugging or to + extract information from templates. + + If you are :ref:`developing Jinja extensions ` + this gives you a good overview of the node tree generated. + """ + try: + return self._parse(source, name, filename) + except TemplateSyntaxError: + self.handle_exception(source=source) + + def _parse( + self, source: str, name: t.Optional[str], filename: t.Optional[str] + ) -> nodes.Template: + """Internal parsing function used by `parse` and `compile`.""" + return Parser(self, source, name, filename).parse() + + def lex( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> t.Iterator[t.Tuple[int, str, str]]: + """Lex the given sourcecode and return a generator that yields + tokens as tuples in the form ``(lineno, token_type, value)``. + This can be useful for :ref:`extension development ` + and debugging templates. + + This does not perform preprocessing. If you want the preprocessing + of the extensions to be applied you have to filter source through + the :meth:`preprocess` method. + """ + source = str(source) + try: + return self.lexer.tokeniter(source, name, filename) + except TemplateSyntaxError: + self.handle_exception(source=source) + + def preprocess( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> str: + """Preprocesses the source with all extensions. This is automatically + called for all parsing and compiling methods but *not* for :meth:`lex` + because there you usually only want the actual source tokenized. + """ + return reduce( + lambda s, e: e.preprocess(s, name, filename), + self.iter_extensions(), + str(source), + ) + + def _tokenize( + self, + source: str, + name: t.Optional[str], + filename: t.Optional[str] = None, + state: t.Optional[str] = None, + ) -> TokenStream: + """Called by the parser to do the preprocessing and filtering + for all the extensions. Returns a :class:`~jinja2.lexer.TokenStream`. + """ + source = self.preprocess(source, name, filename) + stream = self.lexer.tokenize(source, name, filename, state) + + for ext in self.iter_extensions(): + stream = ext.filter_stream(stream) # type: ignore + + if not isinstance(stream, TokenStream): + stream = TokenStream(stream, name, filename) # type: ignore + + return stream + + def _generate( + self, + source: nodes.Template, + name: t.Optional[str], + filename: t.Optional[str], + defer_init: bool = False, + ) -> str: + """Internal hook that can be overridden to hook a different generate + method in. + + .. versionadded:: 2.5 + """ + return generate( # type: ignore + source, + self, + name, + filename, + defer_init=defer_init, + optimized=self.optimized, + ) + + def _compile(self, source: str, filename: str) -> CodeType: + """Internal hook that can be overridden to hook a different compile + method in. + + .. versionadded:: 2.5 + """ + return compile(source, filename, "exec") # type: ignore + + @typing.overload + def compile( # type: ignore + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: "te.Literal[False]" = False, + defer_init: bool = False, + ) -> CodeType: + ... + + @typing.overload + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: "te.Literal[True]" = ..., + defer_init: bool = False, + ) -> str: + ... + + @internalcode + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: bool = False, + defer_init: bool = False, + ) -> t.Union[str, CodeType]: + """Compile a node or template source code. The `name` parameter is + the load name of the template after it was joined using + :meth:`join_path` if necessary, not the filename on the file system. + the `filename` parameter is the estimated filename of the template on + the file system. If the template came from a database or memory this + can be omitted. + + The return value of this method is a python code object. If the `raw` + parameter is `True` the return value will be a string with python + code equivalent to the bytecode returned otherwise. This method is + mainly used internally. + + `defer_init` is use internally to aid the module code generator. This + causes the generated code to be able to import without the global + environment variable to be set. + + .. versionadded:: 2.4 + `defer_init` parameter added. + """ + source_hint = None + try: + if isinstance(source, str): + source_hint = source + source = self._parse(source, name, filename) + source = self._generate(source, name, filename, defer_init=defer_init) + if raw: + return source + if filename is None: + filename = "